Educational Codeforces Round 81 (Rated for Div. 2)解题报告
比赛:https://codeforces.com/contest/1295
感谢 OIerwanhong 大佬帮助理解
A
不解释了
B
\((bal_i-x)%bal_n==0,\)而且\((bal_i-x)/bal_n\ge 0\)
那么\(i\)就能在重复\((bal_i-x)/bal_n\)次后满足\(bal=x\)
特别地,若\(bal_n=0\)且存在\(bal_i=x\)则为无穷
因为第一个\(s\)中是\(bal_i\),第二个\(s\)中就是\(bal_i+bal_n\)
C
求出\(nxt_{i,j}\)表示在\(s\)中从\(i\)开始最靠前的位置\(x\)满足\(s_x=j\)
有一个指针\(pos\),表示现在正在匹配s的哪一位
然后现在考虑\(t\)的第\(i\)位,用\(i_t\)表示
如果\(nxt_{pos,i_t}=INF\)
那就说明要再来一个新的\(s\),答案\(+1,pos=0\)
否则\(pos=nxt_{pos,t_i}+1\)
输出\(-1\)的情况特判一下即可(看\(t\)与\(s\)是否有不同的字母)
D
很容易看出\(gcd(x,m)==1\)
那么可以直接筛欧拉函数
最后输出phi(m/gcd(a,m))就好了
E
不会
F
bh