4421: [Cerc2015] Digit Division|组合数学
2016-03-09 10:27
246 查看
找出所有modm=0的区间的个数,再每两个区间之间都可以分开这个串
假设区间数为n最后答案就是Cn−10+Cn−11+...Cn−1n−1=2n−1最后特判一下有没有解
假设区间数为n最后答案就是Cn−10+Cn−11+...Cn−1n−1=2n−1最后特判一下有没有解
#include<bits/stdc++.h> #define p 1000000007 using namespace std; char s[300001]; int n,m,ans,now; int main() { scanf("%d%d%s",&n,&m,s); for(int i=0;i<n;i++) { now=(now*10+s[i]-'0')%m; if(!now)ans=(ans==0?1:ans*2%p); } now?puts("0"):printf("%d",ans); }
相关文章推荐
- 初学ACM - 组合数学基础题目PKU 1833
- 【组合数学】卡塔兰数
- 卡特兰数(Catalan)及应用
- POJ1833-排列
- 1139: 出栈序列统计
- POJ 3292.Semi-prime H-numbers
- Java 产生随机的一组排列
- Catalan数
- poj_1942
- poj_1850
- HDU 4832 Chess (动态规划+组合数学)
- hdoj_2049 不容易系列之(4)——考新郎
- hdoj_2048 神、上帝以及老天爷
- hdoj_2047 阿牛的EOF牛肉串
- hdoj_2046 骨牌铺方格
- hdoj_2045 不容易系列之(3)—— LELE的RPG难题
- hdoj_2044 一只小蜜蜂...
- hdoj_2042 不容易系列之二
- hdoj_2041 超级楼梯
- zoj_2836 Number Puzzle