URAL 1635 Mnemonics and Palindromes】的更多相关文章

题目传送门 /* 题意:给出一个长为n的仅由小写英文字母组成的字符串,求它的回文串划分的元素的最小个数,并按顺序输出此划分方案 回文串+回溯:dp[i] 表示前i+1个字符(从0开始)最少需要划分的数量,最大值是i+1,即单个回文串: 之前设置ok[j][j+i] 判断从j到j+i的字符是否为回文串(注意两个for的顺序,为满足ok[j][j+i] = ok[j+1][j+i-1]) 最后枚举找到最优划分点,用pre[i]记录前一个位置,print函数 输出空格 */ #include <cst…
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)) ; string s; int n; int dp[N][N]; int ans[N]; int pre[N]; void…
题目地址:space=1&num=1635">Ural 1635 又是输出路径的DP...连着做了好多个了. . 状态转移还是挺简单的.要先预处理出来全部的回文串,tag[i][j]为1表示字符串i--j是一个回文串.否则不是回文串.预处理时要用n^2的方法.即枚举回文串中间.能够分奇数和偶数两种分别求一次. 然后dp转移方程为,若tag[j][i]==1,dp[i]=min(dp[i],dp[j-1]+1); 对于最令人讨厌的路径输出.能够用pre来记录回文串前驱分裂点,然后依据…
题目链接 本来用区间DP,3次方的复杂度,T了,看了看题解,降维,直接二次方的复杂度可以解.然后折腾一下输出路径..终于过了. #include <cstring> #include <cstdio> #include <string> #include <iostream> #include <algorithm> #include <cmath> using namespace std; ]; ][]; ]; ]; ]; int…
题意:求由a,b,c三个字母组成的长度为n的字符串,其任意连续的至少长度大于等于2的子字符串都不是回文,问这个字符串有多少种?并字典序输出 如果所有种类的字符串总长度大于100000个字符,就输出TOO LONG. 思路:先动手写写    如前两个ab,则第三个不能为a,b,只能为c.    接下来,不能为b,c,只能为a.    于是找出规律,某一位上的字母不能与前两位的相同,这样由开头两个字母就唯一确定一串字符串 于是开头两个字母,只有6种,所以不管n(n>=2)取多少,满足要求的都只有6种…
链接 先初始化一下所有的回文串 再O(n*n)DP 输出路径dfs 刚开始存所有回文 ME了 后来发现用不着 改了改了OK了 数据还挺强 #include <iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<stdlib.h> using namespace std; #define N 4010 #define INF 0xfffffff int…
题意: 演队在口试中非常不幸.在42道考题中,他恰好没有准备最后一道题,而刚好被问到的正是那道题.演队坐在教授面前,一句话也说不出来.但教授心情很好,给了演队最后一次通过考试的机会.他让这个可怜的学生说出考试要考的科目.不幸的是,演队想不起这个科目名字,尽管他记得科目里有诸如安全.程序.设备.可能还有信息学-- 为了准备复试,演队决定记住这门课的名字.为了更好地记住那根长字符串,他决定把它分解成回文,并分别学习每个回文.当然,分解过程中的回文数必须尽可能少. Input 输入一行字符串表示为这门…
列表: URAL 1225 Flags URAL 1009 K-based Numbers URAL 1119 Metro URAL 1146 Maximum Sum URAL 1203 Scientific Conference URAL 1353 Milliard Vasya's Function URAL 1260 Nudnik Photographer URAL 1012 K-based Numbers. Version 2 URAL 1073 Square Country URAL 1…
Palindromes and Super Abilities 2 Time Limit: 1MS   Memory Limit: 102400KB   64bit IO Format: %I64d & %I64u Status Description Dima adds letters s1, -, sn one by one to the end of a word. After each letter, he asks Misha to tell him how many new pali…
Palindromes and Super Abilities Time Limit: 1000ms Memory Limit: 65536KB This problem will be judged on Ural. Original ID: 196064-bit integer IO format: %lld      Java class name: (Any) After solving seven problems on Timus Online Judge with a word “…