hdu 3652

2019-04-14 17:28发布

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3652 目要求包含13且被13整除,设计状态 dp[i,j,k,l]: i位数中第一位是j,是否包含13(k=0或1),模13余数是l的数有几个。   知道怎么处理f数组即可 #include #include #include using namespace std; long long f[11][10][2][13]; int n; int a[10]; //f[i,j,k,l] 首位为j的i位数,是否含13 (k=0、1),余数为l //k=0为辅助数组 long long jc(int x)//10^x { if (x==1) return 10; if (x==0) return 1; if (x%2==1) return jc(x/2)*jc(x/2)*10; else return jc(x/2)*jc(x/2); } void dp(int x) { int i,j,len=0,temp=0,t=0; long long ans=0; while (x) { a[++len]=x%10; x/=10; } for (i=len;i>=1;i--) { for (j=0;j