河南理工的ACMer要开始组队了
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 35 Accepted Submission(s) : 8
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
河南理工的new ACMer要开始组队了,ACM组队情况是3人一队,为什么是3人一队呢?有没有听过:3个臭皮匠顶个诸葛亮?现在,蛋蛋想知道,在所有的N位数中,有多少个数中有偶数个数字3,例如:13里面就有一个3!亲爱的ACMer,快来帮帮蛋蛋!
Input
第一行为一个整数T,代表有T组数据。(T<10000)
接下来T行,每行一个正整数N。(1<=N<=1000)
接下来T行,每行一个正整数N。(1<=N<=1000)
Output
每行输出一个整数,即方案数(由于结果可能很大,你只需要输出这个答案mod 12345的值)
Sample Input
1 2
Sample Output
73
CODE:
#include<stdio.h> int dp[1010][2]; void fun() { int i; dp[1][0]=1; dp[1][1]=8; dp[2][0]=17; dp[2][1]=73; for(i=3;i<=1005;i++) { dp[i][1]=(dp[i-1][1]*9%12345+dp[i-1][0]%12345)%12345; dp[i][0]=(dp[i-1][0]*9%12345+dp[i-1][1]%12345)%12345; } } int main() { int n,t; fun(); scanf("%d",&t); while(t--) { scanf("%d",&n); printf("%d\n",dp[n][1]); } }
找规律的题伤不起啊!!
中国剩余定理公式:
( A*B ) % C = ( A%C * B%C ) % C
( A+B ) % C = ( A%C + B%C ) % C