Atcoder Beginner Contest ABC303 题解

发布时间 2023-05-28 19:12:17作者: FReQuenter

题目: https://atcoder.jp/contests/abc303

A

挨个判断。

B

暴力枚举两个人是否会 in bad mood。

C

用 map 或者 set 记录回血的位置。

D

考虑 dp。

\(f_{i,[0,1]}\) 表示当前到 \(i\),是否开了大写锁定的方案数。

转移:

if(s[i]=='A'){
	f[i][0]=min(f[i-1][1]+x+z,f[i-1][0]+y);
	f[i][1]=min(f[i-1][1]+x,f[i-1][0]+z+x);
	f[i][0]=min(f[i][0],f[i-1][1]+z+y);
	f[i][1]=min(f[i][1],f[i-1][0]+z+y);
	f[i][0]=min(f[i][0],f[i-1][0]+z+x+z);
	f[i][1]=min(f[i][1],f[i-1][1]+z+y+z);
}
else{
	f[i][0]=min(f[i-1][1]+min(z+x,y+z),f[i-1][0]+min(x,z+y+z));
	f[i][1]=min(f[i-1][0]+min(x+z,z+y),f[i-1][1]+min(y,z+x+z));
}

应该不算难推罢。

没时间了,剩下的下周写。