ALL:7
AC:7
Rank:111
记念第一次 AK div.2 ,这一场后几道题做起来比较顺手,而且是比较擅长的题。

题意:
Alice 和 Bob 正在玩游戏,他们都绝顶聪明。
开始时有一个整数 n ( 1 ≤ n ≤ 1 0 9 ) n(1\leq n\leq 10^9) n(1≤n≤109),二者轮流行动,每次行动可以在当前的 n n n 上减去其一个非 1 1 1 非 n n n 的因子。
若 Alice 先手,某一方无法进行操作则判输,谁会赢呢?
AC代码:https://codeforces.com/contest/1537/submission/179029276
题意:
你有一个字符串 s s s,你可以进行两种操作。
你可以随意的进行操作,也可以不进行操作。
你需要找到 s s s 进行操作后获得的所有长度为 k k k 的字符串中字典序最小的字符串。
1 ≤ n , k ≤ 5 ⋅ 1 0 5 1\leq n,k\leq 5\cdot 10^5 1≤n,k≤5⋅105
思路:策略就是,找到最长的一个后缀,去掉或者不去掉这个后缀之后,剩下的部分重复复制即可。
看题解是在前缀字典序上求解,我是在后缀字典序上求解。一个有瑕疵的思路是,先后缀排序一下,找到最长的后缀 s [ i , n ] s[i,n] s[i,n] ,使得 s [ 1 , n ] > s [ i , n ] s[1,n]>s[i,n] s[1,n]>s[i,n] ,删掉剩下 s [ 1 , i − 1 ] s[1,i-1] s[1,i−1] 。
但是按照我们的策略,必须还要保证 s ∞ [ 1 , i − 1 ] s^{\infty}[1,i-1] s∞[1,i−1] 是最小的,如果复制一份,第二份就会又影响到字典序,因此要复制一份之后跑后缀排序。
AC代码:https://codeforces.com/contest/1537/submission/179034582
题意:
你有一张 n ( 2 ≤ n ≤ 2 ⋅ 1 0 5 ) n(2\leq n\leq 2\cdot 10^5) n(2≤n≤2⋅105) 点 m n ( n − 1 ≤ m ≤ min ( 2 ⋅ 1 0 5 , n ⋅ ( n − 1 ) 2 ) ) mn(n-1\leq m\leq \min(2\cdot 10^5,\frac {n\cdot (n-1)}2)) mn(n−1≤m≤min(2⋅105,2n⋅(n−1))) 边的无向连通图,第 i i i 个点上有点权 v i v_i vi 和目标值 t i t_i ti。
在一次操作中,你可以选择一条边 ( i , j ) (i,j) (i,j),并同时给 v i v_i vi 和 v j v_j vj 增加一个任意整数值,可以为负。
你需要判断,这张图是否可以在有限步操作中,使得每个节点满足 v i = t i v_i = t_i vi=ti。
思路:每个点的变化量为 d t i = t i − v i dt_i=t_i-v_i dti=ti−vi ,有解的必要条件为 ∑ d t = 0 \sum dt=0 ∑dt=0 。
如果无奇数环,而且染色之后左部图右部图的 ∑ d t \sum dt ∑dt 相等,那么一定是有解的。否则无解。
如果有奇数环,那么一定有解,求解的策略为:在奇数环上顺次跑一边,一定可以使得某个点 d t = d t ± 2 dt=dt±2 dt=dt±2 ,然后可以把这个 − 2 , − 1 , 1 , 2 -2,-1,1,2 −2,−1,1,2 其中之一转移到其他的点上。
AC代码:https://codeforces.com/contest/1537/submission/179036842