URAL 1635

思路:区间dp+贪心,先n^2处理出每段区间是否是回文串,然后贪心地找每一段1到i的最少分割。

代码:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mem(a,b) memset(a,b,sizeof(a))const int N=4e3+5;
string s;
int n;
int dp[N][N];
int ans[N];
int pre[N];
void init(){for(int len=1;len<=n;len++){for(int i=0;i+len-1<n;i++){int j=i+len-1;dp[i][j]=s[i]==s[j]&&(i+1>=j-1||dp[i+1][j-1]);}}
}
void dfs(int t){if(pre[t]==-1){for(int i=0;i<=t;i++)cout<<s[i];if(t!=n-1)cout<<' ';else cout<<endl;return ;}else{dfs(pre[t]);for(int i=pre[t]+1;i<=t;i++)cout<<s[i];if(t!=n-1)cout<<' ';else cout<<endl;return ;}
}
int main(){ios::sync_with_stdio(false);cin.tie(0);cin>>s;n=s.size();init();for(int i=0;i<n;i++){ans[i]=(i-1<0?0:ans[i-1])+1;pre[i]=i-1;for(int j=0;j<i;j++){if(dp[j][i]&&(j-1<0?0:ans[j-1])+1<ans[i]){ans[i]=(j-1<0?0:ans[j-1])+1;pre[i]=j-1;}}}cout<<ans[n-1]<<endl;dfs(n-1);return 0;
} 

转载于:https://www.cnblogs.com/widsom/p/8361061.html

URAL 1635 Mnemonics and Palindromes相关推荐

  1. 回文树(回文自动机) - URAL 1960 Palindromes and Super Abilities

     Palindromes and Super Abilities Problem's Link:  http://acm.timus.ru/problem.aspx?space=1&num=1 ...

  2. Ural 1018 (树形DP+背包+优化)

    题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17662 题目大意:树枝上间连接着一坨坨苹果(不要在意'坨'),给 ...

  3. 【APIO2014】Palindromes

    #103. [APIO2014]Palindromes 统计 描述 提交 自定义测试 给你一个由小写拉丁字母组成的字符串 ss.我们定义 ss 的一个子串的存在值为这个子串在 ss 中出现的次数乘以这 ...

  4. bzoj1814 Ural 1519 Formula 1(插头dp模板题)

    1814: Ural 1519 Formula 1 Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 924  Solved: 351 [Submit][S ...

  5. 洛谷 P1207 [USACO1.2]双重回文数 Dual Palindromes

    P1207 [USACO1.2]双重回文数 Dual Palindromes 题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做"回文数".例如,12321就是一 ...

  6. 【CodeForces】914 E. Palindromes in a Tree 点分治

    [题目]E. Palindromes in a Tree [题意]给定一棵树,每个点都有一个a~t的字符,一条路径回文定义为路径上的字符存在一个排列构成回文串,求经过每个点的回文路径数.n<=2 ...

  7. [代码]ural 1655 Somali Pirates

    Abstract ural 1655 Somali Pirates dp Source http://acm.timus.ru/problem.aspx?space=1&num=1655 So ...

  8. ural 1306. Sequence Median(优先级队列 priority_queue用法)

    最近做的ural的题目总是各种错,看了解题报告都是自己没学过的玩意,有点受打击,不过ural的题目质量还是挺好的,多被虐虐有益健康. 这一题要是用数组直接超内存,用优先级队列做,刚接触这个,学习一下优 ...

  9. DFS水题 URAL 1152 False Mirrors

    题目传送门 1 /* 2 题意:一个圈,每个点有怪兽,每一次射击能消灭它左右和自己,剩余的每只怪兽攻击 3 搜索水题:sum记录剩余的攻击总和,tot记录承受的伤害,当伤害超过ans时,结束,算是剪枝 ...

最新文章

  1. 如何在python中创建列表副本,在Python中切片列表而不生成副本
  2. runtime模型与字典互转
  3. jquery.cookie中的操作
  4. Xilinx Artix-7 Aurora调试过程中遇到的问题
  5. Trusted Execution Technology (TXT) --- 基本原理篇
  6. 误ghost后手工修改分区表来恢复数据
  7. C语言大作业--小型工资管理系统
  8. 2017年上半年软件工程师考试--程序员(上午)考点总结二
  9. 大数据学习线路_大数据初学者必备的详细版学习路线图
  10. python去除字符串中表情字符
  11. 现在流行的网络直播都需要什么设备?
  12. 微信小程序开发学习—Day1
  13. 金蝶系统服务器上怎样备份文件,金蝶服务器数据库备份
  14. 大数据培训—DolphinSchedular(一)
  15. C语言求最大公约数三种方法详解
  16. python json转csv_使用Python将Json转换为CSV
  17. 算法导论之数学归纳法和递归
  18. github能ping通但是打不开网页
  19. kali2021更新源(最全的更新源)
  20. uni-app集成H5统计方法

热门文章

  1. 实战SSM_O2O商铺_12【商铺注册】View层之前台页面
  2. oracle 11g autotrace,ORACLE 使用AUTOTRACE功能
  3. 【算法的时间复杂度和空间复杂度】-算法02
  4. Docker 安装 Nginx
  5. 【Linux】【服务器】 CentOS7下安装Redis详细过程步骤
  6. pythondistinct教程_mongodb如何执行distinct
  7. 修改sh文件_修改Android分区大小
  8. oracle中forall in,oracle10g的forall功能加强
  9. @value 静态变量_你理解 PHP 中的静态方法吗?
  10. 2021-04-29 Python绘制柱状图之可视化神器Pyecharts