求助线段树优化dp
  • 板块CF833B The Bakery
  • 楼主LHLeisus
  • 当前回复1
  • 已保存回复2
  • 发布时间2023/11/13 17:28
  • 上次更新2023/11/13 18:53:48
查看原帖
求助线段树优化dp
332123
LHLeisus楼主2023/11/13 17:28

修改的时候不应该是修改 [pre[i]+1,i][pre[i]+1,i] 吗,为什么写成 [pre[i],i−1][pre[i],i-1] 才能过,这样 ii 这个点在下一次遇到 a[i]a[i] 之前不就会少算 11 吗?

signed main()
{
	n=read(),k=read();
	FOR(i,1,n) a[i]=read(),pre[i]=las[a[i]],las[a[i]]=i;
	FOR(i,1,k){
		memset(tr,0,sizeof tr);
		memset(lazy,0,sizeof lazy);
		build(1,0,n,i-1);
		FOR(j,1,n){
			modify(1,0,n,pre[j],j-1,1);//这里这样就过了
//			modify(1,0,n,pre[j]+1,j,1);  这样就WA了 
			f[i][j]=query(1,0,n,i-1,j-1);
		}
	}
	printf("%lld",f[k][n]);
	return 0;
}
2023/11/13 17:28
加载中...