CF1440A Buy the String 题解】的更多相关文章

Content 有 \(t\) 组询问,每组询问给出一个长度为 \(n\) 的 \(0/1\) 串,你可以花 \(h\) 的代价把 \(0\) 修改成 \(1\) 或者把 \(1\) 修改成 \(0\),也可以花 \(c_x\) 的代价删除一个 \(x\in[0,1]\).求使得 \(0/1\) 串为空的最小代价. 数据范围:\(1\leqslant t\leqslant 10,1\leqslant n,c_0,c_1,h\leqslant 1000\). Solution 设 \(x\) 在字…
Description The advice to "buy low" is half the formula to success in the bovine stock market.To be considered a great investor you must also follow this problems' advice: "Buy low; buy lower" Each time you buy a stock, you must purcha…
题目 题目 s = "3[a]2[bc]", return "aaabcbc". s = "3[a2[c]]", return "accaccacc". s = "2[abc]3[cd]ef", return "abcabccdcdcdef". 大概意思是根据指定的格式将字符串进行展开 思路 递归的思路 递归计算出括号最里面的字符串,依次再处理外面一层的字符串,每个单元内的字符串类似于一…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5414 题意:给你两个字符串s和t,你能够在字符串s中随意选一个字符c,在该字符c后插入一个字符d(d!=c).问经过多次此操作,是否能将字符串s转化成字符串t 思路:初读题理解错题意,以为仅仅能在原串的每一个字符后面加入一个不同于这个字符的一个字母,其实能够反复操作,比方,ap.转换成axxp,能够先在a后面加入一个x.就变成了axp.再次操作.在a后面加入一个x,就能够变成axxp. 换句话说:就…
题面:https://www.cnblogs.com/Juve/articles/11599318.html antipalindome: 打表找规律? 对于一个回文串,我们只要保证3位以内不回文即可,即只要不出现三位以内回文就合法 对于前三位:m*(m-1)*(m-2),剩下的n-3个位置用m-2来填 所以$ans=m*(m-1)*(m-2)^(n-2)$,注意边界的判断 #include<iostream> #include<cstdio> #include<cstrin…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3336 题目大意:找出字符串s中和s的前缀相同的所有子串的个数. 题目分析:KMP模板题.这道题考虑 nxt[] 数组的应用.以 s[i] 结尾的子串中一共有多少个子串可以作为s的前缀呢?我们只要令 t = nxt[i],cnt=0 每当 t!=-1,cnt++, t=nxt[t] 就可以了. 当然,我们可以用dp优化,dp[i] = dp[nxt[i]]+1 ,当然,如果 nxt[i]==-1 ,那…
Content 给定一个长度为 \(n\) 的字符串,求出至少出现两次的最长子串的长度. 数据范围:\(1\leqslant n\leqslant 100\). Solution 我们直接暴力求出每个子串,然后统计它的出现次数(可以直接用 \(\texttt{map}\) 映射),最后将出现次数 \(\geqslant 2\) 的所有子串的长度取个最大值即可. Code string s, ss[10007]; map<string, int> vis; int main() { cin &g…
Content 给定 \(T\) 个仅包含大写字母 A,B,C 的字符串 \(s\).问你是否能够通过将每个 A,B,C 换成 (,) 中的一个(同一个字母必须要换成同一个字符),使得最后得到的括号序列能够完全匹配. 数据范围:\(1\leqslant t\leqslant 10^3\),\(2\leqslant |s|\leqslant 50\). Solution 不愧是 bruteforces,开头第一题就来暴力. 我的想法是直接枚举每个字母换成左括号还是右括号.排除全是左括号和全是右括号…
题目 Musicians of a popular band "Flayer" have announced that they are going to "make their exit" with a world tour. Of course, they will visit Berland as well. There are n cities in Berland. People can travel between cities using two-di…
题目连接 题意: 没个位置有一个点权,每个边有一个边权,求对于每个点u的min(2*d(u,v)+val[v])(v可以等于u) 分析: 我们想这样一个问题,从u到v的边权*2再加一个点权就完了,我们能不能把点权也变成边权,可以,直接和0连接就好了,这是从u到0的最短路(当然原先的边权要*2)就是要求的值. 当然,也可以直接类似dij的贪心思想,把每个点的dis赋值为点权push进去然后更新就行了.其实是类似的算法. 代码: #include <cstdio> #include <cst…