3.6
Hehe_0 3.6
luoguP4832 珈百璃堕落的开始
读懂题才能看出来这是个类背包dp,又读了半天,因为要求最后是整数,所以$sin2$和$cos2$的数量相等,如果换成背包就是最后的容量花完/最后两者数量相等。
得到这一步就能直接设计出状态了,$f[i][j]$前i物品空间为j,然后能发现能两行进行滚动,然后注意到重量设计s-c的话会有负数,所以每一次在j的基础上加大数N。然后可以通过记录两端可能出现的极值,优化
for(int i=1;i<=n;i++)
{
l=min(l,l+a[i]);
r=max(r,r+a[i]);
for(int j=l;j<=r;j++)
{
f[i&1][j+N]=max(f[i&1][j+N],max(f[!(i&1)][j+N],f[!(i&1)][j-a[i]+N]+v[i]));
}
}
luoguP3905 道路重建
第一眼是并查集第二眼最短路,和正常的相反断的有权值正常的是0,一开始以为主函数存储出问题了,结果是_指针忘更新,好久不写老是眼花

浙公网安备 33010602011771号