BZOJ 1655
poj 3181
from: USACO 2006 Jan Sliver(USACO刷题第3题)
很容易看出本题是个无限背包方案数的dp,但是本题数据大会爆long long,那就可以把dp数组拆分为两个数组,类似于高精度压位地做
OI, 梦开始的地方。
BZOJ 1655
poj 3181
from: USACO 2006 Jan Sliver(USACO刷题第3题)
很容易看出本题是个无限背包方案数的dp,但是本题数据大会爆long long,那就可以把dp数组拆分为两个数组,类似于高精度压位地做
树剖+线段树。
刚开始想用记录该区域被NEGATE了几次,结果发现不可行,翻别人博客发现了原来维护最大值$maxv$和最小值$minv$,NEGATE就是$maxv=-minv, minv=maxv$, 正确性显然。
poj 1201
差分约束。
设$dis[i]$为$[1,i]$包含在$Z$集合内数的个数
由题意得,$dis[b]-dis[a-1]\ge c$,
由隐含条件每个数只出现一次或不出现,得$0 \le dis[i]-dis[i-1] \le 1$
整理后得,
$$
dis[b]-dis[a-1]\ge c \\
dis[i]-dis[i-1]\ge 0 \\
dis[i-1]-dis[i]\ge -1
$$
然后按照差分约束系统用SPFA求最长路即可。