AtCoder_ABC_412
A
若Bi>Ai 则符合要求。
B
用桶把T中的每个字符存下来,遍历S中除S1外的每个字符,若Si为大写,则看T中有没有Si-1。
C
贪心,将S2至Sn-1排序,从S1开始,每个骨牌都推倒能推倒的最大骨牌,直到当前骨牌Si能推倒Sn。
D
数据范围很小,直接暴搜,考虑每两个点之间是否加减边。
E
若Ai与Ai+1不等,则i+1不是Ai的因子。
问题就变成了在[l+1,r]中找qk(p为质数,k为正整数)的数量。
F
DP,dpi表示当袜子i在外面时的期望次数。
AC++,令tot=ΣAi
- Ai>Aj:保留i,贡献Aj*dpi/(tot-1)
- Aj>Ai:保留i,贡献Aj*dpj/(tot-1)
- Ai=Aj:贡献0,成功
dpi=1+Σj=1->i-1Ajdpi/(tot-1)+Σj=i+1->NAjdpj/(tot-1)
(1-Σj=1->i-1Aj/(tot-1))dpi=1+Σj=i+1->NAjdpj/(tot-1)
(tot-1-Σj=1->i-1Aj)dpi=tot-1+Σj=i+1->NAjdpj
用两个变量记录Σj=1->i-1Aj和Σj=i+1->NAj*dpj
sort(a+1,a+1+n);
for(int i=n;i>=1;i--){
sum=(sum+a[i])%mod;
dp[i]=(tot+sum2)%mod*f(sum-1,mod-2)%mod;
sum2=(sum2+a[i]*dp[i]%mod)%mod;
}
费马小定理:一个数x在模k时的逆元为xk-2
G
G为无向图,Σdi为偶数。由于di与Ai奇偶性相同,ΣAi为偶数时才有解
令H为一个包含ΣAi个点的图,其中Ai个点标签为i,若标签相等,则连一条边权为0的边,否则当且仅当(i,j)属于G,连一条边权为1的边。
最终求解H的最小完全图匹配即可。
浙公网安备 33010602011771号