Vijos 1073 4-Hanoi-Tower(DP后找规律)

题目链接

以前做个一个题,n很小,今天又发现这个问题,没想到n这么大还要取模,在改了以前那个,无奈第三组数据就是过不了,不是WA就是TLE。。。唉,看了讨论,发现需要找规律,思维被前一个题局限住了。简化版的HDU1207题解

 1 #include <stdio.h>

 2 #define N 50001

 3 int p[N];

 4 int main()

 5 {

 6     int i,j = 1,k = 2,u = 2;

 7     p[1] = 1;

 8     for(i = 2;i <= 50000;i ++)

 9     {

10         p[i] = p[i-1] + k;

11         if(j < u)

12         {

13             j ++;

14         }

15         else

16         {

17             u ++;

18             j = 1;

19             k = (k*2)%10000;

20         }

21         p[i] = p[i]%10000;

22     }

23     scanf("%d",&i);

24     printf("%d\n",p[i]);

25     return 0;

26 }

你可能感兴趣的:(OS)