暑期集训 Day7 —— 模拟赛复盘
${\color{Green} \mathrm{Problem\ 1 :最优包含 }} $
发现是 DP
,于是开始设计状态:DP[i][j]
表示前一个字符串匹配到位置 i
,后一个匹配到 j
的最少修改次数。
然后转移挂了:
if(S[i]==T[j]){
DP[i][j]=min(DP[i][j],DP[i-1][j-1]);
}else{
DP[i][j]=min(DP[i][j],DP[i-1][j-1]+1);
}
死因:
- DP 转移方程打错,忽视了
DP[i][j]
还可以等于DP[i-1][j]
,挂了 \(80\) 分。
${\color{White} \mathrm{}} $
${\color{White} \mathrm{}} $
${\color{White} \mathrm{}} $
${\color{Green} \mathrm{Problem\ 2 :团 }} $
赛时发现不会打正解,听老师说是签到题,十分慌乱,糊了一个 \(50\) 分暴力上去了。后来发现是对每个团建一个虚拟原点。
前两次图论题想了虚拟源,结果没有用,这次没想虚拟源,结果用上了。
经验:边太多可以试着建虚拟点。
死因:
- 对图论的敏感程度不够,没有想到写虚拟源点的做法。
${\color{White} \mathrm{}} $
${\color{White} \mathrm{}} $
${\color{White} \mathrm{}} $
${\color{Green} \mathrm{Problem\ 3 :Essential Operations }} $
线段树,但是好像要维护撤消,于是往主席树想,但是不会打。后来有个人看到了老师的标程,发现是两个线段树,于是会了。
后来线段树写挂了,而且我的写法会 MLE
,线段树里不能存 \(l,r\),直接递归是计算。
要多打线段树题QwQ。
死因:
Push_down
线段树乘法懒标记时,加法标记也要改:
Tree[pos<<1].addlazy=(1ll*Tree[pos<<1].addlazy*k)%Mod;
Tree[pos<<1|1].addlazy=(1ll*Tree[pos<<1|1].addlazy*k)%Mod;
Addlazy
要赋初始值为 \(0\),Mullazy
要赋初始值为 \(1\)。
${\color{White} \mathrm{}} $
${\color{White} \mathrm{}} $
${\color{White} \mathrm{}} $
${\color{Green} \mathrm{Problem\ 4 :模拟工厂 }} $
贪心题,但是死活想不出来怎么贪,后来发现只要每次遇到有买货的,就按照“先提速度,再生产”的方法调整,直到货够用即可。
${\color{White} \mathrm{}} $
${\color{White} \mathrm{}} $
${\color{White} \mathrm{}} $
总结
期望:\(100+50+0+0=150\)
实际:\(20+0+0+0=20\)