SRM556 Div1Medium LeftRightDigitsGame2
来源:互联网 发布:美工刀片的硬度 编辑:程序博客网 时间:2024/06/05 15:56
这题比较水。。
普通的一道
定义
且当前的数与
当
当
否则
而后很容易的就能
代码如下:
#include<bits/stdc++.h>using namespace std;#define M 55string dig,low;string dp[M][M][3];int getflag(string A,string B){ if(A<B)return 0; if(A==B)return 1; return 2;}void Min(string &A,string B){ if(B=="")return; if(A==""||A>B)A=B;}int main(){ cin>>dig>>low; int n=dig.size(); for(int i=0;i<n;i++){ int flag=getflag(dig.substr(0,1),low.substr(i,1)); dp[i][i][flag]=dig.substr(0,1); } for(int i=n-1;~i;i--) for(int j=i+1;j<n;j++) for(int f=0;f<3;f++){ if(dp[i+1][j][f]!=""){ string now=dig[j-i]+dp[i+1][j][f]; int flag=getflag(now,low.substr(i,j-i+1)); Min(dp[i][j][flag],now); } if(dp[i][j-1][f]!=""){ string now=dp[i][j-1][f]+dig[j-i]; int flag=getflag(now,low.substr(i,j-i+1)); Min(dp[i][j][flag],now); } } Min(dp[0][n-1][1],dp[0][n-1][2]); if(dp[0][n-1][1]!="")cout<<dp[0][n-1][1]<<endl; else puts("-1"); return 0;}
阅读全文
1 0
- SRM556 Div1Medium LeftRightDigitsGame2
- SRM556
- SRM556 Div1 555
- 【贪心】 TopCoder SRM556 division2 LeftRightDigitsGame
- SRM556题解(T3除外)
- srm 556 div1 500 LeftRightDigitsGame2(DP)
- SRM548 Div1Medium KingdomAndDice
- SRM551 Div1Medium ColorfulWolves
- SRM573 Div1Medium Ski Resorts
- SRM574 Div1Medium PolygonTraversal
- SRM579 Div1Medium TravellingPurchasingMan
- SRM588 Div1Medium KeyDungeonDiv1
- SRM589 Div1Medium GearsDiv1
- SRM554 Div1Medium TheBrickTowerMediumDivOne
- SRM548 Div1Medium KingdomAndDice
- SRM551 Div1Medium ColorfulWolves
- SRM593 Div1Medium MayTheBestPetWin
- SRM573 Div1Medium Ski Resorts
- java的静态方法继承问题
- Ketama一致性Hash算法(含Java代码)
- [PAT-甲级]1006.Sign In and Sign Out
- Fragment全解析系列(一):那些年踩过的坑
- Java面试基础——持续更新
- SRM556 Div1Medium LeftRightDigitsGame2
- unsigned和signed的个人体会
- OC与Swift混合使用
- FreeMarker的List的使用
- tomcat报错信息:严重: StandardServer.await: create[8005]:
- h264基本介绍
- UVA 822
- Spring中定时器实现
- Java异常处理机制的简单原理和应用