简化版题目
有一个n * n的网格,每个洞里藏有0~ 100块奶酪;仓鼠从(0,0)开始走,由于一只猫的存在,所以仓鼠每次只能水平或垂直走1~k步;由于吃了奶酪仓鼠会变胖,所以每一次走到的洞里的奶酪都要比上一次多;求仓鼠最多能吃多少块奶酪。
思路:

  • 首先看了题目就能感受到dfs的召唤!
  • 然后由于每次新的坐标里奶酪要增加,所以肯定是无环的
  • 每走一步就要转移一次状态(dp)
  • 最后组合得到做法:记忆化搜索+状态转移

tips:

  • 搜索时移动的限制
  • 每个点要加上自己的奶酪数

万众瞩目的代码(来辽,老弟)

#include <bits/stdc++.h>
#define ll long long
#define re register
#define il inlineusing namespace std;
int n, m, ans = 0;
int mp[110][110], vis[110][110], dp[110][110];il int dfs(int x, int y) {if(x <= 0 || x > n || y <= 0 || y > n) {return 0;}if(vis[x][y]) {return dp[x][y];}vis[x][y] = 1;for(re int i = -m; i <= m; ++i) {if(i == 0) continue;if(x + i <= n && x + i > 0 && mp[x+i][y] > mp[x][y]) {dp[x][y] = max(dp[x][y], dfs(x+i, y) + mp[x][y]);}if(y + i <= n && y + i > 0 && mp[x][y+i] > mp[x][y]) {dp[x][y] = max(dp[x][y], dfs(x, y+i) + mp[x][y]);} }return dp[x][y];
}
int main() {//freopen("cheese.in", "r", stdin);//freopen("cheese.out", "w", stdout);cin >> n >> m;for(re int i = 1; i <= n; ++i) {for(re int j = 1; j <= n; ++j) {cin >> mp[i][j];vis[i][j] = 0;dp[i][j] = mp[i][j];}}cout << dfs(1, 1) << endl;return 0;
}

计蒜客--肥肥鼠吃奶酪( FatMouse and Cheese)相关推荐

  1. 在线计算机 授课,在线计算机教育网站计蒜客改版 推出算法竞赛课程

    [赛迪网讯]4月16日消息,近日,新型在线计算教育平台计蒜客进行了重大改版,网站从底层架构到课程内容都进行了大幅调整.计蒜客新版除了服务速度和稳定性大幅提升外,还对用户的学习体验进行了优化:同时,计蒜 ...

  2. 计蒜客 T1895切蛋糕(单调队列)

    题目:传送阵 思路: 分析题目,简单的说这个题目求的就是最大不定长子段和,那么首先对于最大不定长子段和,我们肯定要首先预处理前缀和数组,然后首先朴素的想, 对于以第i个元素结尾的子段,最大的子段和re ...

  3. 计蒜客题解——T1157:派

    题目相关 题目链接 计蒜客,https://nanti.jisuanke.com/t/T1157. 我的OJ,http://47.110.135.197/problem.php?id=4951. 题目 ...

  4. 计蒜客 挑战难题 爬楼梯

    计蒜客 挑战难题 爬楼梯 假设你现在正在爬楼梯,楼梯有n级.每次你只能爬1级或者2级,那么你有多少种方法爬到楼梯的顶部? 格式: 第一行输入一个数n(n<=50),代表楼梯的级数. 接下来一行输 ...

  5. 无脑博士的试管们java_计蒜客 无脑博士和他的试管们

    标签: 无脑博士有三个容量分别是A,B,C升的试管,A,B,C分别是三个从1到20的整数,最初,A和B试管都是空的,而C试管是装满硫酸铜溶液的.有时,无脑博士把硫酸铜溶液从一个试管倒到另一个试管中,直 ...

  6. 最短路(遍历边)计蒜客—DD坐地铁

    题目: C 城有 n 个站点, m 条双向地铁,每条地铁有一个 companyicompany_icompanyi​表示它的公司,如果连续乘坐同一家公司的地铁只要花 1元钱就好.DD现在想出门找萨摩耶 ...

  7. K - Triangle 计蒜客 - 42405

    K - Triangle 计蒜客 - 42405 题意: 给你一个三角形的三点,再给你三角形边上一个点,让你求另一个点(也要在三角形上),使得平分三角形的面积 题解: 计算几何 三角形的三边ab,ac ...

  8. H - Prince and Princess 计蒜客 - 42402

    H - Prince and Princess 计蒜客 - 42402 题意: 你现在要寻找公主,有三种人,第一种是说真话的人(至少为1,因为公主是说真话的人),第二种人是只会说假话的,第三种是胡说八 ...

  9. C - Digital Path 计蒜客 - 42397 05-29

    C - Digital Path 计蒜客 - 42397 题意: 题意就是给出一个n ∗ m的数字矩阵每个矩阵元素之间只能上下左右走,而且下一个位置必须比当前位置的数字大1,入口和出口必须数边缘元素, ...

最新文章

  1. java异常详细讲解_java异常的讲解
  2. rsync+inotify-tools实现文件的实时同步
  3. Uncaught TypeError: Object #Document has no method 'load'
  4. 苹果确认部分iPad Air 3会出现永久性黑屏:可免费维修
  5. 象棋正确的学习步骤是什么?入门和提高方法全都教给你!
  6. qt 程序中读取 DXL360 倾角仪的数据
  7. Pytorch获取中间变量的梯度
  8. 俄亥俄州立大学宣布开放 Swift 编程和 App 开发课程
  9. android 自定义textview圆形,Android 自定义TextView可以设置圆角和按下效果
  10. 微信应用架构!!-----微信应用能力篇
  11. MATLAB libsvm 安装和使用
  12. Java交换二叉树的左右子树_二叉树左右子树交换
  13. 深度学习究竟怎么入门?两位Google大神掀起剑气之争
  14. 单片机遥控车c语言程序,基于51单片机的无线遥控小车设计[附发射接收程序]
  15. 怎样在普通java项目中使用aspectj
  16. 驳少壮不努力,老大搞IT
  17. Google电话面试的结果
  18. 南通python培训机构
  19. RVIZ界面没有显示joint publishe的GUI界面解决方法
  20. 联创 #8211; Java面试题

热门文章

  1. android 多屏互动 开发,基于Android的DLNA多屏互动系统的设计与开发
  2. FFmpeg学习记录
  3. 4种Python文件或者文本加密的方式
  4. 莱昂纳多(Leonardo)方程求解计算国土面积 (matlab程序答案)
  5. python浙大版pta习题集汇总
  6. python实现网页微信登陆_django 微信网页授权登陆的实现
  7. 神经网络的公式怎么计算,神经网络的公式有哪些
  8. 自己写的第一个android 游戏《是男人就下100层》
  9. 霍尼韦尔USB接口条码扫描枪HH660扫描48位随机码(二维码)耗时计算
  10. 22考研专业课136总分370双非调剂吉大软院非全经验分享