=====字符串=====
Qingo呀
老菜鸡。
展开
-
2018 ICPC 南京 M. Mediocre String Problem (马拉车+扩展kmp)
题链:https://nanti.jisuanke.com/t/A2150题意:给出两个串S,T。求S的子串接上T的前缀子串(S子串的长度要大于T前缀子串的长度。)所能组成的回文串的个数。思路:我们可以把S的子串s分为两部分s1和s2。那么s2一定得是回文串且长度要大于1,s1与T的子串t又组成回文串。马拉车求出S(假设为cbaba)的每个回文子串。对于回文子串“aba”,可选的s2有1.“b”(对应的s1可以为"a","ba","cba",那么我们需要的T的子串前缀为"a","ab",原创 2020-12-14 19:40:40 · 289 阅读 · 0 评论 -
LeetCode 每日一题 767. 重构字符串 (优先队列+贪心)
题链:https://leetcode-cn.com/problems/reorganize-string/我的思路:我考虑的是插空法。首先,按插空法,假设一个字母出现的次数为k,那么我们需要k-1个其他字母将他们分开,所以如果一个字母出现次数n-k>k-1,否则就无法重构。贪心策略就是每次弹出出现次数最多的字母a(假设有k个)。首先用掉一个,剩下k-1个,每一个之前都放一个当前优先队列中出现次数最多的字符b,如果b还有再将它放入队列。struct node{ int pos,num原创 2020-11-30 15:35:30 · 194 阅读 · 0 评论 -
QDU校内排位赛第三场 D 于老师发生什么事了 (字典树+逆序对)
题链:https://pintia.cn/problem-sets/1330210570443206656/problems/1330211663055204354题目:思路1:字典树思想,插入一个数时,如果当前这一位是0,那么,之前插入的这一位是1的数都与他构成逆序对。插入时,统计一下每一位为1的数量即可。#include <bits/stdc++.h>#define ll long longusing namespace std;const int N = 2e7原创 2020-11-25 11:19:34 · 132 阅读 · 0 评论 -
CodeForces - 514C Watto and Mechanism hash或字典树
题目链接:https://vjudge.net/contest/407982#problem/K题意:给你n个字符串,m个询问,问是否给出的n个串中,是否有一个字符串恰好与查询的字符串只有一个位置不同。(字符串只有a,b,c组成)。思路1(字符串哈希):,a为1,b为2,c为3。将n个串哈希后标记下来,我用的unordered_map。枚举每个位置变为另外两个字符的字符串哈希后,是否已经被标记过?用unsigned long long 会错,不知道为啥。改为long long取mod为1e15+7。原创 2020-11-16 18:23:30 · 148 阅读 · 0 评论 -
2019年我能变强组队训练赛热身赛 Problem H String and Times(后缀自动机)
链接:http://icpc.upc.edu.cn/running.php?cid=1828题意:多组样例,每行给出一个字符串S,两个整数A,B。问一个字符串中出现次数在[A,B]范围内的子串的种类数。思路:后缀自动机模板题。但是,题目说范围是2e6,数组开这么大会报运行错误,看到1e5就过了。oj问题。。。。#include<iostream>#include<...原创 2019-08-03 11:12:24 · 185 阅读 · 0 评论 -
2019 计蒜之道 复赛 D. “星云系统”(队列+贪心 或 单调栈)
链接:https://nanti.jisuanke.com/t/39614题意:给你一个字符串和k,求字典序最小的长度为k的子序列。贪心思路:开26个队列,将字母的位置放入队列中。贪心的往k个位置上放字母,即从‘a’到'z'尝试,首先尝试字母的位置要大于放的上一个字母的位置。如果尝试字母的位置后面的字母数加上已经放的字母数小于k,则不能放,否则就放。#include <bits...原创 2019-07-23 17:11:36 · 138 阅读 · 0 评论 -
2015 年蓝桥杯C++B组国赛 密文搜索
标题:密文搜索福尔摩斯从X星收到一份资料,全部是小写字母组成。他的助手提供了另一份资料:许多长度为8的密码列表。福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的。请你编写一个程序,从第一份资料中搜索可能隐藏密码的位置。要考虑密码的所有排列可能性。数据格式:输入第一行:一个字符串s,全部由小写字母组成,长度小于1024*1024紧接着一行是一个整数n,表示以下有n行密码...原创 2019-04-20 10:13:28 · 158 阅读 · 2 评论 -
Codeforces Round #551 (Div. 2) C. Serval and Parenthesis Sequence(思维)
C. Serval and Parenthesis Sequencetime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputServal soon said goodbye to Japari kindergarten,...原创 2019-04-14 11:07:06 · 331 阅读 · 0 评论 -
2019南昌网络赛 Subsequence (思维)
(题意:给你一个字符串S,然后给出n个字符串T,问T是不是S的子串,可以是不连续的。)(思路:预处理一下每个位置上每一个字符的下一个最近位置,直接遍历寻找即可。)#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include &l...原创 2019-04-20 20:54:46 · 716 阅读 · 0 评论 -
牛客上海高校程序设计竞赛 D CSL 的字符串(思维)
链接:https://ac.nowcoder.com/acm/contest/551/D来源:牛客网题目描述CSL 以前不会字符串算法,经过一年的训练,他还是不会……于是他打算向你求助。给定一个字符串,只含有可打印字符,通过删除若干字符得到新字符串,新字符串必须满足两个条件:原字符串中出现的字符,新字符串也必须包含。新字符串中所有的字符均不相同。新字符串的字典序是满足上面两个条件的最...原创 2019-04-01 17:10:44 · 361 阅读 · 0 评论 -
HYSBZ 2342-双倍回文(Manacher算法应用)
Input输入分为两行,第一行为一个整数,表示字符串的长度,第二行有个连续的小写的英文字符,表示字符串的内容。Output输出文件只有一行,即:输入数据中字符串的最长双倍回文子串的长度,如果双倍回文子串不存在,则输出0。Sample Input16ggabaabaabaaballSample Output12HINTN<=500000(详情看注释,因为没有理解Mana...原创 2019-03-17 19:26:58 · 188 阅读 · 0 评论 -
统计难题 HDU - 1251(字典树 Trie树)
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.注意:本题...原创 2019-02-26 15:30:10 · 153 阅读 · 0 评论 -
剪花布条 - kmp模板
一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?Input输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作。Output输出能从花...原创 2019-01-30 20:42:40 · 104 阅读 · 0 评论 -
最长回文 HDU - 3068(马拉车(Manacher)算法-最长回文子串)
给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.回文就是正反读都是一样的字符串,如aba, abba等 Input输入有多组case,不超过120组,每组输入为一行小写英文字符a,b,c…y,z组成的字符串S两组case之间由空行隔开(该空行不用处理)字符串长度len &amp;lt;= 110000Output每一行一个整数x,对应一组case,表...原创 2019-02-26 13:59:36 · 318 阅读 · 0 评论