hdu 4669 Mutiples on a circle
来源:互联网 发布:四大名助 知乎 编辑:程序博客网 时间:2024/05/19 16:03
dp递推,通过一个状态往后加数不断递推出所有状态,并且不断取余
#include <cstdio>#include <cstring>#include <cmath>#define M 50005#define K 205int mod[M], sum[M], dp[M][K], p[200005];int n, k;void POW(){ p[0] = 1; for(int i = 1; i <= 4*n; ++i) p[i] = (p[i-1]*10)%k;}int main (){ //freopen("in.txt","r",stdin); //freopen("ou.txt","w",stdout); while(scanf("%d%d",&n, &k)!=EOF) { POW(); for(int i=0; i<=n; ++i) for(int j=0; j<=k; ++j) dp[i][j]=0; for(int i = 1; i <= n; ++i) { scanf("%d",&sum[i]); mod[i] =1+ log10(sum[i]*1.0); } int cnt=mod[1],s=sum[1]%k; ++dp[1][s]; for(int i = 2; i <= n; ++i) { s = (sum[n-i+2]*p[cnt]+s)%k; ++dp[1][s]; cnt+=mod[n-i+2]; } int ans = dp[1][0]; for(int i = 2; i <= n; ++i) { ++dp[i][sum[i]%k]; for(int j = 0; j < k; ++j) if(dp[i-1][j]) { int t = (j*p[mod[i]]+sum[i])%k; dp[i][t] += dp[i-1][j]; } s=(s*p[mod[i]]+sum[i])%k; dp[i][s]-=1; ans+=dp[i][0]; s=(s-(sum[i]*p[cnt])%k+k)%k; } printf("%d\n",ans); } return 0;}
- hdu 4669 Mutiples on a circle
- HDU - 4669 Mutiples on a circle
- hdu 4669 Mutiples on a circle 多校第七场
- HDU 4669 Mutiples on a circle 解题报告
- hdu 4669——Mutiples on a circle
- HDU 4669 Mutiples on a circle (DP , 统计)
- hdu 4669 Mutiples on a circle(按位DP)
- hdu 4669 Mutiples on a circle(高效)
- hdoj 4669 Mutiples on a circle
- HDOJ 4669 Mutiples on a circle
- [HDU4669]Mutiples on a circle
- HDU 4669 Mutiples on a circle (环形数列DP)byPlato
- HDU 4669 Mutiples on a circle (2013多校联合7 1004)
- 2013 多校第七场 hdu 4669 Mutiples on a circle(DP,环)
- [agc013c]Ants on a Circle
- CodeForces 652F. Ants on a Circle
- 【AGC013C】Ants on a Circle 弹性碰撞
- AT2 Homeomorphism and the group structure on a circle
- Quartus II 管脚配置
- 数学之路(3)-机器学习(3)-机器学习算法-PCA
- MongoDB——第五天 主从复制
- 人生不问长短,但求白首同心之人
- errno的基本用法
- hdu 4669 Mutiples on a circle
- word中插入上下左右箭头
- 尚学堂马士兵Oracle学习笔记之一:基本select语句
- Computerworld 2014年8大热门IT技术预测
- hdu 4666Hyperspace
- MySQL用工具无法转存
- MongoDB无法启动(Error: couldn't connect to server 127.0.0.1:27017 src/mongo/ shell/mongo.js:91)
- Seasar之安装
- c/c++中static关键字的作用