bzoj 3211: 花神游历各国 (线段树)
来源:互联网 发布:游族网络客服工作 编辑:程序博客网 时间:2024/04/28 14:32
3211: 花神游历各国
Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 2778 Solved: 1039
[Submit][Status][Discuss]
Description
Input
Output
每次x=1时,每行一个整数,表示这次旅行的开心度
Sample Input
4
1 100 5 5
5
1 1 2
2 1 2
1 1 2
2 2 3
1 1 4
1 100 5 5
5
1 1 2
2 1 2
1 1 2
2 2 3
1 1 4
Sample Output
101
11
11
11
11
HINT
对于100%的数据, n ≤ 100000,m≤200000 ,data[i]非负且小于10^9
Source
SPOJ2713 gss4 数据已加强
题解:线段树
同上帝造题的7分钟2
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #define N 100003 #define ll long long using namespace std; ll n,m; ll a[N],tr[4*N],delta[4*N]; void update(ll x) { tr[x]=tr[x<<1]+tr[x<<1|1]; delta[x]=(delta[x<<1]&&delta[x<<1|1]); } void build(ll now,ll l,ll r) { if (l==r) { tr[now]=a[l]; return ; } ll mid=(l+r)/2; build(now<<1,l,mid); build(now<<1|1,mid+1,r); update(now); } ll qjsum(ll now,ll l,ll r,ll lx,ll rr) { if (l>=lx&&r<=rr) { return tr[now]; } ll mid=(l+r)/2; ll sum=0; if (lx<=mid) sum+=qjsum(now<<1,l,mid,lx,rr); if (rr>mid) sum+=qjsum(now<<1|1,mid+1,r,lx,rr); return sum; } void change(ll now,ll l,ll r,ll lx,ll rr) { if (delta[now]) return; if (l==r) { tr[now]=(long long)sqrt(tr[now]); a[l]=(long long )sqrt(a[l]); if (tr[now]==0||tr[now]==1) delta[now]=1; return ; } ll mid=(l+r)/2; if (lx<=mid) change(now<<1,l,mid,lx,rr); if (rr>mid) change(now<<1|1,mid+1,r,lx,rr); update(now); } int main() { scanf("%lld",&n); for (ll i=1;i<=n;i++) scanf("%lld",&a[i]); build(1,1,n); scanf("%lld",&m); for (ll i=1;i<=m;i++) { ll op,x,y; scanf("%lld%lld%lld",&op,&x,&y); if (x>y) swap(x,y); if (op==1) printf("%lld\n",qjsum(1,1,n,x,y)); else change(1,1,n,x,y); } }
0 0
- bzoj 3211: 花神游历各国 (线段树)
- BZOJ 3211-花神游历各国(线段树)
- BZOJ 3211(花神游历各国-线段树区间开方)
- 【线段树】【bzoj 3211】花神游历各国
- BZOJ 3211 花神游历各国 线段树
- BZOJ 3221 花神游历各国 (线段树)
- 【BZOJ】【P3211】【花神游历各国】【题解】【线段树】
- BZOJ 3211 花神游历各国 树状数组(线段树)+优化
- BZOJ 题目3211: 花神游历各国(线段树区间减为平方根,区间求和)
- 【BZOJ 3211】花神游历各国 &【 线段树区间开根】
- BZOJ 3211: 花神游历各国 线段树区间开根
- BZOJ 3211 花神游历各国 线段树 / 树状数组+并查集
- bzoj-3211 花神游历各国
- [BZOJ 3211] 花神游历各国
- bzoj 3211 花神游历各国
- BZOJ 3211 花神游历各国
- BZOJ 3211 花神游历各国
- [bzoj-3211]花神游历各国 题解
- 单例模式的七种写法
- verilog中的function用法与例子
- HTML DOM - 修改
- Hibernate框架-------事务与Session(六)
- printf格式化输出%x时的分析
- bzoj 3211: 花神游历各国 (线段树)
- uboot记录--命令体系
- [Android6.0] 数据业务重试机制
- ExploitExercises_Nebula_Level01
- Intent工具类
- HDU1518——Square(正方形问题)
- JavaScript教程之事件处理
- i2c 相关知识总结
- GestureDetector && onTouchEvent