bzoj 4421: [Cerc2015] Digit Division
来源:互联网 发布:知乎南方采暖方式 编辑:程序博客网 时间:2024/05/20 07:51
显然是找前缀为0的断点个数,注意如果全局答案不是0,那么ans=0
下面是简单的证明(kouhu)
首先,证明只有前缀为0的位置可以成为断点。
第一段显然前缀只能为0
假设前k段前缀只能为0,那么第k+1段一定满足 (f[k+1]-f[i]*10^(k-i))%m=0,由于f[i]%m=0,所以f[k+1]%m=0;
所以只有前缀为0的位置可以成为断点。
之后证明任意两个断点之间都是合法的(这是显然的)。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#define ll long long
#define inf 1e9
#define eps 1e-8
#define md 1000000007
using namespace std;
char st[1000010];
int main()
{
int n,m;
scanf("%d%d",&n,&m);
scanf("%s",st+1);
ll now=0; int ans=1;
for (int i=1;i<=n;i++)
{
now=(now*10+st[i]-'0')%m;
if (now==0&&i!=n) ans=ans*2%md;
}
if (now) printf("0\n"); else printf("%d\n",ans);
return 0;
}
0 0
- bzoj 4421: [Cerc2015] Digit Division
- 4421: [Cerc2015] Digit Division|组合数学
- 【bzoj4421】【cerc2015】【Digit Division】
- bzoj 4436: [Cerc2015]Kernel Knights
- BZOJ 4451: [Cerc2015]Frightful Formula
- UVALive 7327 Digit Division
- UVALive 7327 Digit Division
- 【bzoj 4451】[Cerc2015]Frightful Formula - 递推
- bzoj 4451: [Cerc2015]Frightful Formula 数学+排列组合
- [乱搞] BZOJ 4436 [Cerc2015]Kernel Knights
- [乱搞] BZOJ 4434 [Cerc2015]Ice Igloos
- [杂题] BZOJ 4437 [Cerc2015]Looping Labyrinth
- [链表 杂题] BZOJ 4432 [Cerc2015]Greenhouse Growth
- BZOJ 4435: [Cerc2015]Juice Junctions tarjan
- bzoj4421 Digit Division 递推
- Bzoj 4422: [Cerc2015]Cow Confinement(线段树+扫描线)
- 【 bzoj 4452 】 [cerc2015] Export Estimate - 并查集
- [FFT || 递推] BZOJ 4451 [Cerc2015]Frightful Formula
- activity劫持反劫持
- matlab学习笔记 函数bsxfun repmat
- 菜鸟学python(10) 用python处理Layer导出的域名(将每个域名前加入http://)
- 制作网页---html拾遗
- c++中虚函数的实现机制
- bzoj 4421: [Cerc2015] Digit Division
- git 回滚到某次commit
- Android中Parcelable接口的应用
- ios可变数组NSMutableArray和不可变数组NSArray的区别
- setw()使用方法
- 产品经理的职责有哪些?到底该做什么?
- 数据库范式
- OpenMedia: 下一代免费的视频编解码器
- 欢迎使用Markdown编辑器写博客