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\)的最小完全图匹配即可。

posted @ 2025-07-01 22:25  ZYXzyx123  阅读(40)  评论(0)    收藏  举报