【Codeforces 1132F】Clear the String】的更多相关文章

Codeforces 1132 F 题意:给一个串\(S\),问每次删除连续的一段相同字母,最少删几次将原串删空. 思路:考虑区间\(dp\),我们看要删多少次能把\([l,r]\)删空,那么最终答案就是\(dp[0,n]\). 那么就枚举最后一次删除的字符是\(c\). 由于我们可能有\(ababa\)这种情形,不一定只是\(c-\)段间隔起来的区间们需要被单独处理,而是可能是连续的几段,头尾是\(c-\)段即可. 那么就需要另一个\(dp\).设\(f(i)\)表示到了第几个\(?-\)段,…
[题目链接]:http://codeforces.com/problemset/problem/709/D [题意] 给你一个序列; 给出01子列和10子列和00子列以及11子列的个数; 然后让你输出一个符合要求的序列; [题解] 这里 00和11可以确定出序列中0和1的个数; 但有边缘数据 00如果为0代表什么? ->没有0或者是有1个0 11如果为0代表什么? ->没有1或者是有1个1 对这两种情况需要特判一下(两种情况的特判需要用到01和10的数量) 看代码吧. 然后这两种情况排除之后;…
题 题意 n个表示abc三个字符的点,所有a和b是相连的,所有b和c是相连的,所有相同的是相连的,现在给你n个点和他们之间的m条边,判断是否存在这样的字符串,存在则给出一个符合条件的. 分析 我的做法是找出所有的b,因为b是只和自己本身没有连接,所以有n-1个连线,然后找出第一个不是b的,然后所有和该点没有连线的都设置为c,有连线而不是b的就设置为a,然后再把该点设置为a. 接下来,根据题目条件,判断一下我设置出来的字符串成不成立.就是如果不相连接却是相同字母或者有b字母,还有如果相连接却是a和…
[CF1132F]Clear the String(动态规划) 题面 CF 题解 考虑区间\(dp\). 增量考虑,每次考虑最后一个字符和谁一起删去,然后直接转移就行了. #include<iostream> #include<cstdio> #include<cstring> using namespace std; #define MAX 505 int f[MAX][MAX],n;char s[MAX]; int main() { scanf("%d%s…
[codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=2000),问满足[数列长度是k && 数列中每一个元素arr[i]在1~n之间 && 数列中元素可以重复]的数列有多少个?结果对10^9+7取余 解题思路:dp[i][j]表示长度是j,最后一位是i的种数 if(kk%i==0) dp[kk][j+1]+=dp[i][j] #inc…
[HDOJ 1009] CRB and String 每组两个串s t 仅仅由小写字母组成 问从s能不能变成t 改变的操作为选一个字符 在后面加上一个与所选字符不同的字符 这样的操作能够做无数次 问能不能达t 首先s能到t的首要条件是 对于随意字母 s中出现的次数小于等于t中出现的次数 其次细致想想能够发现 满足上一条件后 假设不存在连续的同样字符 s肯定能变成t(细致想想 而同样的连续字符假设在串中(不在串首 可不断在其前的字符后累加该字符 因此仅仅需看t开头有没有连续的同样字符 假设与s开头…
[题目链接]:http://codeforces.com/contest/797/problem/C [题意] 一开始,给你一个字符串s:两个空字符串t和u; 你有两种合法操作; 1.将s的开头字符加到t后面; 2.将t的最后一个字符加到u的后面去 要求最后使得s和t字符串变成空串; 并且得到的u的字符串的字典序最小; [题解] i层循环顺序枚举s字符串的每一个字符; 然后把这第i个字符s[i]加入到t的后面去->用一个栈来模拟; 然后维护栈顶的元素和s中剩下的字符串里面字典序最小的字母;->…
[题目链接]:http://codeforces.com/contest/779/problem/D [题意] 给你一段操作序列; 按顺序依次删掉字符串1中相应位置的字符; 问你最多能按顺序删掉多少个字符; 使得s2是剩下的字符构成的字符串的子列; [题解] 二分枚举能够按顺序删掉多少个字符m; 然后把1..m相应的字符标记成已经删掉了; 然后O(N)判断s2是不是剩下的字符的子串; 心态炸了. [完整代码] #include <bits/stdc++.h> using namespace s…
[题目链接]:http://codeforces.com/contest/515/problem/C [题意] 定义f(n)=n这个数各个位置上的数的阶乘的乘积; 给你a; 让你另外求一个不含0和1的最大的数字b; 使得f(a)==f(b) [题解] 对a的每一个大于1的数字进行分解; 看看它能够组合成的最多的比它小的数字的阶乘的乘积是哪些; 比如 4!=3!∗(2!)2 每个都找最多数目的:数目相同找大的数的组合; 求出2..9!的组合就好; 最后根据每个数字的分解方案; 求出所有的数字; 然…
[题目链接]:http://codeforces.com/contest/801/problem/B [题意] 定义一个对两个字符串x,y的f(x,y)函数; 返回的是一个字符串; 这个返回的字符串的每一位i是x和y在相应位置上的字符的较小值; 告诉你x和f(x,y); 求y; [题解] 如果f(x,y)[i]==x[i]则y[i]='z'; 否则 如果f(x,y)[i]>x[i]则y[i]=x[i] 否则 无解 [Number Of WA] 0 [完整代码] #include <bits/s…