20231124

发布时间 2023-11-24 20:25:46作者: Mars_Dingdang

做题记录:

image

注意到每次相当于 \(0\) 后面加 \(1\)\(1\) 后面加 \(0\),因此每次可以合并 01 和 10 然后将问题规模减半。

image

黑白染色,白格子=lcm+1,黑格子=prime相乘。发现横着竖着有六个质数,斜着只用四个质数。调整一下顺序即可。

image

状压DP。考虑S作为前缀max时S与U-S的排列方案数。S每一个真后缀都非负,U-S的每一个前缀都为负。然后f[S]表示S从后往前加数的合法方案数,g[S]表示从前往后加数的合法方案数,DP即可。再注意真后缀非负sum[S]可以为负,处理f[S,0/1]表示sum[S]<0或sum[S]$\ge$0。

image

喵喵题。相当于求出一个导出子图使得度数最小的点deg尽可能大;再求一个尽可能大的独立集。

第一问很好做,从小到大枚举答案然后删点即可;第二问有随机化做法,也可以按度数从小到大贪心取点,可以证明这样满足条件。

image

喵喵题。当空栈被用的时候,假设用空栈的元素是u。下一个出现的不是栈顶的元素为v。

  • 当u=v时,u放在空栈和v消掉;
  • 当v是栈底元素时,其栈顶设为w,
    • 若w出现奇数次,u放在空栈,奇数次之后w消掉,v消掉,产生新的空栈;
    • 若w出现偶数次,u放在w上,w放在空栈消掉,之后v通过栈底消掉。

image

往前推就完事了。

image

一眼题,能买就买,买不了替换前面的去。

image

题解都很垃圾。枚举次大值然后用可持久化Trie。用链表搞,按值从小到大删元素,即可得到左右边比他大的第二个数。或者用线段树维护次大值也可以做的。很容易假,尤其是使用单调栈。

image

image

image

image

image

image

image

image

image