#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
using namespace std;
int dp[];
char str[];
int n;
bool isbiger (int x1,int y1,int x2,int y2) {//判断x1-y1字符串与x2-y2字符串的大小
while (str[x1]==''&&x1<=y1) x1++;
while (str[x2]==''&&x2<=y2) x2++;
if (x1>y1) return ;
if (x2>y2) return ;
int n1=y1-x1; int n2=y2-x2;
if (n1>n2) return ;
if (n2>n1) return ;
for (;x1<=y1;x1++,x2++) {
if (str[x1]>str[x2]) return ;
else if (str[x1]<str[x2]) return ;
}
return ;
}
int main ()
{
char _end[]="";
while (gets(str+)&&strcmp(str+,_end)!=) {
int n=strlen(str+); dp[]=;
for (int i=;i<=n;i++) {//第一次dp --dp[i](1-i字符串构成递增序列,最后一个字符串的最小长度)
dp[i]=i;
for (int j=i;j>=;j--) {
if ( isbiger(j,i,j-dp[j-],j-) ) {
dp[i]=i-j+;
break;
}
}
}
int len=n-dp[n];
dp[len+]=dp[n];
int i;
for (i=len;i>=&&str[i]=='';i--) //第二次dp--利用已知最后一位的最小值反推前面的最大值
dp[i]=dp[i+]+;// 前导为零即使加上最后一个字符的大小不会改变
for (;i>=;i--) {
for (int j=len;j>=i;j--) {
if ( isbiger (j+,j+dp[j+],i,j) ) {//dp[i]-(从i-n字符串中) 第一个字符串的最大值
dp[i]=j-i+;
break;
}
}
}
i=;
while (i<=n) {
int j=i+dp[i];
for (;i<j;i++)
printf ("%c",str[i]);
if (i<=n)
printf (",");
}
printf ("\n");
}
return ;
}

poj-1239(递推关系)好难的更多相关文章

  1. POJ 1239 Increasing Sequences 动态规划

    题目链接: http://poj.org/problem?id=1239 Increasing Sequences Time Limit: 1000MSMemory Limit: 10000K 问题描 ...

  2. POJ 1239 Increasing Sequences(经典的两次dp)

    http://poj.org/problem?id=1239 题意:给出一串序列,现在要添加逗号作为分隔符,使得序列是递增序列,然后让最后一个数尽量小,第一个数尽量大. 思路:先从头到尾进行一次dp, ...

  3. poj 1239

    二次dp,还算好想. 先第一遍dp找出最后一个数字最小是几. dpf[i]=max{j}+1(dpf[j],dpf[j]+1,…,j位组成的数字小于j+1,j+2,…,i位组成的数字. 在第二遍dp, ...

  4. POJ 1239 Increasing Sequences [DP]

    题意:略. 思路:进行两次dp. 第一次dp从前向后,用dp[x]表示从第x位向前dp[x]位可构成一个数字,且与前面的数组符合题意要求.最后求的dp[n]即为最后一个数字的长度. 而题目还有要求,所 ...

  5. poj很好很有层次感(转)

    OJ上的一些水题(可用来练手和增加自信) (POJ 3299,POJ 2159,POJ 2739,POJ 1083,POJ 2262,POJ 1503,POJ 3006,POJ 2255,POJ 30 ...

  6. POJ题目分类推荐 (很好很有层次感)

    著名题单,最初来源不详.直接来源:http://blog.csdn.net/a1dark/article/details/11714009 OJ上的一些水题(可用来练手和增加自信) (POJ 3299 ...

  7. [转] POJ图论入门

    最短路问题此类问题类型不多,变形较少 POJ 2449 Remmarguts' Date(中等)http://acm.pku.edu.cn/JudgeOnline/problem?id=2449题意: ...

  8. 【转载】图论 500题——主要为hdu/poj/zoj

    转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  9. 图论常用算法之一 POJ图论题集【转载】

    POJ图论分类[转] 一个很不错的图论分类,非常感谢原版的作者!!!在这里分享给大家,爱好图论的ACMer不寂寞了... (很抱歉没有找到此题集整理的原创作者,感谢知情的朋友给个原创链接) POJ:h ...

  10. 【转载】ACM总结——dp专辑

    感谢博主——      http://blog.csdn.net/cc_again?viewmode=list       ----------  Accagain  2014年5月15日 动态规划一 ...

随机推荐

  1. java.lang.NoSuchMethodError问题处理

    出现这个问题一般是jar包冲突了,我找了很久没找到是哪个jar冲突了.最后用下面的这段代码,找到是哪个jar冲突了 /** * find jar file */ String LOCATION = & ...

  2. Lua面向对象 --- 多继承

    工程目录结构: ParentMother.lua: ParentMother = {} function ParentMother:MortherName() print("Morther ...

  3. 雷林鹏分享:Ruby 判断

    Ruby 判断 Ruby 提供了其他现代语言中很常见的条件结构.在这里,我们将解释所有的条件语句和 Ruby 中可用的修饰符. Ruby if...else 语句 语法 if conditional ...

  4. consensus sequence

    consensus sequence:称为一致序列.一些遗传元件(如启动子)中反复出现且很少有改变的DNA序列.不同种生物编码同一种蛋白质的基因也会有共有序列.通过序列比较发现相似但不一定完全相同的核 ...

  5. English trip -- Phonics 4 元音字母 i

    IPA   国际音标(英语:International Phonetic Alphabet [ælfəbet],缩写:IPA),早期又称万国音标 VOWELS [ɪ]   [u]   [ʌ]   [ɒ ...

  6. java通过java.net.URL发送http请求调用接口

    一般在*.html,*.jsp页面中我们通过使用ajax调用接口,这个是我们通常用的.对于这些接口,大都是本公司写的接口供自己调用,所以直接用ajax就可以.但是,如果是多家公司共同开发一个东西,一个 ...

  7. Please, another Queries on Array? CodeForces - 1114F (线段树,欧拉函数)

    这题刚开始看成求区间$\phi$和了........先说一下区间和的做法吧...... 就是说将题目的操作2改为求$(\sum\limits_{i=l}^{r}\phi(a[i]))\%P$ 首先要知 ...

  8. Bata验收互评

    小组的名字和链接 优点 缺点,bug报告 最终名次 编程题全队 ①限制用户重复注册同一个邮箱②注册之后可以弹出用户名,不用手动输入③细节考虑到位④面板可拖动,增删改查,还能添加成员 Q1:程序有什么具 ...

  9. 数据库SQL优化(百万级数据库优化方案)

    1. 对查询进行优化 要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2. where 子句 要尽量避免在 where 子句中对字段进行 null 值判断.( ...

  10. elasticsearch 自定义_id

    elasticsearch 自定义ID: curl -s -XPUT localhost:9200/web -d ' { "mappings": { "blog" ...