当前位置:网站首页>HDU - 1078 fatmouse and cheese (memory search DP)
HDU - 1078 fatmouse and cheese (memory search DP)
2022-07-04 21:50:00 【WA_ automata】
HDU - 1078 FatMouse and Cheese
Problem Description
FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension n: each grid location is labelled (p,q) where 0 <= p < n and 0 <= q < n. At each grid location Fatmouse has hid between 0 and 100 blocks of cheese in a hole. Now he’s going to enjoy his favorite food.
FatMouse begins by standing at location (0,0). He eats up the cheese where he stands and then runs either horizontally or vertically to another location. The problem is that there is a super Cat named Top Killer sitting near his hole, so each time he can run at most k locations to get into the hole before being caught by Top Killer. What is worse – after eating up the cheese at one location, FatMouse gets fatter. So in order to gain enough energy for his next run, he has to run to a location which have more blocks of cheese than those that were at the current hole.
Given n, k, and the number of blocks of cheese at each grid location, compute the maximum amount of cheese FatMouse can eat before being unable to move.
Input
There are several test cases. Each test case consists of
a line containing two integers between 1 and 100: n and k
n lines, each with n numbers: the first line contains the number of blocks of cheese at locations (0,0) (0,1) … (0,n-1); the next line contains the number of blocks of cheese at locations (1,0), (1,1), … (1,n-1), and so on.
The input ends with a pair of -1’s.
Output
For each test case output in a line the single integer giving the number of blocks of cheese collected.
Sample Input
3 1
1 2 5
10 11 6
12 12 7
-1 -1
Sample Output
37
#include<iostream>
#include<cstring>
using namespace std;
const int N = 110;
const int dx[4]={
-1,0,1,0},dy[4]={
0,1,0,-1};
int g[N][N],ans[N][N];
int n,k;
int dfs(int x,int y)
{
if(ans[x][y]) return ans[x][y];
else
{
int sum=0;
for(int i=0;i<4;i++)
for(int j=1;j<=k;j++)
{
int xx=x+j*dx[i],yy=y+j*dy[i];
if(xx>=1&&xx<=n&&yy>=1&&yy<=n&&g[xx][yy]>g[x][y])
sum=max(sum,dfs(xx,yy));
}
ans[x][y]=sum+g[x][y];
return ans[x][y];
}
}
int main()
{
while(cin>>n>>k)
{
if(n==-1&&k==-1) break;
memset(ans,0,sizeof ans);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>g[i][j];
cout<<dfs(1,1)<<endl;
}
return 0;
}
边栏推荐
- Use of redis publish subscription
- new IntersectionObserver 使用笔记
- Why does invariant mode improve performance
- torch. Tensor and torch The difference between tensor
- How to remove the black dot in front of the title in word document
- Can be displayed in CAD but not displayed in print
- Operation of adding material schedule in SolidWorks drawing
- [leetcode] 17. Letter combination of telephone number
- MP3是如何诞生的?
- 【C语言】符号的深度理解
猜你喜欢

奋斗正当时,城链科技战略峰会广州站圆满召开

如何借助自动化工具落地DevOps

QT - double buffer plot

如何使用ConcurrentLinkedQueue做一个缓存队列

开源之夏专访|Apache IoTDB社区 新晋Committer谢其骏

Operation of adding material schedule in SolidWorks drawing

创客思维在高等教育中的启迪作用

At the right time, the Guangzhou station of the city chain science and Technology Strategy Summit was successfully held

MongoDB聚合操作总结

应用实践 | 蜀海供应链基于 Apache Doris 的数据中台建设
随机推荐
Exclusive interview of open source summer | new committer Xie Qijun of Apache iotdb community
历史最全混合专家(MOE)模型相关精选论文、系统、应用整理分享
gtest从一无所知到熟练运用(1)gtest安装
Keep on fighting! The city chain technology digital summit was grandly held in Chongqing
At the right time, the Guangzhou station of the city chain science and Technology Strategy Summit was successfully held
2021 CCPC Harbin B. magical subsequence (thinking question)
Bookmark
Interpreting the development of various intelligent organizations in maker Education
CloudCompare&Open3D DBSCAN聚类(非插件式)
刘锦程荣获2022年度中国电商行业创新人物奖
redis RDB AOF
Redis03 - network configuration and heartbeat mechanism of redis
Shutter WebView example
Jerry's ad series MIDI function description [chapter]
旋变串判断
[C language] deep understanding of symbols
Numpy vstack and column_ stack
Maidong Internet won the bid of Beijing life insurance
【LeetCode】17、电话号码的字母组合
2021 CCPC Harbin I. power and zero (binary + thinking)