UVa10618 Tango Tango Insurrection
来源:互联网 发布:康佳lc32es62数据 编辑:程序博客网 时间:2024/05/16 02:13
题目描述
紫书上的例题,一开始不知道为什么要加上一个移动的脚的维度。
突然发现自己语文&英语阅读能力巨差,看了n久题目才看懂,,,,,
设
转移过程详见代码。
代码(写的有点烂)
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std; char s[80];int f[80],id[260],d[80][4][4][3],len;;const char id1[]=".LR";struct node{ int u,l,r,t; node(int a=0,int b=0,int c=0,int d=0):u(a),l(b),r(c),t(d){}}p[80][4][4][3];#define mmin(L,R,T,A,B) {if(B<A){A=B;p[u][l][r][t]=node(u+1,L,R,T);}} int dp(int u,int l,int r,int t){ int& ans=d[u][l][r][t]; if(u==len) return 0; if(ans>-1) return ans; ans=1e9; int k; if(s[u+1]=='.'){ mmin(l,r,0,ans,dp(u+1,l,r,0)) if(l!=2){ for(int i=0;i<4;i++) if(i!=l&&i!=r){ if(t==2) k=i+r==3?7:5; else k=1; mmin(l,i,2,ans,dp(u+1,l,i,2)+k) } } if(r!=1){ for(int i=0;i<4;i++) if(i!=l&&i!=r){ if(t==1) k=i+l==3?7:5; else k=1; mmin(i,r,1,ans,dp(u+1,i,r,1)+k) } } } else{ int x=id[s[u+1]]; if(l==x) mmin(l,r,1,ans,dp(u+1,l,r,1)+(t==1?3:1)) else if(r==x) mmin(l,r,2,ans,dp(u+1,l,r,2)+(t==2?3:1)) else{ if(l!=2){ if(t==2) k=r+x==3?7:5; else k=1; mmin(l,x,2,ans,dp(u+1,l,x,2)+k) } if(r!=1){ if(t==1) k=l+x==3?7:5; else k=1; mmin(x,r,1,ans,dp(u+1,x,r,1)+k) } } } return ans;}int main(){ id['U']=0;id['L']=1;id['R']=2;id['D']=3; for(;;){ memset(d,-1,sizeof(d)); fgets(s+1,75,stdin); if(s[1]=='#') break; len=strlen(s+1)-1; dp(0,1,2,0); node n(0,1,2,0); do{ n=p[n.u][n.l][n.r][n.t]; putchar(id1[n.t]); }while(n.u<len); puts(""); } return 0;}
阅读全文
0 0
- UVa10618 Tango Tango Insurrection
- UVA10618 & POJ1726 & ZOJ2120 - Tango Tango Insurrection(比较烦的DP)
- 10618 - Tango Tango Insurrection
- poj1726 Tango Tango Insurrection
- Tango Tango Insurrection UVA
- uva 10618 Tango Tango Insurrection (DP)WA
- UVA 10618 Tango Tango Insurrection(DP)
- uva 10618 Tango Tango Insurrection 动态规划
- uva 10618 Tango Tango Insurrection 解题报告
- tango
- UVa #10618 Tango Tango Insurrection (例题9-18)
- 【暑假】[深入动态规划]UVa 10618 Tango Tango Insurrection
- UVa-10618 Tango Tango Insurrection&& UVa-1627 Team them up!
- 100道动态规划——15 UVA 10618 Tango Tango Insurrection 复杂的转移方程。。
- Tango Concepts Tango 概念
- Project Tango
- 来一曲 Tango
- Tango概念
- c语言初步经典题6----求三个整数中的最大值
- Harmony Analysis CodeForces
- 求ax^2+bx+c=0的根
- 笨方法学Python 习题 39: 字典, 可爱的字典
- 斐波那契数列
- UVa10618 Tango Tango Insurrection
- jvm(3)类加载器
- call()/apply()/bind()/FD/FE/无函数重载/基本值/引用值
- pip 相关命令的应用
- MySQL 存储过程参数用法 in, out, inout
- Centos 通过 Nginx 和 vsftpd 构建图片服务器
- API学习Random类随机数生成
- Biridian Forest CodeForces
- ActiveMQ在商城案例中的使用