貌似我的dp和大多数写法不太一样。。常数巨大。
我们设 f [ i ] [ j ] [ k ] [ l ] f[i][j][k][l] f[i][j][k][l]为剩下横坐标范围为 i t o j i\ to\ j i to j,纵坐标范围为 k t o l k\ to\ l k to l这个矩形,内部的机器人都还存在,这个矩形外部取出的机器人的最大数量。
转移推一下就好了。反正我开始的时候推错了一些地方,但是状态表示一直没改。
dp的时候可以滚动数组优化空间。时间复杂度 O ( n 4 ) O(n^4) O(n4)。这个dp1s跑了 1 0 8 10^8 108,太神奇了。
还有转移其实挺对称和相似的,可以复制代码233
代码

#include<cstdio>
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define calc(xl,xr,yl,yr) (sum[xr][yr]-sum[xl-1][yr]-sum[xr][yl-1]+sum[xl-1][yl-1])
const int N=105;
int n,m,ex,ey,ans,sum[N][N],f[2][N][N][N];
char s[N][N];
int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%s",s[i]+1);for(int j=1;j<=m;j++){sum[i][j]=sum[i][j-1];if(s[i][j]=='E'){ex=i;ey=j;}else if(s[i][j]=='o'){sum[i][j]++;}}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){sum[i][j]+=sum[i-1][j];}}int sta=0;for(int i=1;i<=n;i++,sta^=1){for(int j=n;j>=i;j--){for(int k=1;k<=m;k++){for(int l=m;l>=k;l--){if(i-1>=1&&((i-1<=ex&&j+ex-(i-1)<=n)||(i-1>=ex&&j-((i-1)-ex)>=1))){f[sta][j][k][l]=max(f[sta][j][k][l],f[sta^1][j][k][l]+calc(i-1,i-1,max(k,ey-(m-l)),min(l,ey+k-1)));}if(j+1<=n&&((j+1<=ex&&i+ex-(j+1)<=n)||(j+1>=ex&&i-((j+1)-ex)>=1))){f[sta][j][k][l]=max(f[sta][j][k][l],f[sta][j+1][k][l]+calc(j+1,j+1,max(k,ey-(m-l)),min(l,ey+k-1)));}if(k-1>=1&&((k-1<=ey&&l+ey-(k-1)<=m)||(k-1>=ey&&l-((k-1)-ey)>=1))){f[sta][j][k][l]=max(f[sta][j][k][l],f[sta][j][k-1][l]+calc(max(i,ex-(n-j)),min(j,ex+i-1),k-1,k-1));}if(l+1<=m&&((l+1<=ey&&k+ey-(l+1)<=m)||(l+1>=ey&&k-((l+1)-ey)>=1))){f[sta][j][k][l]=max(f[sta][j][k][l],f[sta][j][k][l+1]+calc(max(i,ex-(n-j)),min(j,ex+i-1),l+1,l+1));}if(i==j&&k==l){ans=max(ans,f[sta][j][k][l]+(s[i][k]=='o'));}}}}}printf("%d\n",ans);return 0;
}

【AGC004E】Salvage Robots【动态规划dp】相关推荐

  1. [AGC004E] Salvage Robots (DP)

    Description 蛤蟆国的领土我们可以抽象为H*W的笼子,在这片蛤土上,有若干个机器人和一个出口,其余都是空地,每次蛤蟆会要求让所有的机器人向某个方向移动一步,当机器人移动到出口时会被蛤蟆活摘出 ...

  2. AGC004E - Salvage Robots(dp,思维)

    AGC004E - Salvage Robots Solution 怎么又双叒叕遇到和NOIP2020T4NOIP2020T4NOIP2020T4和那道CFCFCF题一样的题了啊,惨痛回忆QAQQAQ ...

  3. AtCoder AGC004E Salvage Robots (DP)

    题目链接 https://atcoder.jp/contests/agc004/tasks/agc004_e 题解 本题的难度不在于想到大体思路,而在于如何把代码写对.. 首先我们可以不让机器人动,让 ...

  4. 【国集作业】【AGC004E】Salvage Robots 【DP】

    小视野链接 洛谷链接 ###题目大意 一个 n ∗ m n*m n∗m的网格上有一些黑点和一个出口.每次操作使所有黑点向上下左右中的任意一个方向移动一格.若移出边界则消失,移至出口则收集起来.问最终收 ...

  5. [agc004e]Salvage Robots dp

    Description 蛤蟆国的领土我们可以抽象为H*W的笼子,在这片蛤土上,有若干个机器人和一个出口,其余都是空地,每次蛤蟆会要求让所有的机器人向某个方向移动一步,当机器人移动到出口时会被蛤蟆活摘出 ...

  6. agc004E Salvage Robots

    题意: 一个网格图,有若干机器人,还有一个出口. 操作一系列指令让机器人一起上下左右走,走出矩形就死,进入出口则得救. 最多救多少机器人? $W,H \leq 100$ 考虑不让所有机器人移动,而让出 ...

  7. [agc004e]Salvage Robots

    前言 本题的关键是想到让出口和矩形动,而不是机器人动,只要记录出口的位移矩形,便可以知道哪个区域的机器人已经飞出去了. 题目大意 一个网格图,有若干机器人,还有一个出口. 操作一系列指令让机器人上下左 ...

  8. 第4课 防卫导弹(第十章 动态规划--DP)

    //progream p10_04 /* 第4课 防卫导弹(第十章 动态规划--DP)  (<聪明人的游戏--信息学探秘 提高篇>) https://blog.csdn.net/weixi ...

  9. 动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包,混合背包

    动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包 01背包 && 完全背包 && 分组背包 の 视频教程:https://www.bilibi ...

  10. 【习题详解】动态规划DP:硬币游戏 蛋糕 游荡的奶牛 决斗

    动态规划DP 硬币 蛋糕塔 游荡的奶牛 格斗 硬币 题目描述 农夫约翰的奶牛喜欢玩硬币游戏,因此他发明了一种称为"Xoinc"的两人硬币游戏. 初始时,一个有N(5 <= N ...

最新文章

  1. 安全***需要掌握的东西
  2. python float转str
  3. 如何保证高可用?java测试工程师测试的方法
  4. IplImage简介
  5. 经典小游戏--推箱子
  6. 直播丨国产最强音:HTAP融合型分布式数据库EsgynDB架构详解
  7. 3d激光雷达开发(基于统计滤波)
  8. 【会话推荐】ICDM论文:探索跨会话信息感知的推荐模型
  9. django分页功能 views与templates
  10. apache php 分离mysql_Apache、php、mysql单独安装配置
  11. 读“让你的软件飞起来”持续更新代码运行效率之路
  12. 一款极致的文件对比工具——Beyond Compare,适用于Windows、macOS和Linux的文件和文件夹比较
  13. JavaScript的20个工具函数助力H5高效开发
  14. font:12px/1.5 tahoma, arial, \5b8b\4f53, sans-serif详解
  15. 无线网sdn服务器,云服务器:采用SDN网络有哪些优势?
  16. 【GAMES-202实时渲染】3、预计算环境光照(球谐函数(SH)、IBL、Split Sum、环境光阴影计算(PRT))
  17. 微信支付之微信小程序支付
  18. Red Hat认证工程师(RHCE)简介
  19. 华硕笔记本A45V的bios密码取消设置
  20. openssl java des_OPENSSL库的使用-DES篇

热门文章

  1. 关于win10中视频文件不显示缩略图的问题
  2. Linux下操作Excel表格,xlsx表格
  3. 盘点2018程序员才懂的100个段子/搞笑图(上篇)
  4. 第七史诗无限显示服务器连接中,第七史诗神器满破是什么意思?神器满破攻略...
  5. python抢购茅台抢购描述
  6. 传感器实训心得体会_生产线实习心得体会范文
  7. 想进入游戏建模行业,必须要了解的基础知识
  8. 【HISI系列】海思媒体处理平台架构分析
  9. 2007noip提高组初赛总结
  10. 如何在网页中嵌入商务通对话框