hdu 1698 Just a Hook 基本线段树
使用线段树更新每段区间的奖(1,2,3),最后在统计整段区间的数和,基本线段树,果断1A啊
#include<iostream>
#include<stdio.h>
using namespace std;
#define N 100000
struct node{
int l,r,p;
}a[N*4];
int n;
void build(int left,int right,int i){
a[i].l=left;
a[i].r=right;
a[i].p=1;
if(a[i].l==a[i].r){
return ;
}
int mid=(a[i].l+a[i].r)>>1;
build(left,mid,i*2);
build(mid+1,right,i*2+1);
// a[i].p=a[i*2].p+a[i*2+1].p;
}
void updata(int left,int right,int i,int p){
if(left==a[i].l&&a[i].r==right){
a[i].p=p;
return ;
}
if(a[i].p>=1){
a[i*2].p=a[i].p;
a[i*2+1].p=a[i].p;
a[i].p=-1;
}
int mid=(a[i].l+a[i].r)>>1;
if(mid>=right)
updata(left,right,i*2,p);
else if(mid<left)
updata(left,right,i*2+1,p);
else{
updata(left,mid,i*2,p);
updata(mid+1,right,i*2+1,p);
}
// a[i].p=a[i*2].p+a[i*2+1].p;
}
int ans=0;
void sum(int i){
// cout<<a[i].l<<" "<<a[i].r<<" "<<a[i].p<<endl;
if(a[i].p!=-1){
ans+=a[i].p*(a[i].r-a[i].l+1);
return ;
}
sum(i*2);
sum(i*2+1); }
int main(){
int t,s,x,y,z;
scanf("%d",&t);
int cou=1;
while(t--){
scanf("%d %d",&n,&s);
build(1,n,1);
while(s--){
scanf("%d%d%d",&x,&y,&z);
updata(x,y,1,z);
}
ans=0;
sum(1);
printf("Case %d: The total value of the hook is %d.\n",cou++,ans);
}
}
hdu 1698 Just a Hook 基本线段树的更多相关文章
- HDU 1698 Just a Hook (线段树区间更新)
题目链接 题意 : 一个有n段长的金属棍,开始都涂上铜,分段涂成别的,金的值是3,银的值是2,铜的值是1,然后问你最后这n段总共的值是多少. 思路 : 线段树的区间更新.可以理解为线段树成段更新的模板 ...
- 暑期训练狂刷系列——Hdu 1698 Just a Hook (线段树区间更新)
题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=1698 题目大意: 有一个钩子有n条棍子组成,棍子有铜银金三种组成,价值分别为1,2,3.为了对付每场 ...
- hdu 1698:Just a Hook(线段树,区间更新)
Just a Hook Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- HDU 1698 Just a Hook(线段树区间替换)
Just a Hook Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- hdu 1698 Just a Hook(线段树之 成段更新)
Just a Hook Time Limit: ...
- hdu 1698 Just a Hook(线段树基础)
成段更新的线段树,加入了延时标记............ 线段树这种东西细节上的理解因人而异,还是要自己深入理解......慢慢来 #include <iostream> #include ...
- hdu 1698 Just a Hook 【线段树+lazy】
题目 写了一天的线段树,这道题主要说明一下sum是赋值的,不是累加的,并且在push_down的时候lazy也是赋值的.因可能对懒标记的理解还不是很透彻吧. #include <iostream ...
- HDU 1698 Just a Hook (线段树)
Problem Description In the game of DotA, Pudge’s meat hook is actually the most horrible thing for m ...
- HDU 1698——Just a Hook——————【线段树区间替换、区间求和】
Just a Hook Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit ...
- HDU 1698 Just a Hook(线段树区间覆盖)
线段树基本操作练习,防手生 #include <cstdio> #include <cstring> #include <cstdlib> #define lson ...
随机推荐
- scrollWidth clientWidth offsetWidth
scrollWidth:对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大. 实际内容+padding 不包括滚动条 边框client ...
- 设计模式之桥接模式(Java语言描述)
桥接模式定义 將抽象部分与它的具体实现部分分离,使它们都可以独立地变化.它是一种对象结构型模式,又称为柄体模式或接口模式. Decouple an abstraction from its imple ...
- ListView中动态显示隐藏HeaderView和FooterView
ListView中动态显示和隐藏Header&Footer 解决思路: 直接设置HeaderView和FooterView.setVisibility(View.GONE)无效, 布局仍然存在 ...
- ViewPager PagerAdapter 的使用
1: 目的,实现全屏滑动的效果 2:类似于BaseAdapter public class MyPagerAdapter extends PagerAdapter { private Context ...
- 利用jsonp进行Ajax跨域请求
在进行Ajax请求的时候经常会遇到跨域的问题,这个时候一般就会用到jsonp. 关于json和jsonp,网上有很多原理解释,这里就不多赘述,需要的自行搜索. 下面是一个简单的ajax跨域请求示例: ...
- 【sqli-labs】 less8 GET - Blind - Boolian Based - Single Quotes (基于布尔的单引号GET盲注)
加单引号 没有任何信息输出 加and 页面变化,不正常是没有任何回显 http://localhost/sqli/Less-8/?id=1' and '1'='1 http://localhost/s ...
- 竞品分析」项目协作管理平台-Teambition和CORNERSTONE--深度体验
一.分析目的 通过分析2B产品中的团队协作管理软件的对比分析,用于为公司团队协作软件的选型做产考. 二.竞品归属市场概况 2.1.目标用户群及需求 主要面向企业用户,用于解决企业不同地域以及不同职能部 ...
- 团体程序设计天梯赛-练习集-L1-039. 古风排版
L1-039. 古风排版 中国的古人写文字,是从右向左竖向排版的.本题就请你编写程序,把一段文字按古风排版. 输入格式: 输入在第一行给出一个正整数N(<100),是每一列的字符数.第二行给出一 ...
- 【转载】VMware完全卸载
出现安装时出现vmwareworkstationxxx.msi failed问题是官方解决方案...真心详细. http://kb.vmware.com/selfservice/microsites/ ...
- eas之设定table选择模式
tblMain.getSelectManager().setSelectMode(0);--不能选择 tblMain.getSelectManager().setSelectMode(1);--选择 ...