✎
编程开发网
首页
C语言
C++
面试
Linux
函数
Windows
数据库
下载
搜索
当前位置:
首页
->
基础
->
c++编程基础
hdu 1698 Just a Hook (成段更新+总区间求和)(二)
2015-01-27 05:59:56
·
作者:
·
浏览:
11
标签:
hdu
1698
Just
Hook
成段
更新
区间
求和
&&f[t].r==r) { f[t].v=f[t].f=v; f[t].s=(r-l+1)*v; return ; } if(f[t].f) //向下更新 { f[tmp].f=f[tmp|1].f=f[t].f; f[tmp].v=f[tmp|1].v=f[t].f; f[tmp].s=(f[tmp].r-f[tmp].l+1)*f[t].f; f[tmp|1].s=(f[tmp|1].r-f[tmp|1].l+1)*f[t].f; f[t].f=0; } if(r<=mid) update(tmp,l,r,v); else if(l>mid) update(tmp|1,l,r,v); else { update(tmp,l,mid,v); update(tmp|1,mid+1,r,v); } f[t].s=f[tmp].s+f[tmp|1].s; //向上求和 f[t].f=0; } int main() { int T,i,n,q,cnt=1; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&q); creat(1,1,n); while(q--) { int l,r,v; scanf("%d%d%d",&l,&r,&v); update(1,l,r,v); } printf("Case %d: The total value of the hook is %d.\n",cnt++,f[1].s); } return 0; }
首页
上一页
1
2
下一页
尾页
2
/2/2