[2016-03-28][HDU][1078][FatMouse and Cheese]

Posted 红洋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[2016-03-28][HDU][1078][FatMouse and Cheese]相关的知识,希望对你有一定的参考价值。

  • 时间:2016-03-28 17:40:34 星期一

  • 题目编号:[2016-03-28][HDU][1078][FatMouse and Cheese]

  1. #include <algorithm>
  2. #include <cstring>
  3. #include <cstdio>
  4. using namespace std;
  5. const int maxn = 100 + 10;
  6. int a[maxn][maxn];
  7. int dp[maxn][maxn];
  8. int n ,k;
  9. int dx[] = {1,-1,0,0};
  10. int dy[] = {0,0,-1,1};
  11. int dfs(int x,int y){
  12. if(dp[x][y] != -1){
  13. return dp[x][y];
  14. }
  15. int _x,_y,ans = 0;
  16. for(int j = 1; j <= k ;++j){
  17. for(int i = 0;i < 4 ; ++i){
  18. _x = x + dx[i]*j;
  19. _y = y + dy[i]*j;
  20. if(_x < 0 || _y <0 || _x > n || _y > n || a[_x][_y] <= a[x][y]) continue;
  21. ans = max(ans,dfs(_x,_y));
  22. }
  23. }
  24. return dp[x][y] = ans + a[x][y];
  25. }
  26. int main(){
  27. while(~scanf("%d%d",&n,&k) && (~n || ~k)){
  28. for(int i = 1;i <= n;++i){
  29. for(int j = 1;j <= n ; ++j){
  30. scanf("%d",&a[i][j]);
  31. }
  32. }
  33. memset(dp,-1,sizeof(dp));
  34. printf("%d\n",dfs(1,1));
  35. }
  36. return 0;
  37. }




以上是关于[2016-03-28][HDU][1078][FatMouse and Cheese]的主要内容,如果未能解决你的问题,请参考以下文章

[2016-03-28][HDU][1074][Doing Homework]

[2016-03-28][HDU][1024][Max Sum Plus Plus]

hdu1078 记忆化搜索

hdu1078FatMouse and Cheese

hdu 1078

hdu1078