摘要:
很明显这是一道组合题。 首先特判一下,当 \(m=1\) 时,答案就是 \(k^n\)。 对于 \(m>1\) 的情况,我们可以得出一个结论: 对于沿格子的线穿过的任何垂直线,会将棋盘分成两个非空的部分,这两个部分中的不同颜色的数量相同且总是不变。设这个不同颜色的数量为 \(i\),那么左边这部分的 阅读全文
posted @ 2024-02-28 13:06
zifanwang
阅读(13)
评论(0)
推荐(0)
摘要:
这道题与 P6097 【模板】子集卷积 基本相同,但是每个元素的值属于 \([0,3]\),且 \(n\le 21\),时限 \(\rm1s\)。 在做 P6097 这道题的时候,我们多开了一维用来记录二进制下 \(1\) 的个数。但是这道题每个元素的值只属于 \([0,3]\),我们可以用一种十分 阅读全文
posted @ 2024-02-28 13:06
zifanwang
阅读(20)
评论(0)
推荐(0)
摘要:
看大家建图时中间都连了质数点,发一个不用质数点的解法。 我们可以先从源点向每一个蓝色卡片对应的点连一条边,再从每一个红色卡片对应的点向汇点连一条边。 如果两张卡片可以一起拿走,那就在它们之间连一条边(蓝色连到红色),这些边的最大流量都是 \(1\)。建好图以后我们就可以直接用 Dinic 求出答案。 阅读全文
posted @ 2024-02-28 13:05
zifanwang
阅读(24)
评论(0)
推荐(0)
摘要:
给一个 \(O(n^2)\) 的做法。 考虑从左到右扫描最终得到的字符串,如果当前的字符和前一个字符相同,就删掉这个字符。由题意可知,最终得到的字符串一定是 \(s\) 的一个子序列。 我们定义状态 \(dp[i][j]\) 表示:当前子序列的最后一个字符是 \(s[i]\),已经填完了最终字符串的 阅读全文
posted @ 2024-02-28 13:04
zifanwang
阅读(21)
评论(0)
推荐(0)