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,一开始以为主函数存储出问题了,结果是_指针忘更新,好久不写老是眼花

posted @ 2025-03-06 21:31  Hehe_o  阅读(16)  评论(0)    收藏  举报