随笔分类 -  题解

摘要:很明显这是一道组合题。 首先特判一下,当 \(m=1\) 时,答案就是 \(k^n\)。 对于 \(m>1\) 的情况,我们可以得出一个结论: 对于沿格子的线穿过的任何垂直线,会将棋盘分成两个非空的部分,这两个部分中的不同颜色的数量相同且总是不变。设这个不同颜色的数量为 \(i\),那么左边这部分的 阅读全文
posted @ 2024-02-28 13:06 zifanwang 阅读(21) 评论(0) 推荐(0)
摘要:这道题与 P6097 【模板】子集卷积 基本相同,但是每个元素的值属于 \([0,3]\),且 \(n\le 21\),时限 \(\rm1s\)。 在做 P6097 这道题的时候,我们多开了一维用来记录二进制下 \(1\) 的个数。但是这道题每个元素的值只属于 \([0,3]\),我们可以用一种十分 阅读全文
posted @ 2024-02-28 13:06 zifanwang 阅读(25) 评论(0) 推荐(0)
摘要:看大家建图时中间都连了质数点,发一个不用质数点的解法。 我们可以先从源点向每一个蓝色卡片对应的点连一条边,再从每一个红色卡片对应的点向汇点连一条边。 如果两张卡片可以一起拿走,那就在它们之间连一条边(蓝色连到红色),这些边的最大流量都是 \(1\)。建好图以后我们就可以直接用 Dinic 求出答案。 阅读全文
posted @ 2024-02-28 13:05 zifanwang 阅读(35) 评论(0) 推荐(0)
摘要:给一个 \(O(n^2)\) 的做法。 考虑从左到右扫描最终得到的字符串,如果当前的字符和前一个字符相同,就删掉这个字符。由题意可知,最终得到的字符串一定是 \(s\) 的一个子序列。 我们定义状态 \(dp[i][j]\) 表示:当前子序列的最后一个字符是 \(s[i]\),已经填完了最终字符串的 阅读全文
posted @ 2024-02-28 13:04 zifanwang 阅读(25) 评论(0) 推荐(0)
摘要:直接记忆化搜索即可。 复杂度分析: 下面的被调用是指搜索函数被调用。 对于节点数 \(\le\sqrt n\) 的层,我们假设每一层有 \(x\) 个节点,那么最坏情况下会被调用 \(x\choose 2\) 次,是 \(x^2\) 级别的。因为最多有 \(\frac{n}{x}\) 个这样的层,所 阅读全文
posted @ 2024-02-27 22:05 zifanwang 阅读(11) 评论(0) 推荐(0)
摘要:考虑在无向图上进行 dfs,可以得到很多棵 dfs 树(因为图不一定连通),这些树形成了一个森林。 然后由任意两点间不存在节点数超过 \(10\) 的简单路径这个限制可以得出这些树的深度都不超过 \(10\),然后可以想到树上状压 dp。 有一个重要的性质,就是无向图 dfs 树上的非树边,一定是回 阅读全文
posted @ 2024-02-27 22:05 zifanwang 阅读(59) 评论(0) 推荐(0)
摘要:首先对于每一个矩形,若 \(x_2<0\),就将 \(x_1,x_2\) 均乘上 \(-1\) 再交换,对于 \(y_1,y_2\) 也做同样的操作。 我们建立一个操作序列 a[0~1000],和一个数组 \(d\),每一个操作用 \((x,y)\) 表示,就是在 \(d\) 内把所有 \(0\) 阅读全文
posted @ 2024-02-27 22:04 zifanwang 阅读(20) 评论(0) 推荐(0)
摘要:定义一个 \(3\times3\) 的表格 \(a\),表示每个小九宫格内 1 的个数的奇偶状态。 再定义两个长为 \(9\) 的数组 \(c0,c1\),表示每行每列上 1 的个数的奇偶状态。 当 \(d_{i,j}\) 取反时,会将 \(a_{[\frac{i}{3}],[\frac{j}{3} 阅读全文
posted @ 2024-02-27 22:04 zifanwang 阅读(38) 评论(0) 推荐(0)
摘要:题目传送门 记 \(d=\gcd(n,m)\),发现只有编号在模 \(d\) 意义下相同的人之间会产生影响,那么有解当且仅当每个剩余系内有至少一个人是快乐的。所以在 \(d>b+g\) 时直接输出 -1 即可。 对于剩下的情况,先令 \(n\leftarrow \frac n d,m\leftarr 阅读全文
posted @ 2024-02-24 17:43 zifanwang 阅读(7) 评论(0) 推荐(0)
摘要:洛谷题面传送门 AT 题面传送门 发现不太好直接求,考虑将 \(P\) 映射到 \(P^{-1}\) 上,这样题目中的条件就变成了 \(|P_i-P_{i+M}|=1\)。因此我们可以对模 \(M\) 的每个剩余系做 \(M=1\) 的情况,然后最后快速幂合并。 考虑 \(M=1\) 的情况怎么做。 阅读全文
posted @ 2024-02-15 20:06 zifanwang 阅读(23) 评论(0) 推荐(0)
摘要:题目传送门 人类智慧题。 发现 $2$ 操作肯定是不劣的,所以能换则换。考虑将手上的牌转换成一个多进制的数,这样 $2$ 操作就是其进位方法,$1$ 操作就是将当前的数加上牌包对应的数,答案就是其各位数字之和,不难发现其值为: $$\sum_{i=1}^n c_i\times 2^{i-1}\tim 阅读全文
posted @ 2024-02-12 22:15 zifanwang 阅读(12) 评论(0) 推荐(0)
摘要:题目传送门 记 $f_i$ 表示长度为 $i$ 的答案,发现不好直接求,考虑用 $2^{i-2}$ 减去两端点为 $1$ 且不合法的串的个数。 考虑一个不合法的串做完全部操作以后长什么样,发现不合法当且仅当对于任意两个全为 $1$ 且中间全为 $0$ 的连续段,长度和小于中间的 $0$ 的个数。 考 阅读全文
posted @ 2024-01-31 13:21 zifanwang 阅读(22) 评论(0) 推荐(0)
摘要:题目传送门 记 $g_i$ 表示走到当前添加的 $a+b$ 列前的最后一列的第 $i$ 行的方案数,$f_i$ 表示添加完后的方案数。考虑枚举中间最长的一列经过的是哪一行(记为第 $k$ 行),易得贡献为 ${a\choose k-i}{b\choose k-j}$,用范德蒙德卷积推一下容易发现总贡 阅读全文
posted @ 2024-01-20 23:01 zifanwang 阅读(16) 评论(0) 推荐(0)
摘要:题目传送门 前置知识:单位根反演 先考虑怎么求 \(F(x,a,b)\),易得 \(\gcd(x^a-1,x^b-1)=x^{\gcd(a,b)}-1\)。 所以 \(L=m^{\gcd(a,b)}+1,R=m^{\gcd(c,d)}\),然后发现 \([L,R]\) 中的数模 \(m\) 后每种余 阅读全文
posted @ 2024-01-20 21:15 zifanwang 阅读(19) 评论(0) 推荐(0)
摘要:题目传送门 简单 dp 题。 直接 dp,记 $f_{i,j}$ 表示前 $i$ 列,第 $i$ 列区间的右端点 $\le j$ 的方案数,$g_{i,j}$ 表示前 $i$ 列,第 $i$ 列区间的左端点 $\ge j$ 的方案数。 如果第 $i$ 列的区间为 $[l,r]$,那么贡献就是 $f_ 阅读全文
posted @ 2024-01-08 14:09 zifanwang 阅读(14) 评论(0) 推荐(0)
摘要:洛谷题面 CF 题面 考虑在 $p$ 中插入一个 $0$。那么题意,即求出满足相邻两项差为 $1$ 且第一个数为 $0$ 的 $p$ 的排列个数。 考虑从小到大插入每一个数。用 $dp_{i,j,x,y}$ 表示插入了前 $i$ 个数,第 $i$ 个数在序列中共有 $j$ 个连通块,开头/结尾的值是 阅读全文
posted @ 2024-01-07 17:32 zifanwang 阅读(21) 评论(0) 推荐(0)
摘要:题目传送门 $\large\textbf{Statement.}$ 本题的重点在于题面。 有 $n$ 个学校和 $c$ 个城市,每个学校属于一个城市,学校人数给定。 你需要将每个学校和城市染成黑色或白色,其中有 $k$ 个学校不希望自己和所在城市的颜色同时分别为给定的两种颜色,黑/白城市和学校的总人 阅读全文
posted @ 2024-01-07 13:57 zifanwang 阅读(17) 评论(0) 推荐(0)
摘要:题目传送门 \(\large\textbf{Statement.}\) 给定两个序列 \(a,b\),有一个 \(n\times m\) 的网格图,每个点 \((i,j)\) 上有个权值 \(a_i+b_j\),每个点和其上、下、左、右方相邻的点有连边。 多次询问,每次给一个阈值 \(x\),将图分 阅读全文
posted @ 2024-01-07 13:41 zifanwang 阅读(15) 评论(0) 推荐(0)
摘要:题目传送门 首先很容易发现如果两个字符串的字符集相同,那么一定可以在 $n$ 次操作内使 $s$ 与 $t$ 相等。 考虑保留尽量多的字符不动,那么操作次数就是 $n$ 减去这个最大值。 考虑一个 $s$ 与 $t$ 的公共子序列满足什么条件可以不动。发现 $s$ 中一个不动的字符前面的所有字符不可 阅读全文
posted @ 2024-01-07 12:57 zifanwang 阅读(8) 评论(0) 推荐(0)
摘要:传送门 发现正着不好做,考虑倒着做,即从 $(x,y)$ 开始走转弯只能向左转。 考虑怎么处理不重复走的限制。发现路径是螺旋形的,可以用一个矩形将路径框起来,那么每走一步都会使矩形的长或宽往某个方向延长一个单位。转弯可以看成向前走一格,再左转然后走到矩阵的边界。 然后就可以 dp 做了,记录当前矩形 阅读全文
posted @ 2023-12-24 13:59 zifanwang 阅读(15) 评论(0) 推荐(0)