AtCoder_ABC_412
A
若\(B_i>A_i\),则符合要求。
B
用桶把\(t\)中的每个字符存下来,遍历\(S\)中除\(S_1\)外的每个字符,若\(S_i\)为大写,则看\(t\)中有没有\(S_{i-1}\)。
C
贪心,将\(S_2\)至\(S_{n-1}\)排序,从\(S_1\)开始,每个骨牌都推倒能推倒的最大骨牌,直到当前骨牌\(S_i\)能推倒\(S_n\)。
D
数据范围很小,直接暴搜,考虑每两个点之间是否加减边。
E
若\(A_i \neq A_{i+1}\),则\((i+1)\nmid A_i\)。
问题就变成了在\([l+1,r]\)中找\(p^k\)(\(p\)为质数,\(k\)为正整数)的数量。
F
DP,\(dp_i\)表示当袜子\(i\)在外面时的期望次数。
将\(A_C\)加一,令\(tot=ΣA_i\)
\[\begin{cases}
A_i>A_j:保留i,贡献
\frac{A_j*dp_j}{tot-1}\\
A_i=A_j:贡献0,成功\\
A_i<A_j:保留i,贡献\frac{A_j*dp_j}{tot-1}\\
\end{cases}
\]
\[\begin{aligned}
dp_i&=\sum_{j=1}^{i-1}\frac{A_jdp_i}{tot-1}+1+\sum_{j=i+1}^{N}\frac{A_jdp_j}{tot-1}\\
(1-\sum_{j=1}^{i-1}\frac{A_j}{tot-1})dp_i&=1+\sum_{j=i+1}^{N}\frac{A_jdp_j}{tot-1}\\
(tot-1-\sum_{j=1}^{i-1}A_j)dp_i&=tot-1+\sum_{j=i+1}^{N}A_jdp_j\\
\end{aligned}
\]
\[\text{用两个变量记录}\sum_{j=1}^{i-1}A_j\text{和}\sum_{j=i+1}^{N}A_jdp_j\text{即可}
\]
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\)意义下的逆元为\(x^{k-2}\)
G
G为无向图,\(Σd_i\)为偶数。
\(d_i\)与\(A_i\)奇偶性相同,\(ΣA_i\)为偶数时才有解
令\(H\)为一个包含\(ΣA_i\)个点的图,其中\(A_i\)个点标签为\(i\),若标签相等,则连一条边权为\(0\)的边,否则当且仅当\((i,j) \in G\),连一条边权为\(1\)的边。
最终求解\(H\)的最小完全图匹配即可。

浙公网安备 33010602011771号