线段树,可是时间复杂度可能会爆掉,需要优化:

看代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#define ll long long
#define MAXN 100005
using namespace std;
int n,m;
ll s[4*MAXN];
bool mark[4*MAXN];
void up(int p){s[p]=s[p*2]+s[p*2+1];mark[p]=mark[p*2]&&mark[p*2+1];return ;
}
void build(int p,int l,int r){if(l==r){scanf("%lld",&s[p]);if(s[p]==1||s[p]==0)mark[p]=true;return ;}int m=l+r>>1;build(p*2,l,m);build(p*2+1,m+1,r);up(p);return ;
}
void update(int p,int l,int r,int x,int y){if(mark[p]) return ;if(r<x||l>y) return ;if(l==r){s[p]=sqrt(s[p]);if(s[p]==1||s[p]==0)mark[p]=true;return ;}int m=l+r>>1;update(p*2,l,m,x,y);update(p*2+1,m+1,r,x,y);up(p);
}
ll query_sum(int p,int l,int r,int x,int y){if(r<x||l>y) return 0LL;if(x<=l&&r<=y){return s[p];}int m=l+r>>1;ll ret=0;ret+=query_sum(p*2,l,m,x,y);ret+=query_sum(p*2+1,m+1,r,x,y);return ret;
}
int main(){scanf("%d",&n);build(1,1,n);scanf("%d",&m);for(int i=1,t,l,r;i<=m;i++){cin>>t>>l>>r;if(t==1){cout<<query_sum(1,1,n,l,r)<<"\n";}else{update(1,1,n,l,r);}}return 0;
}

C++ 花神游历各国相关推荐

  1. 3211: 花神游历各国

    3211: 花神游历各国 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 1042  Solved: 381 [Submit][Status] Desc ...

  2. BZOJ3211: 花神游历各国

    BZOJ3211: 花神游历各国 Description Input Output 每次x=1时,每行一个整数,表示这次旅行的开心度 Sample Input 4 1 100 5 5 5 1 1 2 ...

  3. [BZOJ3211] 花神游历各国 - 线段树

    3211: 花神游历各国 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 4766  Solved: 1741 [Submit][Status][Dis ...

  4. bzoj 3211: 花神游历各国 bzoj 3038: 上帝造题的七分钟2

    3211: 花神游历各国 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 3438  Solved: 1277 [Submit][Status][Dis ...

  5. 【luogu4145】 上帝造题的七分钟2 / 花神游历各国 [线段树]

    P4145 上帝造题的七分钟2 / 花神游历各国 把一段区间里的每个数都开方 求区间和 可以发现最多开方开6次就能都变为1 所以可以hei暴力地一个点一个点地改 具体操作我用的和buildtree差不 ...

  6. 1550:花神游历各国

    [题目描述] 原题来自:BZOJ 3211 花神喜欢步行游历各国,顺便虐爆各地竞赛.花神有一条游览路线,它是线型的,也就是说,所有游历国家呈一条线的形状排列,花神对每个国家都有一个喜欢程度(当然花神并 ...

  7. ybt.1550 花神游历各国 题解

    [题目描述] 花神喜欢步行游历各国,顺便虐爆各地竞赛.花神有一条游览路线,它是线型的,也就是说,所有游历国家呈一条线的形状排列,花神对每个国家都有一个喜欢程度(当然花神并不一定喜欢所有国家). 每一次 ...

  8. 1276. 花神游历各国

    花神喜欢步行游历各国,顺便虐爆各地竞赛. 花神有一条游览路线,它是线型的,也就是说,所有游历国家呈一条线的形状排列,花神对每个国家都有一个喜欢程度(当然花神并不一定喜欢所有国家). 每一次旅行中,花神 ...

  9. 花神游历各国(线段树)

    题目描述: 花神喜欢步行游历各国,顺便虐爆各地竞赛.花神有一条游览路线,它是线型的,也就是说,所有游历国家呈一条线的形状排列,花神对每个国家都有一个喜欢程度(当然花神并不一定喜欢所有国家). 每一次旅 ...

  10. bzoj3211花神游历各国

    试题描述 花仔喜欢步行游历各国,花仔有一条游览路线,它是线型的,也就是说,所有游历国家呈一条线的形状排列,花仔对每个国家都有一个喜欢度(当然花仔并不一定喜欢所有国家),每一次旅行中,花仔会选择一条旅游 ...

最新文章

  1. 常见的容错机制+failover+failback
  2. 程序员们,今天就让她陪你们放松一下吧。她还有大宝剑哦。【原创】
  3. java程序设计第一次作业
  4. 测试书籍推荐(收集)
  5. 【Kaggle-MNIST之路】两层的神经网络Pytorch(四行代码的模型)
  6. 还能开发搜索引擎吗?
  7. 【JVM】javap命令行分析揭示boolean的本质的虚拟机指令
  8. Winform使用DevExpress的WaitDialogForm画面 z
  9. MFCC特征提取过程详解
  10. python股票接口_Python 从 sina 股票数据接口读取数据,并保存到 MySQL 数据库
  11. 用 mCustomScrollbar 滚动条插件实现滚动更新添加数据
  12. 如何0成本搭建外卖CPS返利小程序
  13. win8改win7 bios设置方法
  14. Extention匿名类
  15. 妙啊!巧用 SSH 突破限制穿透内网
  16. 电话号码归属地批量查询软件选择需谨慎
  17. 国信长天蓝桥杯嵌入式类——stm32——使用keil4建立工程文件过程
  18. 微信小程序如何实现切换主题(更改皮肤)
  19. java比较两个对象_java判断两个对象是否相等的方法
  20. 通过路由器子接口实现 VLAN 间的互访

热门文章

  1. 利用IEHelper实现简单网址过滤
  2. kernel zram feature
  3. FreeRTOS学习笔记20200526
  4. 微信如何实现自动跳转到用其他浏览器打开指定页面
  5. 转载SSIS中的容器和数据流—数据转换(Transformations)
  6. 两个乒乓球队进行比赛,各出3人。甲队为ABC三人,乙队为XYZ三人。已抽签决定比赛名单。有人向队员打听 比赛的名单,A说他不和X比,C说他不和X,Z比,请编程找出3对赛手的名单
  7. 模拟redis位图操作bitmap 统计日活跃用户数
  8. ultraiso软碟通 无法保存hfs文件卷
  9. MySQL常见聚合函数
  10. 达人评测 r7 5700g对比i7 11700k选哪个