题面在这里!

题解见注释

/*考虑一个可以用 K ((n+1)/2 <= K < n)次染黑的方案,那么将操作前K次的机器从小到大排序,一定是:a1=1 < a2 < ...< ak=n-1并且 a[i+1]-a[i] <= 2转化模型,就是一个变量初始等于 1 ,每次操作可以 +1 或者 +2 ,k-1 次操作之后 = n-1 的方案数. C(k-1 , n-k-1) * (k!) * ((n-k-1)!)
*/
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int ha=1e9+7,N=1e6+5,mod=ha-1;inline int add(int x,int y){ x+=y; return x>=ha?x-ha:x;}
inline void ADD(int &x,int y){ x+=y; if(x>=ha) x-=ha;}inline int ksm(int x,int y){int an=1;for(;y;y>>=1,x=x*(ll)x%ha) if(y&1) an=an*(ll)x%ha;return an;
}int n,jc[N],ni[N],ans,f[N]; inline void init(){jc[0]=1;for(int i=1;i<=n;i++) jc[i]=jc[i-1]*(ll)i%ha;ni[n]=ksm(jc[n],ha-2);for(int i=n;i;i--) ni[i-1]=ni[i]*(ll)i%ha;
}inline void solve(){for(int k=n+1>>1;k<n;k++) f[k]=jc[k]*(ll)jc[k-1]%ha*(ll)ni[2*k-n]%ha;for(int k=n+1>>1;k<n;k++) ADD(ans,add(f[k],ha-f[k-1])*(ll)k%ha);
}int main(){scanf("%d",&n),init();solve(),printf("%d\n",ans);return 0;
}

转载于:https://www.cnblogs.com/JYYHH/p/9278308.html

AtCoder - 3954 Painting Machines相关推荐

  1. AtCoder Grand Contest 023 C - Painting Machines

    Description 一个长度为 \(n\) 的序列,初始都为 \(0\),你需要求出一个长度为 \(n-1\) 的排列 \(P\), 按照 \(1\) 到 \(n\) 的顺序,每次把 \(P_i\ ...

  2. 2019.11.2图论专题(AtCoder Splatter Painting、President and Roads、Shortest Cycle、ISlands II)

    D:AtCoder Grand Contest 012 Splatter Painting 题目描述 Squid喜欢在图中为一些顶点染色(毕竟是鱿鱼 ) 现在有一张由 N 个顶点和 M 条边组成的简单 ...

  3. Atcoder ARC062F - AtCoDeerくんとグラフ色塗り / Painting Graphs with AtCoDeer

    Atcoder ARC062F - AtCoDeerくんとグラフ色塗り / Painting Graphs with AtCoDeer 题目描述 简要题意:给定一个有标号的无向图,你可以给每条边染上K ...

  4. Atcoder Grand Contest 012 B - Splatter Painting解题报告

    题目:http://agc012.contest.atcoder.jp/tasks/agc012_b 有一个n点m边的图,(不一定联通) 还有q个操作:每次将一个点v及其周围距离<=d的点涂成颜 ...

  5. AtCoder Grand Round 012B Splatter Painting

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  6. Atcoder #2362 Splatter Painting(dfs+优化)

    原题链接(vjudge上的) 这道题的大意是:对于一个无向图,有n个节点和m条边,每个操作将与节点v的距离小于等于d的节点涂为颜色c.n,m,p<=105n,m,p,d<=10d. 给出输 ...

  7. 【AtCoder】【思维】【图论】Splatter Painting(AGC012)

    题意: 有一个含有n个点的无向图,所有的点最初颜色均为0.有q次操作,每次操作将v[i]周围的距离小于等于d[i]的点全部都染成颜色c[i].最后输出每个点的最终的颜色. 数据范围: 1<=n, ...

  8. AtCoder Grand Contest 012 B Splatter Painting (反向处理 + 记忆化)

    题目链接  agc012 Problem B 题意  给定一个$n$个点$m$条边的无向图,现在有$q$个操作.对距离$v$不超过$d$的所有点染色,颜色编号为$c$. 求每个点最后的颜色状态. 倒过 ...

  9. Atcoder AGC B Splatter Painting 记忆化+逆向模拟

    点击打开链接 题意:n点,m边,q个操作 vi,di,ci 每次将与v距离d以内的点涂成c,问q次操作后n个定点颜色? n,m,q<=1e5,d<=10 首先 操作i,j,i<j 若 ...

最新文章

  1. 用VS(c#)创建、调试windows service以及部署卸载
  2. 苹果电脑适合python吗_m1的MacBook pro适合python开发吗?
  3. XCTF_Web_新手练习区:webshell
  4. 精彩回放 | 玩转 VS Code 物联网开发
  5. Windows域控管理 常用操作 详细汇总
  6. 没有找到 AUTOBACKUP
  7. linux中nmcli命令使用及网络配置
  8. easyUI-combotree的本地数据导入
  9. 贝叶斯概率推断(一):贝叶斯思维
  10. S3C2440 ADC采样光敏电阻传感器驱动
  11. 【(自动)运动控制系统】学习笔记
  12. 四川农业大学计算机专业答辩,关于2014级本科生毕业论文答辩的通知
  13. Java 2.1(将摄氏温度转换为华氏温度)编写程序,从控制台读入double型摄氏温度,然后将其转换为华氏温度,并显示结果。
  14. html科学计算器,很剽悍的在线科学计算器
  15. Shi-Tomasi角点检测
  16. 2022年煤气考试试题及答案
  17. matlab2019b classification learner使用笔记
  18. 使用html表格标签做一份简历表
  19. AD软件出现“Your license is already used on computer “LAPTOP-F99R6OR1“ using product “AltiumDesigner“
  20. 小说作者推荐:焦糖冬瓜合集

热门文章

  1. CS231n官方笔记授权翻译总集篇发布
  2. Android进程使用Messenger通信
  3. CVE-2015-8966/AndroidID-31435731
  4. sql安装目录下log文件夹_Linux安装Hive数据仓库工具
  5. python2.7显示中文_Python 2.7中文显示与处理方法
  6. python dendrogram_【聚类分析】《数学建模算法与应用》第十章 多元分析 第一节 聚类分析 python实现...
  7. JZOJ 5444. 【NOIP2017提高A组冲刺11.2】救赎
  8. 反恐精英出现服务器消息,cs你已被禁用次服务器 | 手游网游页游攻略大全
  9. 软件测试 理念 价值,软件测试价值观-SMBT新理念
  10. mysql root密码重置