dp[i][j][k][[l]: 执行第i步,执行到点(j,k),方向为l时,用的最大步数。

状态转移根据step[i]转移。

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#define INF 99999999
using namespace std;
int xx[4]={1,0,-1,0};
int yy[4]={0,-1,0,1};
int dp[2][111][111][4];
int step[1100];
int map[110][110];
int main()
{
int n,m,x0,y0,i,j,k,l;
char str[10001];
while(~scanf("%d%d%d%d",&n,&m,&x0,&y0))
{
for(i=1;i<=n;i++)
{
scanf("%s",str);
for(j=1;j<=n;j++)
{
if(str[j-1]=='*')map[i][j]=0;
else map[i][j]=1;
}
}
for(i=1;i<=m;i++)
{
scanf("%s",str);
if( strcmp(str,"FORWARD")==0)step[i]=1;
else if( strcmp(str,"BACK")==0)step[i]=2;
else if( strcmp(str,"LEFT")==0)step[i]=3;
else if(strcmp(str,"RIGHT")==0)step[i]=4;
}
for(i=0;i<2;i++)
{
for(j=0;j<=n+10;j++)
{
for(k=0;k<=n+10;k++)
{
for(l=0;l<4;l++)dp[i][j][k][l]=-INF;
}
}
}
dp[0][x0][y0][0]=0;
int maxn;
maxn=0;
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{
for(k=1;k<=n;k++)
{
if(map[j][k]==0)continue;
for(l=0;l<4;l++)
{
if(step[i]==1)
{
dp[i%2][j][k][l]=max(dp[(i+1)%2][j+xx[l]][k+yy[l]][l]+1,dp[(i+1)%2][j][k][l]);
}
else if(step[i]==2)
{
dp[i%2][j][k][l]=max(dp[(i+1)%2][j-xx[l]][k-yy[l]][l]+1,dp[(i+1)%2][j][k][l]);
}
else if(step[i]==3)
{
dp[i%2][j][k][l]=max(dp[(i+1)%2][j][k][(l+4-1)%4] +1,dp[(i+1)%2][j][k][l]);
}
else if(step[i]==4)
{
dp[i%2][j][k][l]=max(dp[(i+1)%2][j][k][(l+1)%4] +1,dp[(i+1)%2][j][k][l]);
}
maxn=max(maxn,dp[i%2][j][k][l]);
}
}
}
}
cout<<m-maxn<<endl;
}
return 0;
}

rqnoj-342-最不听话的机器人-dp的更多相关文章

  1. RQNOJ 342 最不听话的机器人:网格dp

    题目链接:https://www.rqnoj.cn/problem/342 题意: DD 有一个不太听话的机器人,这个机器人总是会有自己的想法,而不会完全遵守 DD 给它的指令. 现在 DD 在试图命 ...

  2. RQNOJ 328 炮兵阵地:状压dp

    题目链接:https://www.rqnoj.cn/problem/328 题意: 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队. 一个N*M的地图由N行M列组成(N≤100,M≤10), ...

  3. RQNOJ 169 最小乘车费用:水dp

    题目链接:https://www.rqnoj.cn/problem/169 题意: 给出行驶1-10公里的费用(所有车一样),可以倒车,问行驶n公里的最小费用. 题解: 大水题... (=´ω`=) ...

  4. UVALive 3983 捡垃圾的机器人 DP

    这个题目我最初的做法沿用树形DP的做法,设置一个 dp[i][0]表示机器人在i点不回去的最短路径,dp[i][1]表示机器人在i点回去的最短路径,规划方向为i-1向i转移,结果发现这个不能用树形的结 ...

  5. Luogu P5469 [NOI2019]机器人 (DP、多项式)

    不用FFT的多项式(大雾) 题目链接: https://www.luogu.org/problemnew/show/P5469 (这题在洛谷都成绿题了海星) 题解: 首先我们考虑,一个序列位置最右边的 ...

  6. 【RQNOJ PID106】最大加权矩形(DP)

    题目描述 给定一个正整数n( n<=100),然后输入一个N*N矩阵.求矩阵中最大加权矩形,即矩阵的每一个元素都有一权值,权值定义在整数集上.从中找一矩形,矩形大小无限制,是其中包含的所有元素的 ...

  7. hdu 4003(树形dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4003 思路:dp[i][j]表示以i为根选择j个机器人的最小花费,然后就是背包了:dp[u][i]=m ...

  8. HDU-4003 Find Metal Mineral 树形DP (好题)

    题意:给出n个点的一棵树,有k个机器人,机器人从根节点rt出发,问访问完整棵树(每个点至少访问一次)的最小代价(即所有机器人路程总和),机器人可以在任何点停下. 解法:这道题还是比较明显的能看出来是树 ...

  9. P1070 道路游戏

    题目描述 小新正在玩一个简单的电脑游戏. 游戏中有一条环形马路,马路上有 n 个机器人工厂,两个相邻机器人工厂之间由一小段马路连接.小新以某个机器人工厂为起点,按顺时针顺序依次将这 n 个机器人工厂编 ...

随机推荐

  1. Web service是什么?

    原文:http://www.ruanyifeng.com/blog/2009/08/what_is_web_service.html 我认为,下一代互联网软件将建立在Web service(也就是&q ...

  2. SQLServer Note

    1. Grant necessory permission to user account, so it can use SQL profiler. USE masterGRANT ALTER TRA ...

  3. iOS: 悬浮的条件筛选下拉框的使用

    1.介绍 app中条件筛选视图是很常用的功能,一般它搭配着tableView的表头悬浮滚动使用,点击按钮时,就会弹出下拉框显示条件,选择一个条件后,下拉框自动隐藏. 2.效果图如下 从中间点击弹出,然 ...

  4. less 命令(转)

    less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more 更加的有弹性.在 more 的时候,我们并没有办法向前面翻 ...

  5. cp 命令(转)

    cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一.一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数.但是如果是 ...

  6. 微信支付开发(1) 微信支付URL配置

    由于微信支付接口更新,本文档已过期,请查看新版微信支付教程.地址 http://www.cnblogs.com/txw1958/category/624506.html 本文介绍微信支付申请时如何设置 ...

  7. tomcat部署新的项目的时候出现报错信息: Invalid byte tag in constant pool: 15

    上面一堆tomcat启动的提示信息省略掉,下面是报错的具体信息:org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid ...

  8. T4模版生成多个实体文件时,提示找不到 Host

    T4模版生成多个实体文件时,提示找不到 Host 使用以下方法,把hostspecific改为true就可以了 hostspecific:有效值true.false,默认为false.如果将此特性的值 ...

  9. gcc选项-g与-rdynamic的异同_转

    转自:http://www.tuicool.com/articles/EvIzUn gcc 的 -g ,应该没有人不知道它是一个调试选项,因此在一般需要进行程序调试的场景下,我们都会加上该选项,并且根 ...

  10. Spring boot中使用springfox来生成Swagger Specification小结

    Rest接口对应Swagger Specification路径获取办法: 根据location的值获取api   json描述文件 也许有同学会问,为什么搞的这么麻烦,api json描述文件不就是h ...