常州模拟赛d4t3 字符串划分】的更多相关文章

题目描述 给你一串由小写字母组成的字符串,希望你把它划分成一些小段,使得每一小段字符串中的字母 都不相同,并且希望分的段数尽量少. 然后,把这些小段按字典序排序后输出,中间由一个空格分隔. 例如:字符串 ”nnsmpmn”,最少分成 3 小段:”n”,”nsmp”,”mn”. 排序后输出:mn n nsmp 注意,有时候符合上面要求的方案可能有多个,就要输出排序后字典序最小的那个. 例如:字符串 ”aba” 可以有 2 种划分:a/ba 和 ab/a,排序后分别是:”a ba” 和 ”a ab”…
问题描述 一天蒜头君得到 n 个字符串 si​,每个字符串的长度都不超过 10. 蒜头君在想,在这 n 个字符串中,以 si​ 为后缀的字符串有多少个呢? 输入格式 第一行输入一个整数 n. 接下来 n 行,每行输入一个字符串 si​. 输出格式 输出 n 个整数,第 i 个整数表示以 si​ 为后缀的字符串的个数. 数据范围 对于 50\%50% 的数据,1≤n≤10^3. 对于 100\%100% 的数据,1 ≤n≤10^5. 所有的字符串仅由小写字母组成. 样例输入 3ba a aba 样…
7划分数列(seq.pas/c/cpp) [题目描述] 给你一个有n个元素的数列,要求把它划分成k段,使每段元素和的最大值最小 [输入格式] 第一行两个正整数n,k 第二行为此数列ai [输出格式] 一行一个数,为题目所求答案 [样例输入] 5 2 2 1 3 4 5 [样例输出] 9 [数据规模] 30%数据 n <= 30, k <= 10 100%数据 n <= 100000, k <= n, ai <= 10^9 150%数据 n <= 100000, k &l…
原题传送门 神奇的题目诶 原来以为字符串比较一定要O(NlogN) 结果发现可以均摊O(N) 首先我们来讲一讲原理 我们有3个指针i,j,k i=0,j=1,k=0 一开始我们不断对k+1直到找到ch[i+k]!=ch[j+k] 那么我们进行判断 如果ch[i+k]>ch[j+k] 那么假设在ch[i]与ch[j]之前的字符串相同,而且我们已知ch[i+1]~ch[i+k-1]与ch[j+1]~ch[j+k-1]的字符串相同, 比较到ch[i+k]与ch[j+k]时,我们会发现ch[j+k]比c…
题目描述 立方体有 6 个面,每个面上有一只奶牛,每只奶牛都有一些干草.为了训练奶牛的合作精神,它 们在玩一个游戏,每轮:所有奶牛将自己的干草分成 4 等份,分给相邻的 4 个面上的奶牛. 游戏开始,给定每个面上奶牛的干草数量,k 轮游戏后,请问奶牛 Shary 拥有的干草数量是多 少? 奶牛在立方体上编号次序是:前.后.上.下.左.右,奶牛 Shary 在立方体的上面. 如果答案是整数,直接输出:答案可能是分数,用最简分式表示,格式为 X/Y. 例如:一开始 6 个奶牛的干草数量是:0,0,4…
题目描述 我们村子在过去的400年中,断绝与下界的接触,过着自给自足的生活. 夏至祭是一场迎接祖灵于夏季归来,同时祈求丰收的庆典. 村里的男人会在广场上演出夏之军和冬之军的战争.夏之军会打倒冬之军的大将冬男,再放火将他连山车一起烧掉. 参与这场演出的一共有N+M位战士,其中N个人是冬之军,M个人是夏之军. 冬之军的大将冬男拥有改变季节的力量.他每次可以任意选取恰好K名战士,然后把这K个人中所有的夏之军变成冬之军,所有的冬之军变成夏之军. 冬男可以使用任意多次改变季节的力量,直到他将所有的人都变成…
就像每个人都会遇到的问题一样,贝西忘了在 cowtube 上的口令.不过,她还记着一些关于口令 的信息.首先,她确定口令由小写字母组成,长度为 L.其次,这个密码是由几个单词组合而成 的.贝西一共认识 N 个单词,每个单词长度都在 1 到 20 之间,由小写字母组成.最后,贝西还 记得口令上一些位置的字母,她会尽量提供记住的部分,如果有些位置上的字母不记得了,就用? 代替. 给定贝西记得的口令片段和她认识的单词列表,请恢复出她的口令,如果完全符合条件的口令不 止一个,输出按照字典序排在最前面的那…
3  字符串游戏(strGame.c/cpp/pas) 3.1  题目描述 pure 和 dirty 决定玩 T 局游戏.对于每一局游戏,有n个字符串,并且每一局游戏由K轮组成.具体规则如下:在每一轮游戏中,最开始有一个空串,两者轮流向串的末尾添加一个字符,并且需要保证该串为n个字符串中任意一个串的前缀,不能操作的人输掉这一轮,并且在下一轮游戏中由该轮输掉的人先手.另外为了遵循女士优先的原则,在每一局游戏的第一轮均由 pure 先手. 玩家的目标是获得整局游戏的胜利,一局游戏的胜利条件是:对手输…
分析:这道题比较奇葩.因为字符串没有swap函数,所以一个一个字符串交换只有30分.但是我们可以不用直接交换字符串,而是交换字符串的指针,相当于当前位置是哪一个字符串,每次交换int,可以拿60分. 对于二维问题,通常转化为一维问题去考虑,得到适当的方法再应用到二维上来,这道题如果转移到一维上就是给你一个序列,每次交换一对区间,区间不重叠,最后要求顺序输出整个序列,很显然,我们只要记录每个数旁边的数就好了,所以用链表能很快解决.转化到二维上,我们记录一个右方的链表,下方的链表,每次交换操作只需要…
分析:第一问还是很好做的,关键是怎么做第二问.我们可以每次删掉最小生成树上的一条边,然后再求一次最小生成树,看边权和大小和原来的是不是一样的,不过这个做法效率很低. 考虑Kruskal算法的原理,每次加边权最小的边,如果边上的两个点不连通.如果在最小生成树的基础上把不是上面的边给加上去,就会形成环,在环上找除了这条边之外的最大边权,如果等于新加入的这条边,那么就有多个最小生成树.为什么这样呢?我们把最大边拿掉,添加进这条边,两个点还是连通的,边权和一定,只是在Kruskal的时候先考虑了那条最大…