随笔分类 - 题解
摘要:这种题怎么评的绿。 Problem 给定一个长度为 nnn 的序列 aaa,对于每一个 aia_iai 可以选或不选,要求输出所有被选的 aia_iai 的和为 ttt 的方案。输出要求:所有答案呈字典序降序且不重复,在一组答案 ansansans 要降序。如:10+5+3 是符合要求的,但是
阅读全文
摘要:你说得对,但是红绿绿紫。 Idea 怎么样才能在一个以 (a,b)(a,b)(a,b) 为左上,(c,d)(c,d)(c,d) 为左下的顶点组成的矩形中存在点 (e,f)(e,f)(e,f) 呢?显然要满足 a≤e≤ca\le e\le ca≤e≤c 且 d≤f≤bd\le f\le bd≤f≤b。
阅读全文
摘要:感觉有点板? Solution of P10995 考虑一个序列:a={4,1,5,6,2,3}a=\{4,1,5,6,2,3\}a={4,1,5,6,2,3}。 先考虑字典序最小的子串,按照题目要求是 {1}\{1\}{1}。 然后排开是 {1,5},{1,5,6},{1,5,6,2},{1,5,
阅读全文
摘要:又是一道欧拉路。 思路 在一个树上,两点 (u,v)(u,v)(u,v) 之间的距离是 depu+depv−2×deplca(u,v)dep_u+dep_v-2\times dep_{\operatorname{lca}(u,v)}depu+depv−2×deplca(u,v)(其中 dep
阅读全文
摘要:一个小清新贪心题。 思路 发现删数的操作等同于把 aha_hah 去掉,其他不变。 因为第 iii 轮一定删掉了 iii 个数,所以实际上我们下一次访问的下标是 ah+ia_h+iah+i。 接下来我们对 aaa 排序(升序)。 一共有 nnn 个数,所以如果这一轮 iii 游戏不结束,我们最多
阅读全文
摘要:套路的欧拉回路题。 思路 我们假如把一个字符串看成一个点,两个字符串可以拼接就意味着在它们之间添加有向边,则我们只需在建成的图上找欧拉路就可以了。 例如下面的样例: 5 rrharil luminescence enginestart technopolis small 假如我们用 111 到 55
阅读全文
摘要:你说得对,但是我不喜欢 AGC。 思路 先考虑什么样的字符串是不能出现的。 不难发现,违反限制 222 的有: AGC。 违反限制 333 的有: ACG(交换 C 和 G); GAC(交换 G 和 A); AG?C(交换 ? 和 C,其中 ? 是 A、C、G、T 中任一个); A?GC(交换 A
阅读全文
摘要:第一次打 ARC,涨了 242424 分。 思路 我们称 iii 对 jjj 有限制,当且仅当 i<ji<ji<j 且 vi>vjv_i>v_jvi>vj。 我们枚举 iii,从 iii 往后找 jjj,找到第一个被 iii 限制的 jjj。 接下来我们分类讨论: 如果 pi=pjp_i=p_j
阅读全文
摘要:签到题,但是不如 E。 题意简述 给定 xxx 和 yyy。求一组 (a,b)(a,b)(a,b) 使 lcm(x,y)gcd(x,y)=ab\sqrt{\dfrac{\operatorname{lcm}(x,y)}{\gcd(x,y)}}=a\sqrt{b}gcd(x,y)lcm(x,y)
阅读全文
摘要:双倍经验:P3067。 题意简述 给定长度为 nnn 的一个序列 aaa,对于每一个数 aia_iai,可以把它加入 AAA 和 BBB 两个集合之一或者不加入任何一个集合,要求所有数处理完后,AAA 与 BBB 两个集合中数的和相等,求方案数。 n≤20n\le20n≤20 且 ai≤108a_
阅读全文
摘要:水题。 思路 n≤100n\le 100n≤100,考虑直接模拟。 我们首先预处理出人和座位之间的距离,数组记为 eee。 然后把 eee 按距离排序。 对于一条边,连接人 xxx 和座椅 yyy,我们这么处理: 人 xxx 已经坐上座位。显然一定有一个座位,使得在这个人的位置出发,距离更短。所以这
阅读全文
摘要:显然对于 n≤103n\le10^3n≤103 且 ai≤109a_i\le10^9ai≤109 的情况,直接乘起来会达到 109×10310^{9\times 10^3}109×103 的量级,即使使用 python,存储也是一个很难的问题。 不妨考虑 gcd\gcdgcd 函数的本质。 我们
阅读全文
摘要:Idea 使用 KMP 算法。 约定:reverse(s)\operatorname{reverse}(s)reverse(s) 表示把 sss 翻转过来得到的串。 首先考虑如果要求 ppp 是 sss 的前缀,那么答案就会是 max(nxti)\max(nxt_i)max(nxti)。 证明
阅读全文
摘要:前置知识 E1:dp。 E2:矩阵快速幂。 思路 暴力 dp 不难想到一个思路就是暴力 dp。 设 dpi,jdp_{i,j}dpi,j 表示走了 iii 天,到达点 jjj 的方案数,显然有方程: dpi,j=∑k=1n(sumj×sumk−lj×lk)dpi−1kdp_{i,j}=\sum_{
阅读全文
摘要:前置知识 E1:dp。 E2:矩阵快速幂。 思路 暴力 dp 不难想到一个思路就是暴力 dp。 设 dpi,jdp_{i,j}dpi,j 表示走了 iii 天,到达点 jjj 的方案数,显然有方程: dpi,j=∑k=1n(sumj×sumk−lj×lk)dpi−1kdp_{i,j}=\sum_{
阅读全文
摘要:另类做法。 感谢 @chenly8128 提供的图片。 思路 首先我们对每个点坐标重新标号。即原来的 (x,y)(x,y)(x,y) 变为 (x,n−x+y)(x,n-x+y)(x,n−x+y)。变更完后坐标如下图。 然后我们需要对于起点,画 222 条线,即: 这两条线把整个平面分成了 444 部
阅读全文
摘要:前置芝士:高斯消元、异或。 思路 不难发现灯的开关状态与异或有关。设 000 为灯灭,111 为灯开,注意到 0⊕1=10\oplus1=10⊕1=1,1⊕1=01\oplus 1=01⊕1=0。所以灯的新状态等于原状态异或 111 的值。 然后我们可以把灯的状态转化成异或方程组来做。 首先我们要知
阅读全文
摘要:这是可以通过 A2 和 A3 的正解做法。 我们把 aaa 序列分成 cntcntcnt 个不下降的子段。 例如:a={1,1,4,5,1,4,1,9,1,9,8,1}a=\{1,1,4,5,1,4,1,9,1,9,8,1\}a={1,1,4,5,1,4,1,9,1,9,8,1},则分成 {1,1,
阅读全文
摘要:思路 令 ω\omegaω 为 aaa 的值域(即 4×1084\times 10^84×108),我们可以在 O(nlogωlogn)\operatorname{O}(n\log\omega\log n)O(nlogωlogn) 的时间复杂度内解决这个问题。 首先我们要对 aaa 和 bbb
阅读全文
摘要:两种做法。 dp 做法 我们设 dpi,j,0/1dp_{i,j,0/1}dpi,j,0/1 为第一个序列 aaa 取了 iii 个,第二个序列 bbb 取了 jjj 个,上一个数取自 aaa(最后一维为 000)或 bbb(最后一维为 111)的最小答案。 不难发现答案就是 dpk1,k2dp_
阅读全文