HDU 1331 Function Run Fun(점차)

7713 단어 function
제목 링크
처음 했을 때 돌아가고 기억도 안 돼서 2범이잖아...기억화는 여전히 TLE가 되고 나서 위로 밀고 물이 지나갔다.
 1 #include <stdio.h>

 2 #include <string.h>

 3 #define N -10000000

 4 int dp[21][21][21];

 5 int main()

 6 {

 7     int a,b,c,i,j,k;

 8     for(i = 0;i <= 20;i ++)

 9     {

10         for(j = 0;j <= 20;j ++)

11         {

12             dp[0][i][j] = 1;

13             dp[i][0][j] = 1;

14             dp[i][j][0] = 1;

15         }

16     }

17     for(i = 1;i <= 20;i ++)

18     {

19         for(j = 1;j <= 20;j ++)

20         {

21             for(k = 1;k <= 20;k ++)

22             {

23                 if(i < j&&j < k)

24                 {

25                     dp[i][j][k] = dp[i][j][k-1]+dp[i][j-1][k-1]-dp[i][j-1][k];

26                 }

27                 else

28                 {

29                     dp[i][j][k] = dp[i-1][j][k]+dp[i-1][j-1][k]+dp[i-1][j][k-1]-dp[i-1][j-1][k-1];

30                 }

31             }

32         }

33     }

34     while(scanf("%d%d%d",&a,&b,&c)!=EOF)

35     {

36         if(a == -1&&b == -1&&c == -1) break;

37         printf("w(%d, %d, %d) = ",a,b,c);

38         if(a <= 0||b <= 0||c <= 0)

39         printf("1
"); 40 else if(a > 20||b > 20||c > 20) 41 printf("%d
",dp[20][20][20]); 42 else 43 printf("%d
",dp[a][b][c]); 44 } 45 return 0; 46 }

좋은 웹페이지 즐겨찾기