codevs1369 xth砍树
来源:互联网 发布:淘宝服装购买合同范本 编辑:程序博客网 时间:2024/05/30 12:29
#include<cstdio>#include<iostream>#include<cstdlib>#include<algorithm>#include<string>#include<vector>#include<map>#include<set>#include<queue>#define R0(i,n) for(int i=0;i<n;++i)#define R1(i,n) for(int i=1;i<=n;++i)#define INF 0x7fffffffusing namespace std;typedef long long ll;int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}int tr[800001],a[200005];void build(int k,int x,int y){//建树if(x==y){tr[k]=a[x];return;}int mid=(x+y)>>1;build(k<<1,x,mid);build(k<<1|1,mid+1,y);tr[k]=tr[k<<1]+tr[k<<1|1];}int work(int k,int x,int y,int aa,int b){//区间求和 int mid,sum=0; if (aa<=x&&y<=b)return tr[k]; mid=(x+y)>>1; if (aa<=mid) sum+=work(k<<1,x,mid,aa,b); if (b>mid) sum+=work(k<<1|1,mid+1,y,aa,b); return sum;}void insert(int k,int x,int y,int aa){//单点修改,,就是砍了 int mid; if (x==y&&x==aa){tr[k]=0;return;} mid=(x+y)>>1; if (aa<=mid) insert(k<<1,x,mid,aa); else insert(k<<1|1,mid+1,y,aa); tr[k]=tr[k<<1]+tr[k<<1|1];}int main(){ int n=read(),m,i,j,l,r,sum; double ans; R1(i,n)a[i]=read(); build(1,1,n); m=read(); R1(i,m){ l=read(),r=read(); sum=work(1,1,n,l,r); insert(1,1,n,(l+r)/2); ans=sum*3.14; printf("%0.2f\n",ans); }}
0 0
- codevs1369 xth砍树
- CodeVS1369 xth 砍树 解题报告【数据结构】【线段树/树状数组】
- xth 砍树
- wikioi1369 xth 砍树
- (2441): xth 砍树
- 砍树
- 砍树
- 砍树哲理
- 砍树问题
- 砍树问题
- 数学 砍树
- wikioi1450 xth的旅行
- 1360 xth 的玫瑰花
- [codevs1450] xth的旅行
- Tyvj 1324 夏夜砍树
- 我们为何砍树???
- 砍树 (Standard IO)
- [Noip模拟题]砍树
- 基于交叉熵准则(Cross Entropy Criteria)的神经网络训练
- android widget不更新
- 《设计模式之禅》——建造者模式
- C# 传入任意类,得到类的属性值,以list返回
- 匯 流 排 規 格 ( ISA、PCI、AGP ) 現已不適用
- codevs1369 xth砍树
- 顯示卡名詞解釋(舊資料)
- PB关于日期相关的实用函数
- 解释器模式
- Android学习笔记之PopupMenu弹出菜单
- C# datatable,将datatable表变例,装载成类对象池。
- 窗体上的控件保持相对位置不变
- 关于SO_REUSEADDR的使用说明~
- android 4.4 设置默认短信 和来电短信拒接