URAL 1635 Mnemonics and Palindromes
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相关推荐
- 回文树(回文自动机) - URAL 1960 Palindromes and Super Abilities
Palindromes and Super Abilities Problem's Link: http://acm.timus.ru/problem.aspx?space=1&num=1 ...
- Ural 1018 (树形DP+背包+优化)
题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17662 题目大意:树枝上间连接着一坨坨苹果(不要在意'坨'),给 ...
- 【APIO2014】Palindromes
#103. [APIO2014]Palindromes 统计 描述 提交 自定义测试 给你一个由小写拉丁字母组成的字符串 ss.我们定义 ss 的一个子串的存在值为这个子串在 ss 中出现的次数乘以这 ...
- 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 ...
- 洛谷 P1207 [USACO1.2]双重回文数 Dual Palindromes
P1207 [USACO1.2]双重回文数 Dual Palindromes 题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做"回文数".例如,12321就是一 ...
- 【CodeForces】914 E. Palindromes in a Tree 点分治
[题目]E. Palindromes in a Tree [题意]给定一棵树,每个点都有一个a~t的字符,一条路径回文定义为路径上的字符存在一个排列构成回文串,求经过每个点的回文路径数.n<=2 ...
- [代码]ural 1655 Somali Pirates
Abstract ural 1655 Somali Pirates dp Source http://acm.timus.ru/problem.aspx?space=1&num=1655 So ...
- ural 1306. Sequence Median(优先级队列 priority_queue用法)
最近做的ural的题目总是各种错,看了解题报告都是自己没学过的玩意,有点受打击,不过ural的题目质量还是挺好的,多被虐虐有益健康. 这一题要是用数组直接超内存,用优先级队列做,刚接触这个,学习一下优 ...
- DFS水题 URAL 1152 False Mirrors
题目传送门 1 /* 2 题意:一个圈,每个点有怪兽,每一次射击能消灭它左右和自己,剩余的每只怪兽攻击 3 搜索水题:sum记录剩余的攻击总和,tot记录承受的伤害,当伤害超过ans时,结束,算是剪枝 ...
最新文章
- 如何在python中创建列表副本,在Python中切片列表而不生成副本
- runtime模型与字典互转
- jquery.cookie中的操作
- Xilinx Artix-7 Aurora调试过程中遇到的问题
- Trusted Execution Technology (TXT) --- 基本原理篇
- 误ghost后手工修改分区表来恢复数据
- C语言大作业--小型工资管理系统
- 2017年上半年软件工程师考试--程序员(上午)考点总结二
- 大数据学习线路_大数据初学者必备的详细版学习路线图
- python去除字符串中表情字符
- 现在流行的网络直播都需要什么设备?
- 微信小程序开发学习—Day1
- 金蝶系统服务器上怎样备份文件,金蝶服务器数据库备份
- 大数据培训—DolphinSchedular(一)
- C语言求最大公约数三种方法详解
- python json转csv_使用Python将Json转换为CSV
- 算法导论之数学归纳法和递归
- github能ping通但是打不开网页
- kali2021更新源(最全的更新源)
- uni-app集成H5统计方法
热门文章
- 实战SSM_O2O商铺_12【商铺注册】View层之前台页面
- oracle 11g autotrace,ORACLE 使用AUTOTRACE功能
- 【算法的时间复杂度和空间复杂度】-算法02
- Docker 安装 Nginx
- 【Linux】【服务器】 CentOS7下安装Redis详细过程步骤
- pythondistinct教程_mongodb如何执行distinct
- 修改sh文件_修改Android分区大小
- oracle中forall in,oracle10g的forall功能加强
- @value 静态变量_你理解 PHP 中的静态方法吗?
- 2021-04-29 Python绘制柱状图之可视化神器Pyecharts