Fork me on GitHub
摘要: "Codeforces 1080E Sonya and Matrix Beauty" 题意 给出一个N M的矩阵,问其有多少个子矩阵是“美丽矩阵”。 美丽矩阵: 选定矩阵后,可以在对矩阵的每一行中的元素任意调换位置,使该矩阵的每一行、每一列均是回文串。 题解 先对每一行用计数数组哈希,并考虑是否能够 阅读全文
posted @ 2020-04-02 18:27 qjy_73 阅读(149) 评论(0) 推荐(0)
摘要: "[TJOI2015]弦论" 题意 对于一个给定长度为N的字符串,求它的第K小子串是什么。并且给出一个t,t=0表示不同位置的相同子串算作一个,t=1表示不同位置的相同子串算作多个。 输出仅一行,为一个数字串,为第K小的子串。如果子串数目不足K个,则输出 1。 题解 endpos[i]表示状态i的子 阅读全文
posted @ 2020-04-02 18:16 qjy_73 阅读(132) 评论(0) 推荐(0)
摘要: "UVA1673 str2int" 题意 多组数据,每次给出n个均由整数构成的字符串,将每个字符串的所有子串转化成整数,去重并求和。 题解 首先将n个字符串拼接起来,中间用符号(如":")隔开,将问题转化成求新串中本质不同的子串的和,那么我们就可以用后缀自动机完成。 定义cnt[v]为从初始状态到状 阅读全文
posted @ 2020-04-02 17:34 qjy_73 阅读(106) 评论(0) 推荐(0)
摘要: "Codeforces 1204G Indie Album" 题意 有n个字符串,对于第i个字符串通过以下两种方式中的一个给出。 1、 1 c,该字符串只含一个字符c。 2、 2 j c,该字符串为第j个字符串末尾添加一个字符c得到。 m次询问,每次询问给出一个整数x和一个字符串s,问在第x个字符串 阅读全文
posted @ 2020-03-22 22:47 qjy_73 阅读(229) 评论(0) 推荐(0)
摘要: "POJ 1204 Word Puzzles" 题意 给出一个n m的字母表,t个字符串,要求找到这t个字符串的首字母出现位置即字符串的方向(总共A H八个方向,A表示向上,B表示向右上,逆时针依次表示) 题解 将t个字符串构建AC自动机,然后枚举开始搜索的起点和方向。 注 tr[N][26]开大一 阅读全文
posted @ 2020-03-22 22:34 qjy_73 阅读(158) 评论(0) 推荐(0)
摘要: "Codeforces 1285D Dr. Evil Underscores" 题意 给一个数组an,求一个数$x$,使得$max$ ai $\bigoplus x$最小,输出最小值。 题解 把所有数字的二进制代码(从高位到低位)建成Trie树。 1、如果第k为只有一个儿子(0/1),那么我们就可以 阅读全文
posted @ 2020-03-22 22:15 qjy_73 阅读(144) 评论(0) 推荐(0)
摘要: "POJ3356 AGTC(最短编辑距离) " 题意 多测,每次给出两个长度分别为n和m的字符串s1,s2,有三种操作:增加、删除、修改一个字符,问将s1变成s2,最少要几次操作。 题解 dp[i][j]表示将s1的前i个字符变成s2的前j个字符所需要的最小操作数。 考虑dp[i][j]的三种来源: 阅读全文
posted @ 2020-03-19 15:52 qjy_73 阅读(109) 评论(0) 推荐(0)
摘要: "UVA10617 Again Palindrome " 题意 T组数据,每次给出一个字符串s,问它有多少个回文序列 题解 根据子串的长度,如果已知长度为len 1的字符串中所含回文子序列的个数,那么可以推出长度为len的字符串中回文子序列的个数。 dp[l][r]表示在区间[l,r]中的回文子序列 阅读全文
posted @ 2020-03-19 15:32 qjy_73 阅读(118) 评论(0) 推荐(0)
摘要: "Codeforces 1183H Subsequences (hard version) " 题意 给一个长度为n的字符串s,要求找出k个不相同的子序列,每个子序列的花费是n len(子序列长度),求最小花费。 题解 根据长度,找出所有长度为j的不同的子序列个数,然后长度再由大到小贪心的选取。 方 阅读全文
posted @ 2020-03-19 14:40 qjy_73 阅读(134) 评论(0) 推荐(0)
摘要: "Codeforces 1096D Easy Problem" 题意 给一个长度为n的字符串s,以及数组a,a[i]表示删除s[i]所需要的花费。问要让字符串s中不包含“hard”的子序列所需要的最小花费。 题解 dp[i][0]表示前i个字符中不包含'h'的最小花费,dp[i][1]表示前i个字符 阅读全文
posted @ 2020-03-19 14:10 qjy_73 阅读(168) 评论(0) 推荐(0)