hdu 1698 线段树之三
来源:互联网 发布:晋江阿里菜鸟网络园 编辑:程序博客网 时间:2024/05/09 14:57
区段更新,整体求和:
View Code
Problem : 1698 ( Just a Hook ) Judge Status : Accepted
RunId : 11289995 Language : G++ Author : lihaozhuzhuxia
Code Render Status : Rendered By HDOJ G++ Code Render Version 0.01 Beta
RunId : 11289995 Language : G++ Author : lihaozhuzhuxia
Code Render Status : Rendered By HDOJ G++ Code Render Version 0.01 Beta
#include <iostream>#include <cstdio>#include <cstring>using namespace std;struct p{ int l; int r; int c;}tree[444444];void construct(int n,int l,int r){ int i,j,k,m; int mid=(l+r)/2; tree[n].l=l; tree[n].r=r; tree[n].c=1; if(l==r) { return ; } construct(n*2,l,mid); construct(n*2+1,mid+1,r);}void change(int n,int l,int r,int c){ int i,j,k,m; if(tree[n].l==l&&tree[n].r==r) { tree[n].c=c; return ; } int mid=(tree[n].l+tree[n].r)/2; if(tree[n].c!=-1) { tree[n*2].c=tree[2*n+1].c=tree[n].c; tree[n].c=-1; } if(r<=mid) { change(n*2,l,r,c); } else if(l>mid) { change(n*2+1,l,r,c); } else { change(n*2,l,mid,c); change(n*2+1,mid+1,r,c); }}int query(int n,int l,int r){ if(tree[n].l==l&&tree[n].r==r) { if(tree[n].c!=-1) return (r-l+1)*tree[n].c; else { int mid=(tree[n].l+tree[n].r)/2; return query(n*2,l,mid)+query(n*2+1,mid+1,r); } } int mid=(tree[n].l+tree[n].r)/2; if(r<=mid) return query(n*2,l,r); else if(l>mid) return query(n*2+1,l,r); else return query(n*2,l,mid)+query(n*2+1,mid+1,r);}int main(){ int i,j,k,l,m,n,r; int t; int o=0; scanf("%d",&t); while(t--) { o++; scanf("%d%d",&n,&m); construct(1,1,n); for(i=0;i<m;i++) { scanf("%d%d%d",&l,&r,&k); change(1,l,r,k); } printf("Case %d: The total value of the hook is %d.\n",o,query(1,1,n)); }}
0 0
- hdu 1698 线段树之三
- 线段树之(三) hdu 1698Just a Hook
- HDU 1698 线段树
- hdu~1698~线段树
- HDU 1698 线段树
- HDU 1698 线段树
- hdu 1698 线段树
- [线段树] HDU 1698
- 线段树(4)之成段更新 hdu 1698
- hdu 1754 线段树之二
- hdu 1394 线段树之四
- hdu 2795 线段树之五
- hdu 3016线段树之七
- HDU 3308 线段树之区间合并
- HDU-1698(线段树入门)
- hdu 1698 (线段树)
- HDU 1698 线段树区间
- hdu 1698 线段树(修改线段值)
- 【最短路径spfa算法】HDU 1874---畅通工程续
- ubuntu解压zip文件乱码问题
- Cocox2d 编译方法
- HDOJ 1710 Binary Tree Traversals 二叉树先序中序求后续(白书)
- 大数问题之 Integer Inquiry hdoj 1047
- hdu 1698 线段树之三
- node.js+eclipse+express
- java.util.zip.ZipException: error in opening zip file有可能是压缩问题
- c++学习笔记2
- 最小费用最大流
- 矩阵快速幂+倍增spoj8059
- 业务开发测试HBase之旅四:HBase MapReduce实例分析
- acm-Ugly Numbers(杂题水题)
- oracle11g数据导入导出