「TJOI2018」str】的更多相关文章

link 题意: 给一个模板串s和n个模式串,每个模式串有$a_i$种可取的串.现在要将n个模式串每个任取一种它可取的串,连接起来,记为串t,那么这种连接方式对答案的贡献为t在s中出现的次数.问所有连接方式的贡献之和. $n\leq 100,|S|\leq 10^4.$ 题解: 设f[i][j]表示使用前i个模式串,匹配前j位的贡献.对每个模式串的每种可能转移,使用hash判断是否匹配. 复杂度$\mathcal{O}(|S|\times \sum a_i)$. 花絮: 今天我生日> <,生快…
碱基序列 题目描述 小豆参加了生物实验室.在实验室里,他主要研究蛋白质.他现在研究的蛋白质是由$k$个氨基酸按一定顺序构成的.每一个氨基酸都可能有$a$种碱基序列$s_{i,j}$构成. 现在小豆有一个碱基串$s$,小豆想知道在这个碱基上都多少中不同的组合方式可能得到这个蛋白质.即求由$k$段字符串有序合并成的字符串$s_1$,有多少种不同方式能够匹配字符串$s$,其中$k$段字符串的选法不同,或者与$s$匹配上的位置不同认为是不同的方式. 输入输出格式 输入格式: 第一行一个数,表示这个蛋白质…
目录 题目链接 题解 代码 题目链接 loj#2574. 「TJOI2018」智力竞赛 题解 就是求可重路径覆盖之后最大化剩余点的最小权值 二分答案后就是一个可重复路径覆盖 处理出可达点做二分图匹配就好了 代码 #include<cstdio> #include<cstring> #include<algorithm> #define gc getchar() #define pc putchar inline int read() { int x = 0,f = 1;…
描述 小豆现在有一个数 xxx ,初始值为 111 . 小豆有 QQQ 次操作,操作有两种类型: 111 $ m$ : x=x×mx=x×mx=x×m ,输出 xxx modmodmod MMM : $2 $ pospospos: x=x/x=x/x=x/ 第$ pos$ 次操作所乘的数(保证第 pospospos 次操作一定为类型 111,对于每一个类型 111 的操作至多会被除一次),输出 xxx modmodmod MMM . 输入 一共有 ttt 组输入. 对于每一组输入,第一行是两个数…
题解 二分答案 求最小路径点覆盖 由于这里最小路径点覆盖,点是可重的,用floyd求出传递闭包(也就是求出,哪两点之间是可达的) 最后用这个floyd求出的数组建出一个新图,在这个图上跑普通的最小路径点覆盖即可 代码 #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #include <vector> #include <set>…
Loj #3057. 「HNOI2019」校园旅行 某学校的每个建筑都有一个独特的编号.一天你在校园里无聊,决定在校园内随意地漫步. 你已经在校园里呆过一段时间,对校园内每个建筑的编号非常熟悉,于是你情不自禁的把周围每个建筑的编号都记了下来--但其实你没有真的记下来,而是把每个建筑的编号除以 \(2\) 取余数得到 \(0\) 或 \(1\),作为该建筑的标记,多个建筑物的标记连在一起形成一个 \(01\) 串. 你对这个串很感兴趣,尤其是对于这个串是回文串的情况,于是你决定研究这个问题. 学校…
题面 LOJ #6436. 「PKUSC2018」神仙的游戏 题解 参考 yyb 的口中的长郡最强选手 租酥雨大佬的博客 ... 一开始以为 通配符匹配 就是类似于 BZOJ 4259: 残缺的字符串 这样做 . 把通配符设成 \(0\) 然后 . 别的按 \(\mathrm{ASCII}\) 码 给值 , 最后把他写成式子的形式 ... 后来发现太年轻了 qwq 先要做这题 , 那么先发现性质咯 : 存在一个长度为 \(len\) 的 \(border\) 当且仅当对于 \(\forall i…
「HAOI2018」字串覆盖 题意: ​ 给你两个字符串,长度都为\(N\),以及一个参数\(K\),有\(M\)个询问,每次给你一个\(B\)串的一个子串,问用这个字串去覆盖\(A\)串一段区间的最大收益是多少?(\(N,M\le100000,K\leq10^9\))其中,子串长度在\(51\)到\(2000\)的询问个数不会超过\(11000\)个. 题解: ​ 题目的暗示很明显,分类做. ​ 建出\(sam\),维护\(right\)集. ​ 对于询问大于\(50\)的直接暴力跳. ​ 对…
「HAOI2016」字符合并 题意: ​ 有一个长度为\(n\)的\(01\)串,你可以每次将相邻的\(k\)个字符合并,得到一个新的字符并获得一定分数.得到的新字符和分数由这\(k\)个字符确定.你需要求出你能获得的最大分数.(\(n\le 300,k\leq8\)) 题解: ​ 关键是要想到区间dp.记\(f[i][j][s]\),表示区间\([i,j]\),合并后状态为\(s\)的最大值.注意到长度模\(k\)余\(1\)的区间都可合并成一个字符,那么转移枚举的中点每次可以跳动\(k-1\…
系列文章 「 深入浅出 」集合List 「 深入浅出 」java集合Collection和Map Set继承自Collection接口,不能包含有重复元素.本篇文章主要讲Set中三个比较重要的实现类:HashSet.TreeSet. Set Set是一个存储无序且不重复元素的集合. 在使用Set集合的时候,应该注意两点 为Set集合里的元素的实现类重写equals()和hashCode()方法() 若传入重复的元素,重复元素会被忽略(可以用于做集合的去重) 扩展 判断两个元素相等的标准:两个对象…