博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 3211: 花神游历各国
阅读量:6688 次
发布时间:2019-06-25

本文共 1840 字,大约阅读时间需要 6 分钟。

1 #include
2 #include
3 #include
4 #define M 100006 5 using namespace std; 6 struct data 7 { 8 int l,r; 9 long long zhi;10 bool kg;11 }shu[4*M];12 int n,m;13 void jian(int a1,int l,int r)14 {15 shu[a1].l=l;16 shu[a1].r=r;17 if(l==r)18 {19 scanf("%lld",&shu[a1].zhi);20 if(shu[a1].zhi==1)21 shu[a1].kg=1;22 return;23 }24 int mid=(l+r)>>1;25 jian(a1*2,l,mid);26 jian(a1*2+1,mid+1,r);27 shu[a1].zhi=shu[a1*2].zhi+shu[a1*2+1].zhi;28 shu[a1].kg=shu[a1*2].kg&shu[a1*2+1].kg;29 return;30 }31 void gai(int a1,int l,int r)32 {33 if(shu[a1].kg)34 return;35 if(shu[a1].l==shu[a1].r)36 {37 shu[a1].zhi=floor(sqrt(shu[a1].zhi));38 if(shu[a1].zhi<2)39 shu[a1].kg=1;40 return;41 }42 int mid=(shu[a1].l+shu[a1].r)>>1;43 if(l<=mid)44 gai(a1*2,l,r);45 if(r>mid)46 gai(a1*2+1,l,r);47 shu[a1].zhi=shu[a1*2].zhi+shu[a1*2+1].zhi;48 shu[a1].kg=shu[a1*2].kg&&shu[a1*2+1].kg;49 return;50 }51 long long xun(int a1,int l,int r)52 {53 if(shu[a1].l>=l&&shu[a1].r<=r)54 return shu[a1].zhi;55 long long sum=0;56 int mid=(shu[a1].l+shu[a1].r)>>1;57 if(l<=mid)58 sum+=xun(a1*2,l,r);59 if(r>mid)60 sum+=xun(a1*2+1,l,r);61 return sum;62 }63 int main()64 {65 scanf("%d",&n);66 jian(1,1,n);67 scanf("%d",&m);68 for(int i=1;i<=m;i++)69 {70 int a1,a2,a3;71 scanf("%d%d%d",&a1,&a2,&a3);72 if(a2>a3)73 swap(a2,a3);74 if(a1==2)75 gai(1,a2,a3);76 if(a1==1)77 printf("%lld\n",xun(1,a2,a3));78 }79 return 0;80 }

线段树每次开根号,如果他的所有叶节点都是1,就不用再开了。

转载于:https://www.cnblogs.com/xydddd/p/5309147.html

你可能感兴趣的文章
django 问题收集
查看>>
if判断 分数
查看>>
高规格虚机 sys cpu高现场分析工具箱
查看>>
怎么把图片转成JPG格式
查看>>
教你如何将网页上的视频下载到手机
查看>>
字节码学院|编程是未来社会的基本能力
查看>>
JDK 1.8.0_144 集合框架之LinkedHashMap
查看>>
MySQL学习之如何快速扩展数量
查看>>
细说智能指针
查看>>
ssh: Could not resolve hostname guard.: Temporary
查看>>
跨主机网络概述 - 每天5分钟玩转 Docker 容器技术(48)
查看>>
批量把本机的ssh密钥同步到远程设备以ssh无密码登入
查看>>
lmp+heartbeat+drbd
查看>>
2013年中国域名商报告:易名中国净增11.6万域名
查看>>
android ndk 的简单使用
查看>>
7月19日28家中国域名商六类国际域名注册保有量统计
查看>>
7月国内电脑分辨率TOP10 :1366*768跌破13%
查看>>
11月9日全球域名商解析新增量TOP10 :西部数码第七
查看>>
11月28日全球域名商保有量及市场份额排行榜TOP16
查看>>
.top域名总量15强:中国数据被赶超 阿里云晋身五强
查看>>