关于决策单调性分治
  • 板块学术版
  • 楼主stntn
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/11/5 17:44
  • 上次更新2023/11/5 18:59:19
查看原帖
关于决策单调性分治
251324
stntn楼主2023/11/5 17:44

如下对于满足决策单调性的 DP 进行决策点分治的代码:

#define rep(i,a,b) for(int i=a;i<=b;i++)
inline int calc(int i,int j){}//计算从i转移到j的结果 
inline void solve(int l,int r,int L,int R)
{
	if(l>r||L>R) return;int mid=(l+r)>>1,p=mid;
	rep(i,L,min(mid-1,R)) if(calc(i,mid)<=calc(p,mid)) p=i;
	f[mid]=calc(p,mid);
	solve(l,mid-1,L,p);solve(mid+1,r,p,R);
}

若把枚举决策点的 <= 换成 < 就会寄,有没有大佬可以解释一下为什么。

2023/11/5 17:44
加载中...