题目传送门 定义有特殊边相邻的格子颜色为黑,否则为白 可以看出,题目给出的限制条件的本质是如果两个小方块所在的格子 \(x\) 和 \(y\) 为两个相邻的黑格,那么 \(x\) 和 \(y\) 之间必然有一者满足其上下左右的所有白格内都没有小方块 即对于这样的 \(x\) 和 \(y\) ,需要以下三个条件至少满足一个: (1)用 \(\min(w_x,w_y)\) 的代价删除 \(x\) 和 \(y\) 上的其中一个小方块 (2)把与 \(x\) 相邻的白格内的小方块全部删掉 (3)把与 \…
目录 @description@ @solution@ @accepted code@ @details@ @description@ 老 C 是个程序员. 作为一个懒惰的程序员,老 C 经常在电脑上玩方块游戏消磨时间.游戏被限定在一个由小方格排成的 R 行 C 列网格上,如果两个小方格有公共的边,就称它们是相邻的,而且有些相邻的小方格之间的公共边比较特殊. 特殊的公共边排列得有很强的规律.首先规定,第 1 行的前两个小方格之间的边是特殊边.然后,特殊边在水平方向上每 4 个小方格为一个周期,在…
#3020. 「CQOI2017」小 Q 的表格 这个的话求出来\(g = gcd(a,b)\) 会修改所有gcd为g的位置 我们要求\((g,g)\)这个位置的数一定是\(g^{2}\)的倍数 之后的\(gcd(a,b) == g\)的位置也会满足 $\frac{f(g,g)}{g^{2}} = \frac{f(a,b)}{ab} $ 注意\(\frac{f(g,g)}{g^{2}}\),\(\frac{f(a,b)}{ab}\)都不一定是整数,但是\(f(g,g)\)和\(f(a,b)\)是…
[LOJ#6437][BZOJ5373]「PKUSC2018」PKUSC 试题描述 九条可怜是一个爱玩游戏的女孩子. 最近她在玩一个无双割草类的游戏,平面上有 \(n\) 个敌人,每一个敌人的坐标为 \(x_i,y_i\).可怜有一个技能是在平面上画一个 \(m\) 个点的简单多边形,并消灭所有严格在多边形内部的敌人. 不难发现如果想要快速的消灭敌人的话,只要画一个足够大的简单多边形就行了.但是这样的游戏性就太差了.于是可怜打算为游戏增加一定的随机性. 可怜在平面上随便画了一个 \(m\) 个点…
LOJ#2210. 「HNOI2014」江南乐 感觉是要推sg函数 发现\(\lfloor \frac{N}{i}\rfloor\)只有\(O(\sqrt{N})\)种取值 考虑把这些取值都拿出来,能取到这个值的\(i\)是一个区间\([l,r]\) 如果\(r - l + 1 = 1\),那么直接算这个数的答案即可(\(\lfloor \frac{N}{i}\rfloor\)的石子有奇数堆还是偶数堆,\(\lfloor \frac{N}{i}\rfloor + 1\)的石子有奇数堆还是偶数堆,…
LOJ#3098. 「SNOI2019」纸牌 显然选三个以上的连续牌可以把他们拆分成三个三张相等的 于是可以压\((j,k)\)为有\(j\)个连续两个的,有\(k\)个连续一个的 如果当前有\(i\)张牌,且\(i >= j + k\) 那么可以\((j,k)\rightarrow (k,(i - j - k) \% 3)\) 可以用矩阵乘法优化,每遇到一个有下限的牌面的就再特殊造一个矩阵转移 #include <bits/stdc++.h> #define fi first #def…
LOJ#3103. 「JSOI2019」节日庆典 能当最小位置的值一定是一个最小后缀,而有用的最小后缀不超过\(\log n\)个 为什么不超过\(\log n\)个,看了一下zsy的博客.. 假如\(i = AAB\),\(j = AB\),\(B\)是\(A\)的一个严格前缀,\(|j| < |i| < 2|j|\) 但是有\(k = B\),导致了若\(j\)比\(i\)优,则\(k\)会比\(j\)优,\(j\)比\(k\)优,则\(i\)会比\(j\)优,那么\(j\)就没用了 然后…
LOJ#3102. 「JSOI2019」神经网络 首先我们容易发现就是把树拆成若干条链,然后要求这些链排在一个环上,同一棵树的链不相邻 把树拆成链可以用一个简单(但是需要复杂的分类讨论)的树背包实现 \(dp[u][j][0/1/2]\)表示第\(u\)个点已经选了\(j\)条链,0是两个不同子树的链拼到一起,1是只有1个点,2是有一条至少有两个点的链 通过这个我们可以求一个\(f[k]\)表示把这棵树分成\(k\)条链有几种情况 环排列可以通过全排列除以排列长度得到 我们设把\(k\)条链分成…
LOJ#3101. 「JSOI2019」精准预测 设0是生,1是死,按2-sat连边那么第一种情况是\((t,x,1) \rightarrow (t + 1,y,1)\),\((t + 1,y, 0) \rightarrow (t,x,0)\) 第二种情况是\((t,x,0) \rightarrow (t,y,1)\),\((t,y,0) \rightarrow(t,x,1)\) 然后\((t,x,0)\)往\((t - 1,x,0)\)连边,\((t,x,1)\)往\((t + 1,x,1)\…
LOJ#3097. 「SNOI2019」通信 费用流,有点玄妙 显然按照最小路径覆盖那题的建图思路,把一个点拆成两种点,一种是从这个点出去,标成\(x_{i}\),一种是输入到这个点,使得两条路径合成一条(或者是新建一条),标成\(y_i\) 源点向每个\(x_i\)流一条容量为1,费用为0的边 然后向每个\(y_{i}\)流一条容量为1,费用为W的边 每个\(y_i\)向汇点连一条容量为1,费用为0的边 这个时候,如果你充满梦想,你可以把所有的\(x_{i}\)到\(y_j\)(\(i < j…