POJ 2030
简单DP题。
可以用运算符重载来写,简单一些。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string.h>
using namespace std; class STRS{
public:
char str[100];
void operator=(STRS b){
strcpy(str,b.str);
}
STRS operator+(char b){
STRS tmp;
strcpy(tmp.str,str);
int leng=strlen(tmp.str);
if(tmp.str[0]=='0'){
tmp.str[0]=b;
tmp.str[1]='\0';
}
else{
tmp.str[leng]=b;
tmp.str[leng+1]='\0';
}
return tmp;
}
bool operator >(STRS b){
int al=strlen(str); int bl=strlen(b.str);
if(al>bl) return true;
else if(bl>al) return false;
for(int i=0;i<al;i++){
if(str[i]>b.str[i])
return true;
else if(str[i]<b.str[i])
return false;
}
return false;
}
void initial(){
strcpy(str,"0");
}
}; STRS gp[100],dp[100][100],answer;
int n,m; int main(){
STRS tmpt;
while(scanf("%d%d",&m,&n)!=EOF){
if(n==0&m==0) break;
for(int i=0;i<=n;i++)
for(int j=0;j<=m;j++)
dp[i][j].initial();
answer.initial();
for(int i=1;i<=n;i++)
scanf("%s",gp[i].str+1);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(gp[i].str[j]>='0'&&gp[i].str[j]<='9'){
dp[i][j]=dp[i][j]+gp[i].str[j];
tmpt=dp[i][j-1]+gp[i].str[j];
if(tmpt>dp[i][j])
dp[i][j]=tmpt;
tmpt=dp[i-1][j]+gp[i].str[j];
if(tmpt>dp[i][j])
dp[i][j]=tmpt;
if(dp[i][j]>answer)
answer=dp[i][j];
}
}
}
printf("%s\n",answer.str);
}
return 0;
}
POJ 2030的更多相关文章
- POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理
Halloween treats Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7644 Accepted: 2798 ...
- POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理
Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7192 Accepted: 3138 ...
- POJ 2965. The Pilots Brothers' refrigerator 枚举or爆搜or分治
The Pilots Brothers' refrigerator Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22286 ...
- POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 37427 Accepted: 16288 Descr ...
- POJ 3254. Corn Fields 状态压缩DP (入门级)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9806 Accepted: 5185 Descr ...
- POJ 2739. Sum of Consecutive Prime Numbers
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20050 ...
- POJ 2255. Tree Recovery
Tree Recovery Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11939 Accepted: 7493 De ...
- POJ 2752 Seek the Name, Seek the Fame [kmp]
Seek the Name, Seek the Fame Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 17898 Ac ...
- poj 2352 Stars 数星星 详解
题目: poj 2352 Stars 数星星 题意:已知n个星星的坐标.每个星星都有一个等级,数值等于坐标系内纵坐标和横坐标皆不大于它的星星的个数.星星的坐标按照纵坐标从小到大的顺序给出,纵坐标相同时 ...
随机推荐
- 86. Ext文本输入框:Ext.form.TextField属性汇总
转自:https://blog.csdn.net/ryuudenne/article/details/8834650 Ext.form.TextField主要配置表: allowBlank ...
- js返回16位随机数
public string GetDataRandom() { string strData=DateTime.Now.ToString(); ...
- selenium3 + python - xpath定位
什么是xpath呢? 官方介绍:XPath即为XML路径语言,它是一种用来确定XML1(标准通用标记语言3的子集)文档中某部分位置的语言.反正小编看这个介绍是云里雾里的,通俗一点讲就是通过元素的路径来 ...
- Spring boot (12) tomcat jdbc连接池
默认连接池 tomcat jdbc是从tomcat7开始推出的一个连接池,相比老的dbcp连接池要优秀很多,spring boot将tomcat jdbc作为默认的连接池,只要在pom.xml中引入了 ...
- Lambda&Linq
var list = new List<Model> { , UserName = ", Email = "zhang3@yoy.com"}, , UserN ...
- 关于jquery的clone()和javascript的cloneNode()
区别: jquery的clone( ),如果是true就是深克隆,把事件都会克隆过去:如果是false,则仅仅克隆的是结构: javascript的cloneNode( ),如果是true,会将子节点 ...
- 分割字符串 ExtractStrings
//分割字符串 ExtractStrings var s: String; List: TStringList; begin s := 'about: #delphi; #pascal, progra ...
- Embedded之Stack之一
1 Intro When a program starts executing, a certain contiguous section of memory is set aside for the ...
- dubbo之线程模型
事件处理线程说明 如果事件处理的逻辑能迅速完成,并且不会发起新的IO请求,比如只是在内存中记个标识,则直接在IO线程上处理更快,因为减少了线程池调度. 但如果事件处理逻辑较慢,或者需要发起新的IO请求 ...
- VC维与DNN的Boundary
原文链接:解读机器学习基础概念:VC维来去 作者:vincentyao 目录: 说说历史 Hoeffding不等式 Connection to Learning 学习可行的两个核心条件 Effecti ...