HDU 2182 Frog(DP)

题目链接

裸二维DP。数据量比较小,0ms水过。。

 1 #include <stdio.h>

 2 #include <string.h>

 3 int dp[1001][101],p[1001];

 4 int main()

 5 {

 6     int i,j,n,t,a,b,k,u,max;

 7     scanf("%d",&t);

 8     while(t--)

 9     {

10         memset(dp,128,sizeof(dp));

11         scanf("%d%d%d%d",&n,&a,&b,&k);

12         for(i = 0;i <= n-1;i ++)

13         {

14             scanf("%d",&p[i]);

15         }

16         dp[0][0] = p[0];

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

18         {

19             for(j = 0;j <= n-1;j ++)

20             {

21                 for(u = a;u <= b;u ++)

22                 {

23                     if(j - u < 0)

24                     break;

25                     if(dp[i][j] < dp[i-1][j-u] )

26                     dp[i][j] = dp[i-1][j-u];

27                 }

28                 dp[i][j] += p[j];

29             }

30         }

31         max = p[0];

32         for(i = 1;i <= k;i ++)

33         {

34             for(j = 0;j <= n-1;j ++)

35             {

36                 if(max < dp[i][j])

37                 max = dp[i][j];

38             }

39         }

40         printf("%d\n",max);

41     }

42     return 0;

43 }

你可能感兴趣的:(HDU)