08 2020 档案
摘要:题目 题目链接:https://www.luogu.com.cn/problem/P3808 给定 \(n\) 个模式串 \(s_i\) 和一个文本串 \(t\),求有多少个不同的模式串在文本串里出现过。 两个模式串不同当且仅当他们编号不同。 思路 AC 自动机可以看做 KMP + Trie。 首先
阅读全文
摘要:题目 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程。 在可以选择的课程中,有 $2n$ 节课程安排在 \(n\) 个时间段上。在第 \(i\)($1 \leq i \leq n$)个时间段上,两节内容相同的课程同时在不同的地点进行,其中,牛牛预先被安排在教室 \(c_i
阅读全文
摘要:题目 题目链接:https://www.luogu.com.cn/problem/P5952 在地面上有一个水箱,它的俯视图被划分成了 \(n\) 行 \(m\) 列个方格,相邻两个方格之间有一堵厚度可以忽略不计的墙,水箱与外界之间有一堵高度无穷大的墙,因此水不可能漏到外面。已知水箱内每个格子的高度
阅读全文
摘要:题目 题目链接:https://www.luogu.com.cn/problem/P6772 坐落在 Bzeroth 大陆上的精灵王国击退地灾军团的入侵后,经过十余年的休养生息,重新成为了一片欣欣向荣的乐土,吸引着八方游客。小 W 是一位游历过世界各地的著名美食家,现在也慕名来到了精灵王国。 精灵王
阅读全文
摘要:题目 题目链接:https://cometoj.com/contest/79/problem/G 给你一个 \(n\) 个点 \(m\) 条边的简单连通无向图,请拔掉一些边使得图中奇数度数的点尽可能多,并输出字典序最大的方案。 如果删掉第 \(i\) 条边则 $01$ 串第 \(i\) 位为 $1$
阅读全文
摘要:题目 思路 将每一个 $1$ 和 \(-1\) 看成向上和向右,那么就转换成从 \((0,0)\) 到 \((n,m)\) 的方案数。 枚举答案 \(i\),那么显然这条路径不能与 \(y=x+i+1\) 相交。那么答案不超过 \(i\) 的方案数就是从 \((0,0)\) 到 \((n,m)\)
阅读全文
摘要:题目 思路 重题 : CF1374E2。 将物品分成两人都喜欢、第一人喜欢、第二人喜欢、没人喜欢四类,枚举两人都喜欢的物品选取 \(i\) 个,然后将一人喜欢的物品前 \(k-i\) 个取出,这样我们就保证了每个人至少有喜欢的 \(k\) 个物品。 然后将剩余的物品加入对顶堆中,求前 \(m-i-2
阅读全文
摘要:题目 思路 很裸的线段树。对于每次修改,将 \(l,r,r+1\) 插入数组中,然后将数组中的数字离散化。 每次修改注意标记的下传。询问直接类似权值线段树即可。 时间复杂度 \(O(n\log n)\)。 代码 #include <bits/stdc++.h> using namespace std
阅读全文
摘要:题目 思路 设 \(f[i][j][s]\) 表示 \(i\) 到 \(j\) 之间是否存在状态为 \(s\) 的路径。时间复杂度 \(O(2^n\times n^2)\)。 显然这并不是一个可以接受的复杂度。发现可以 \(\operatorname{meet in the middle}\),又喜
阅读全文
摘要:题目 思路 显然任意两个 \(\gcd\) 不为 $1$ 的数字必须分到一个组里。所以可以在筛质数的同时将有相同质因数的数字归到一个集合内,设最终有 \(m\) 个集合,那么答案为 $2^m-2$(减去两个空集合情况)。 我采用埃氏筛 + 并查集,时间复杂度 \(O(n\log \log n)\)。
阅读全文
摘要:题目 思路 只把反色的边拿出来,构建成一片森林,那么最少的路径数即为奇数度数点的一半。 证明: 偶数点必然不能作为路径起点,因为如果作为起点,那么该点必然剩余奇数条出边,那么必然还有至少另外一条路径以该点为顶点,那么将这两条路径合二为一显然更优。 所以只有奇数点能作为路径起点,而显然任意奇数点最少需
阅读全文
摘要:题目 思路 长度为 \(n\) 的 01 串的字串数量上界是 \(O(\sum^{n}_{i=1})fib[i]\),其中 \(fib\) 是斐波那契数列。 所以 \(n\leq 30\) 证明本质不同的字串数量是可以接受枚举的复杂度的。所以在 \(O(2^n\times n)\) 的基础上,将 d
阅读全文
摘要:题目 思路 对于一个将左上角为 \((1,1)\),边长为 3 的直角三角形,那么我们可以通过如下方式,每次修改只需 \(O(1)\) 即可。 所以每次修改直接修改 4 个值,最终查询时再做若干遍差分即可。 时间复杂度 \(O(q+n^2)\)。 代码 #include <bits/stdc++.h
阅读全文
摘要:题目 题目链接:https://www.luogu.com.cn/problem/P3750 B 君在玩一个游戏,这个游戏由 \(n\) 个灯和 \(n\) 个开关组成,给定这 \(n\) 个灯的初始状态,下标为从 $1$ 到 \(n\) 的正整数。 每个灯有两个状态亮和灭,我们用 $1$ 来表示这
阅读全文
摘要:题目 题目链接:http://www.51nod.com/Challenge/Problem.html#problemId=2015 又仁慈、又善良、又有钱的夹克老爷买下了一条街! 懂得经商的夹克老爷决定沿街开 \(n\) 个店铺,从南到北编号为 $1~n$。经过紧张的筹备之后,诺德街的 \(n\)
阅读全文
摘要:题目 \(n\leq 3\times 10^5,K\leq 10\)。 思路 考虑用总方案数减去空间简单度不超过 \(k\) 的方案数。 发现 \(k\) 很小,可以枚举所有点 \(i\),那么对于一个 \(|i-j|\leq k\) 的点 \(j\),发现这个点对贡献了路径 \(i\to j\)
阅读全文
摘要:题目 思路 考虑到可以特判 \(n=10^6\),这样每个数就只有 6 位。可以考虑 bfs。 但是每次询问都 bfs 一次复杂度显然不对。发现目标状态是一样的,且 $106$ 以内的完全平方数只有 $103$ 个,所以可以从目标状态开始搜索,然后 \(O(1)\) 询问。 那么每次有两种转移方式:
阅读全文
摘要:题目 求 \([1,n]\) 中有多少个数能写作 \(a^b(b>1\) 且 \(a,b\) 均为正整数 \()\)。 \(n\leq 10^{18}\)。 思路 容易发现,只有当一个数字 \(k\) 被表示成 \(a^b\),且 \(a=a'^{b'}\) 时才会计算重复。所以考虑如何对任意一个数
阅读全文
摘要:#题目 梦游中的你来到了一棵 \(N\) 个节点的树上. 你一共做了 \(Q\) 个梦, 每个梦需要你从点 \(u\) 走到 点 \(v\) 之后才能苏醒, 由于你正在梦游, 所以每到一个节点后,你会在它连出去的边中等概率地 选择一条走过去, 为了确保第二天能够准时到校, 你要求出每个梦期望经过多少
阅读全文
摘要:题目 思路 容易发现从 \(i\) 到 \(j\) 的最优路径一定是先往右再往左。因为如果某一时刻往左走后再往右走,那么还不如在往左走的时刻直接往右走。 所以考虑如何求出 \(dis[i][j]\) 表示只往右走,\(i\) 到 \(j\) 的最短路。 那么可以考虑枚举 \(j\),然后从 \(j-
阅读全文
摘要:题目 给出 \(n\),求有多少个长度为 $2n$ 的序列满足以下条件: 数字 $1\sim n$ 每个正好各出现两次。 仅存在一个数字 \(x\) 满足 \(x\) 所在位置前的数字出现次数都没有 \(x\) 多。 思路 首先显然的是,对于一个满足条件 1 的序列,第一个位置的数字必然满足条件 2
阅读全文
摘要:题目 题目链接:https://www.luogu.com.cn/problem/P2617 给定一个含有 \(n\) 个数的序列 \(a_1,a_2 \dots a_n\),需要支持两种操作: Q l r k 表示查询下标在区间 \([l,r]\) 中的第 \(k\) 小的数 C x y 表示将
阅读全文
摘要:题目 题目链接:https://www.luogu.com.cn/problem/P4027 小 Y 最近在一家金券交易所工作。该金券交易所只发行交易两种金券:A 纪念券(以下简称 A 券)和 B 纪念券(以下简称 B 券)。每个持有金券的顾客都有一个自己的帐户。金券的数目可以是一个实数。 每天随着
阅读全文