省选模拟25

A.

  首先特判,若$gcd(n,k)!=1$,那么一定无解。

  证明可以考虑所有下标之和,对于某次操作的增量。

  那么一定存在k对n的逆元。

  那么就有一种构造方案,对于第i个串,我们令其$\frac{i+j-1}{k}$处为1,其余处为0。经过检验发现这样一定是正确的,那么相邻两个串的位移是$\frac{1}{k}$。

B.

  假如串的顺序是确定的,那么不难想到一种从后向前的贪心方案。因为最后一个串的长度一定是1,倒着贪心就可以求出来。

  那么现在只需要确定串的顺序,直接的思路是直接排序,然而这样有非常简单的hack方法:ACG,ACGAAA,将第二个串放在前面是更加优秀的。

  所以考虑一些奇怪的排序方法。

  题解的做法是,求出来每个串的一个长度最小的前缀满足这个前缀循环之后字典序比原串小。然后求出一个最长的后缀,满足求出的前缀不是后缀的前缀。

  然后按照前缀的字典序递增为第一关键字,后缀的字典序递减为第二关键字,进行排序。

  考虑这样为什么是正确的,前缀比较显然,后缀字典序最小的放在最后,是为了同一个前缀放完之后,那么后面要求的应该尽量小。所以是正确的。

C.

  先来考虑菊花的部分分,显然只会选到收益比花费大的部分,那么在这些地方贪心方法是按照花费排序,依次挖掘。

  这个东西可以扩展到树上。

  仍然按照费用排序,那么需要考虑树上的依赖关系。

  假如父亲节点已经考虑过,那么直接加上当前点的贡献。

  否则,将自己和父亲合并成一个节点。

猜你喜欢

转载自www.cnblogs.com/hzoi-cbx/p/12328972.html