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

官方题解:https://codeforces.com/blog/entry/73467

posted @ 2020-01-31 16:24  Ano-Ano  阅读(155)  评论(0)    收藏  举报