这是本文档旧的修订版!
每次操作可令'a+=b'或'b+=a'问最少多少次可以使得$a$或$b$严格大于$n$
题解:每次把较大的一个加在较小的一个上就好。
给出一个最短的字符串使得至少有$k$个`codeforces`子序列。
题解:一开始没看到至少以为是exactly好愚蠢,,随便想象一下最后的形态应该是每个字母重复若干次的样子(比如$\mathsf{cccoooddeeffoorrcceess}$),只有不同位置的字母重复次数相差不超过$1$才是最优,所以对每个位置字母的个数轮流加一直到符合即可
格子染色,要使得恰有$n$个灰色格相邻所有(上下左右)格子也是灰的,而所有灰色格子必相邻偶数(明显→$2$个)灰色格子。
题解:看图的话立刻就懂了,但是我想了半天。写的是第二种,代码有点乐色不想放了。
给出大小为$n$的数组$a$,每次选择$i,j$若$a_i=x,a_j=y$则操作过后$a_i=a~\mathsf{AND}~y,a_j=a~\mathsf{OR}~y$,问操作任意次数后能得到的最大的数组的平方和。
题解:这个操作前后$a_i+a_j$不变,但是可以使得两数中大的更大,小的更小,于是增大了平方和,故要尽可能的做。最终的形态应该是对于每一位来说$1$个数不变且都集中在了最大的那一边。
给出$n$个点的有向无环图,每个点的出度最多为$2$,问最多删去$\frac{4}{7}n$个点,使得图里没有包含两条边的路径的方案。
题解:节点可以分为三类。
- $V_0$:没有来自$V_0$和$V_1$的入度的点集。
- $V_1$:有来自$V_0$的入度,没有来自$V_1$的入度。
- $V_2$:有来自$V_1$的入度。
显然删去$V_2$后满足要求。由于$|V_0|\geq|V_1|/2\geq|V_2|/4$有$n=|V_0|+|V_1|+|V_2|\geq|V_2|(1+1/2+1/4)=7|V_2|/4$。