随笔分类 -  题解

摘要:题意 给定若干个多项式,将其在正整数域上的所有值放入一个允许重复的序列中,然后进行sort操作。求该序列的第n项。 思路 比较显然的思路。 由于k的值比较小,所以每次求值的时间可以近似于忽略。那么维护一个小根堆,装着每一个多项式当前的值,然后模拟即可。 时间复杂度为$O(mk+nk)$。 代码 cp 阅读全文
posted @ 2019-11-02 11:48 Ilverene 阅读(173) 评论(0) 推荐(0)
摘要:题意 给定一个字符串,求定长的不包含这个字符串的字符串数量。 思路 设子状态$dp[i][j]$表示求的字符串匹配到i,给定的字符串最多匹配到j的答案数量,那么所求即为$\sum dp[n][i]$,转移用kmp维护。 但是这样速度还是不过,观察之后考虑矩阵快速幂。 代码 cpp include u 阅读全文
posted @ 2019-10-27 21:06 Ilverene 阅读(137) 评论(0) 推荐(0)
摘要:题意 求不相交前后缀匹配数量。 思路 注意本题求的是数量,不是长度。 代码 阅读全文
posted @ 2019-10-27 16:38 Ilverene 阅读(173) 评论(0) 推荐(0)
摘要:题意 给你一个字符串,它是由某个字符串不断自我连接形成的。 但是这个字符串是不确定的,现在只想知道它的最短长度是多少. 思路 结论:$ans=n next[n]$ 证明:(偷了LYYY的图) 由于上下对应段相同,所以红色和1相等。由于前缀和后缀相等,所以1和2相等。其余同理 所以可以得出,红色即为循 阅读全文
posted @ 2019-10-27 16:20 Ilverene 阅读(164) 评论(0) 推荐(0)
摘要:题意 给定一个数列以及若干询问,每次询问给定区间任意挑选两个数相等的概率。 思路 对于每一种颜色显然贡献为$cnt[c] (cnt[c] 1)$,由于我们一个个加入,所以说在加上现在贡献的同时需要减去之前的计算,即 $$+cnt[c] (cnt[c] 1) (cnt[c] 1) (cnt[c] 2) 阅读全文
posted @ 2019-10-26 23:10 Ilverene 阅读(108) 评论(0) 推荐(0)
摘要:题意 待修莫队模板题 思路 待修莫队在普通莫队的基础上,额外维护一个修改操作,每一次根据查询操作的时间加入修改或是撤销修改。 实现蛮显然的,配合代码很容易搞懂。 note:块大小的证明参见 "这里" ,此处不做赘述。 代码 cpp include using namespace std; names 阅读全文
posted @ 2019-10-23 22:55 Ilverene 阅读(177) 评论(0) 推荐(0)
摘要:题意 给定一个序列以及若干查询,每次查询求不被区间包含的最小正整数值。 思路 复杂度不正确的裸莫队也能过。 删除操作直接取最小值,添加操作暴力寻找最小值。 代码 cpp include using namespace std; namespace StandardIO { templateinlin 阅读全文
posted @ 2019-10-19 15:54 Ilverene 阅读(157) 评论(0) 推荐(0)
摘要:题意 给定一个初始的序列以及四种操作,问最少操作多少次可以是序列变为回文序列。 操作如下: 1. 在队伍左侧或右侧添加一个数 2. 在队伍中插入一个数 3. 删除一个数 4. 改变一个数的值 思路 看到给定的序列和改数的操作(其实还是因为询问是最少操作次数),可以想到区间dp。 设子状态$dp[i] 阅读全文
posted @ 2019-10-16 23:10 Ilverene 阅读(183) 评论(0) 推荐(0)
摘要:整数分解 题意 对任意数求分解为2的幂之和有多少种分法。 思路 奇怪的递推。。。手玩小样例得知答案序列为n级等差数列。。。貌似碾标算 代码 修改数组 题意 给出一个整数数组 A,你可以将任何一个数修改为任意一个正整数,最终使得整个数组是严格递增的且均为正整数。问最少需要修改几个数? 思路 LIS 代 阅读全文
posted @ 2019-10-05 15:05 Ilverene 阅读(440) 评论(0) 推荐(0)
摘要:题意 给出一个序列,初始时序列的长度为 n,序列中每个数为 0。 进行 m 次操作,操作有三种: 1 k 在序列开头加入 k 个数字 0 2 k 在序列末尾加入 k 个数字 0 3 b s 给序列中所有数字加上 b+s (i 1) [i 是该数字在序列中的位置] 你需要在每次操作后输出序列中最小的数 阅读全文
posted @ 2019-10-04 16:16 Ilverene 阅读(296) 评论(0) 推荐(0)
摘要:题意 大魔头路西法拥有一样可怕的神器——魔环,魔环上有着 n 个用来摆放神珠的位置,并且这 n 个位置两两丌重叠。当路西法想要施放某种法术时,他便会将 n个神珠放在这 n 个位置上,神珠就位后,有着“亲密联系”的神珠之间将产生一道丝线,如果有两条丝线相交且交点丌在顶点处,路西法的法术将会失效,现在路 阅读全文
posted @ 2019-10-04 16:08 Ilverene 阅读(281) 评论(0) 推荐(0)
摘要:题意 给定n,k。求满足条件的数列个数: 1. 长度为k。 2. 每一项均为前一项的倍数。 3. 每一项都为[1,n]上的整数。 答案对1000000007取模。 思路 有一个朴素的DP:$f[i][j]$表示长度为j结尾为i的个数,这个转移是显然的。 那么所求答案为$\sum (\sum f[i] 阅读全文
posted @ 2019-10-03 19:04 Ilverene 阅读(368) 评论(0) 推荐(0)
摘要:题意 对于给定的图,要求将其分为两张完全图。对于一种分法,其值为两张完全图边数之和。求所有分法最小值。 思路 建立原图的补图,显然这张图上相连的都是原来不能呆在同一组里的。对于补图中的每一个联通块都进行染色。 如果有两个节点在补图上相连且颜色一样,显然输出 1。 如果他们不相连但是颜色一样,那么必须 阅读全文
posted @ 2019-10-03 16:55 Ilverene 阅读(330) 评论(0) 推荐(0)
摘要:题意 有一颗带边权的树,每次操作可以将一条路径上所有边权同时异或一个任意值,求最少多少次操作可以将所有边权变为0。 (题目保证边权≤15) 思路 可以发现题目保证了边权,看到这个数字容易联想到状压(天知道为什么我没联想到)。 由于边权不是很好处理,所以我们可以将其转换到点上面去,那么每一个点的点权就 阅读全文
posted @ 2019-10-03 15:15 Ilverene 阅读(297) 评论(0) 推荐(0)
摘要:题意 https://www.luogu.org/problem/P4735 思路 考虑查询操作,假设$s[i]=a[1]\oplus a[2]\oplus ...\oplus a[i]$,那么原式等价于$s[p 1]\oplus s[n]\oplus x$的最大值。 我们可以维护一个可持久化tri 阅读全文
posted @ 2019-10-02 22:01 Ilverene 阅读(1364) 评论(0) 推荐(0)
摘要:题意 给定序列以及若干询问,每次询问格式为 ,询问区间[L,R]中与X最大的异或值。 思路 看到异或很容易想到01trie,由于询问[L,R],所以需要可持久化。 代码 cpp include using namespace std; namespace StandardIO { templatei 阅读全文
posted @ 2019-10-02 15:25 Ilverene 阅读(216) 评论(0) 推荐(0)
摘要:题意 给定一系列规则:某个长度为2的字符串可以化为某个长度为1的字符串。对于给出的字符串,求可以化为哪些长度为1的字符串。 题目所涉及字符串均由W,I,N,G组成。 思路 区间dp。 子状态$dp[l][r][i]$表示区间[l,r]是否可以化为i。 枚举断点合并即可。 代码 cpp include 阅读全文
posted @ 2019-09-30 18:00 Ilverene 阅读(182) 评论(0) 推荐(0)
摘要:题意 给定一个串,要求对空串进行染色,使其成为目标串。每一次染色可以将一段连续区间染为同一种颜色,求最小次数。 思路 典型的区间dp题。 子状态$f[i][j]$表示该区间最小方案数。显然单点方案数为1。 如果一个区间的左右端点相同,那么可以理解为在最开始将整个区间染色,然后复制[l+1,r]的染色 阅读全文
posted @ 2019-09-29 20:39 Ilverene 阅读(148) 评论(0) 推荐(0)
摘要:题意 有若干个人,喜欢唱跳rap篮球,数量给定。排成一行,如果有连续四个人分别喜欢唱跳rap篮球,那么不合法。求总方案数。 思路 容易想到枚举连续情况,然后删去,但是这样无法解决连续情况外的连续。 所以考虑容斥。 每次容斥的时候如果暴力求出方案会到$O(n^3)$,所以可以用一个小trick优化一下 阅读全文
posted @ 2019-09-26 16:54 Ilverene 阅读(343) 评论(0) 推荐(0)
摘要:题意 John得到了n罐糖果。不同的糖果罐,糖果的种类不同(即同一个糖果罐里的糖果种类是相同的,不同的糖果罐里的糖果的种类是不同的)。第i个糖果罐里有 mi个糖果。John决定吃掉一些糖果,他想吃掉至少a个糖果,但不超过b个。问题是John 无法确定吃多少个糖果和每种糖果各吃几个。有多少种方法可以做 阅读全文
posted @ 2019-09-25 22:27 Ilverene 阅读(162) 评论(0) 推荐(0)