[CC-CMPVIRS]Computer Virus

题目大意:

有一张纸带,从左到右被分成了\(n(n\le10^7)\)个格子,在刚开始,第\(i\)个格子上写着数字\(i\)。这张纸带被分成了从左到右的连续的\(m(m\le10^3)\)段,编号较小的段在编号较大的段的左边,且每一个格子都被分给了其中的一段。第\(i\)段有\(d_i\)个格子。

另外,编号较大的段的格子数不小于编号较小的段,即\(d_i\le d_{i+1}\)。

刚开始所有格子都是白色的,现在重复以下操作,直到所有格子都被染成黑色:

  1. 将每段的最后一个格子染成黑色。
  2. 将每一个白色格子上写的数改成它和它左边的白色格子上的数之和,这个过程所有的白色格子是同时完成的。

求所有格子都被染成黑色后,格子上的数字和,模\(10^9+7\)。

思路:

进行一些合理猜测就可以得到结论(见代码)。

证明见官方题解。

源代码:

#include<cstdio>
#include<cctype>
inline int getint() {
register char ch;
while(!isdigit(ch=getchar()));
register int x=ch^'0';
while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0');
return x;
}
typedef long long int64;
const int M=1001,mod=1e9+7;
inline int power(int a,int k) {
int ret=1;
for(;k;k>>=1) {
if(k&1) ret=(int64)ret*a%mod;
a=(int64)a*a%mod;
}
return ret;
}
int d[M];
int main() {
const int n=getint(),m=getint();
int ans=mod-m;
for(register int i=1;i<=m;i++) {
int tmp=1;
d[i]=getint();
for(register int j=0;j<i;j++) {
tmp=(int64)tmp*power(i-j+1,d[j+1]-d[j])%mod;
}
(ans+=tmp)%=mod;
}
printf("%d\n",ans);
return 0;
}

[CC-CMPVIRS]Computer Virus的更多相关文章

  1. hdu 3695:Computer Virus on Planet Pandora(AC自动机,入门题)

    Computer Virus on Planet Pandora Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 256000/1280 ...

  2. HDU 3695 Computer Virus on Planet Pandora(AC自动机模版题)

    Computer Virus on Planet Pandora Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 256000/1280 ...

  3. hdu ----3695 Computer Virus on Planet Pandora (ac自动机)

    Computer Virus on Planet Pandora Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 256000/1280 ...

  4. HDU 3695 / POJ 3987 Computer Virus on Planet Pandora(AC自动机)(2010 Asia Fuzhou Regional Contest)

    Description Aliens on planet Pandora also write computer programs like us. Their programs only consi ...

  5. 10 notorious computer virus

    The history of computer virus is the same as computer history. With more and more powerful computers ...

  6. hdu 3695 Computer Virus on Planet Pandora(AC自己主动机)

    题目连接:hdu 3695 Computer Virus on Planet Pandora 题目大意:给定一些病毒串,要求推断说给定串中包括几个病毒串,包括反转. 解题思路:将给定的字符串展开,然后 ...

  7. hdu 3695 10 福州 现场 F - Computer Virus on Planet Pandora 暴力 ac自动机 难度:1

    F - Computer Virus on Planet Pandora Time Limit:2000MS     Memory Limit:128000KB     64bit IO Format ...

  8. HDU 3695 / POJ 3987 Computer Virus on Planet Pandora

      Computer Virus on Planet Pandora Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1353 ...

  9. HDU-3695 Computer Virus on Planet Pandora

    HDU-3695 Computer Virus on Planet Pandora 题意:电脑中病毒了, 现在n钟病毒指令, 然后有一个电脑指令, 看一下这个电脑指令中了几个病毒, 如果电脑种了某一个 ...

随机推荐

  1. linux下的抓包

    1. 查看网卡名字 cat /proc/net/dev 2.抓取外网进来的包 tcpdump -i eth0 port -s -w .pcap 3.抓取自己服务器上的两个程序之间访问的数据 换成 lo ...

  2. go-web项目性能测试,CPU, 内存泄露等

    go中提供了pprof包来做代码的性能监控,在两个地方有包: net/http/pprof runtime/pprof 其实net/http/pprof中只是使用runtime/pprof包来进行封装 ...

  3. C++ Primer 笔记——命名空间

    1.我们既可以用 using 声明整个空间,也可以声明部分名字. using namespace std; using std::cout; 2.头文件不应包含 using 声明,因为头文件会拷贝到所 ...

  4. ORA-12705

    1. 分析 ORA-12705是一个与nls 环境或者文件相关的错误,按照Oracle 官方的提示,要么是环境变量配置错误,要么是通过alter session 命令调整了错误的nls参数值,要么是n ...

  5. springboot配置Druid监控

    整体步骤: (1)    ——   Druid简单介绍,具体看官网: (2)     —— 在pom.xml配置druid依赖包: (3)    ——  配置application.propertie ...

  6. XMind思维导图使用笔记

    首先新建一个空白的图 以组织结构图(向下)  为例 1.双击组织结构图 创建一个空白的页面 2.随便选择一个风格 这时候出现工作台 现在里面只有一个中心主题 正文部分开始 1.如果想要添加一个子主题 ...

  7. 常见的HTTP响应状态码解析

    概要 状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果.借助于状态码,浏览器(或者说用户)可以知道服务器是正常的处理了请求,还是出现了错误. 状态码以3位数字和原因短语组成,例如 200 ...

  8. Idea的快捷键,瞎摸索,开心就好,哈哈哈

    前言:如果你有强迫症,换了一个编辑器,最痛苦莫过于快捷键,不顺手了.这里自己瞎摸索的快捷键,贴一下,这里主要以实际应用为主,因为大量介绍的网上已经很多很多,So基本的不再叙述. 分享一下比较不错的Id ...

  9. file /usr/share/mysql/charsets/README from install of MySQL-server-5.1.73-1.glibc23.i386 conflicts with file from package mysql-libs-5.1.73-8.el6_8.i686

    1:也许之前的机器安装过Mysql,但是自己不知道,账号密码也忘记了,又执行安装操作,导致Mysql不兼容问题.Linux上安装MySQL时出现不兼容的解决办法,错误如下所示: [root@maste ...

  10. Javascript面向对象编程:非构造函数的继承

    今天是最后一个部分,介绍不使用构造函数实现"继承". 一.什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人". var Ch ...