描述

在所有的N位数中,有多少个数中有偶数个数字3?

输入

一行给出数字N,N<=1000

输出

如题  mod12345

样例输入

2

样例输出

73



简单的dp,不过我的转移好像不太一样

program noi_9272;

var dp,f:array[0..1000,0..2] of longint;

n,i,j:longint;
begin
  dp[1][1]:=8; f[1][2]:=1; 
  readln(n);
  if n=1 then begin writeln(9); halt; end;
  for i:=2 to n do
  begin
     dp[i][1]:=(dp[i-1][1]+dp[i-1][2])*9 mod 12345;  //共i位,第i位不是3,3的个数为偶数
     dp[i][2]:=(f[i-1][1]+f[i-1][2]) mod 12345;      //共i位,第i位是2,  3的个数为偶数
     f[i][1]:=(f[i-1][1]+f[i-1][2])*9 mod 12345;     //共i位,第i位不是3,3的个数为奇数

f[i][2]:=(dp[i-1][1]+dp[i-1][2]) mod 12345; //共i位 第i位是3, 3的个数为奇数

end;
writeln((dp[n][1]+dp[n][2]) mod 12345);

end.

 

posted on 2016-11-03 21:03  艾路雷朵  阅读(350)  评论(0编辑  收藏  举报