有点意思,不需要什么懒标记之类的东西,因为一个数无论怎样开平方,最后取整的结果必然会是1,所以我们不妨用最大值来维护,若区间最大值不为1,就暴力修改,否则不用管。

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+;
struct node
{
int l;
int r;
unsigned long long sum;
unsigned long long mx;
}tree[maxn*];
int n,m;
unsigned long long l,r,opt;
unsigned long long a[maxn];
void build(int now,int l,int r)
{
tree[now].l=l;
tree[now].r=r;
if(l==r)
{
tree[now].sum=tree[now].mx=a[l];
return;
}
int mid=(l+r)>>;
build(now*,l,mid);
build(now*+,mid+,r);
tree[now].sum=tree[now*].sum+tree[now*+].sum;
tree[now].mx=max(tree[now*].mx,tree[now*+].mx);
}
void update(int now,int l,int r)
{
if(tree[now].l==tree[now].r)
{
tree[now].sum=sqrt(tree[now].sum);
tree[now].mx=sqrt(tree[now].mx);
return;
}
int mid=(tree[now].l+tree[now].r)>>;
if(l<=mid&&tree[now*].mx>)
{
update(now*,l,r);
}
if(r>mid&&tree[now*+].mx>)
{
update(now*+,l,r);
}
tree[now].sum=tree[now*].sum+tree[now*+].sum;
tree[now].mx=max(tree[now*].mx,tree[now*+].mx);
}
long long query(int now,int l,int r)
{
if(tree[now].l>=l&&tree[now].r<=r)
{
return tree[now].sum;
}
int mid=(tree[now].l+tree[now].r)>>;
long long ans=;
if(l<=mid)
{
ans+=query(now*,l,r);
}
if(mid<r)
{
ans+=query(now*+,l,r);
}
return ans;
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%lld",&a[i]);
}
build(,,n);
scanf("%d",&m);
for(int i=;i<=m;i++)
{
scanf("%lld%lld%lld",&opt,&l,&r);
if(l>r)
{
swap(l,r);
}
if(opt==)
{
update(,l,r);
}
else
{
printf("%lld\n",query(,l,r));
}
}
return ;
}

多说几句,数据比较毒瘤,狂开unsigned long long 就能AC

P4145 上帝造题的七分钟2 / 花神游历各国(线段树区间开平方)的更多相关文章

  1. day1 晚上 P4145 上帝造题的七分钟2 / 花神游历各国 线段树

    #include<iostream> #include<cstdio> #include<cmath> using namespace std; ; struct ...

  2. GSS4 - Can you answer these queries IV || luogu4145上帝造题的七分钟2 / 花神游历各国 (线段树)

    GSS4 - Can you answer these queries IV || luogu4145上帝造题的七分钟2 / 花神游历各国 GSS4 - Can you answer these qu ...

  3. 洛谷P4145 上帝造题的七分钟2/花神游历各国 [树状数组,并查集]

    题目传送门 题目背景 XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. 题目描述 "第一分钟,X说,要有数列,于是便给定了一个正整数数列. 第二分钟,L说,要能修改,于是 ...

  4. 洛谷P4145——上帝造题的七分钟2 / 花神游历各国

    题目背景 XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. 题目描述 "第一分钟,X说,要有数列,于是便给定了一个正整数数列. 第二分钟,L说,要能修改,于是便有了对一段 ...

  5. 洛谷P4145 上帝造题的七分钟2 / 花神游历各国(重题:洛谷SP2713 GSS4 - Can you answer these queries IV)

    题目背景 XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. 题目描述 "第一分钟,X说,要有数列,于是便给定了一个正整数数列. 第二分钟,L说,要能修改,于是便有了对一段 ...

  6. 【题解】 Luogu P4145 上帝造题的七分钟2 / 花神游历各国

    原题传送门 这道题实际和GSS4是一样的,只是输入方式有点区别 GSS4传送门 这道题暴力就能过qaq(这里暴力指线段树) 数据比较水 开方修改在线段树中枚举叶节点sqrt 查询区间和线段树基本操作 ...

  7. 洛谷 P4145 上帝造题的七分钟2 / 花神游历各国

    洛谷 这题就是区间开根号,区间求和.我们可以分块做. 我们记布尔数组vis[i]表示第i块中元素是否全部为1. 因为显然当一个块中元素全部为1时,并不需要对它进行根号操作. 我们每个块暴力开根号,因为 ...

  8. P4145 上帝造题的七分钟2 / 花神游历各国

    思路 每个数不会被开方超过log次,对每个数暴力开方即可 代码 #include <algorithm> #include <cstring> #include <cst ...

  9. luogu P4145 上帝造题的七分钟2 / 花神游历各国 维护区间和&&区间开根号

    因为开根号能使数字减小得非常快 所以开不了几次(6次?)很大的数就会变成1..... 所以我们可以维护区间最大值,若最大值>1,则继续递归子树,暴力修改叶节点,否则直接return (好像也可以 ...

随机推荐

  1. LVS (一) 原理

    LVS原理概述 负载均衡就是,在多个提供相同服务主机的前段,增加一个分发器,根据用户请求,然后根据某种方式或者策略,将用户请求分发到提供服务的主机上.同时负载均衡应用还应该提供对后其后端服务健康检查的 ...

  2. SQL优化 MySQL版 - 避免索引失效原则(一)

    避免索引失效原则(一) 精力有限,剩余的失效原则将会在 <避免索引失效原则(二)>中连载出来,请谅解 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 避免索引失效的一些原 ...

  3. KOA中间件的基本运作原理

    示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址:<大史住在大前端>原创博文目录 华为云社区地址:[你要的前端打怪升级指南] 在中 ...

  4. 校园生活app结对开发第一天

    今天刚开始开发,要安装android studio及熟悉软件操作

  5. [转]Have a query in Blue prism coding stage and collection stage.

    本文转自:https://www.rpaforum.net/threads/have-a-query-in-blueprism-coding-stage-and-collection-stage.48 ...

  6. Elasticsearch入门教程之安装与基本使用

    ubuntu16.04+elasticsearch6.5为例,参考官网文档https://www.elastic.co/guide/en/elasticsearch/reference/current ...

  7. Ext.isIterable

    Ext.isIterable用于判断传入的参数是否为可迭代的 在这4种情况下,函数返回true 1:数组2:函数参数arguments3:HTML collections : NodeList4:HT ...

  8. vue -webkit-box-orient: vertical webpack打包后被过滤掉了 线上没有这行代码

    (1)方法一:加上绿色注释,跳过webpack的css打包 .word-overflow-{ overflow:hidden; text-overflow:ellipsis; display:-web ...

  9. java基础(二):谈谈Java基本数据结构

    数据结构是计算机存储,组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或存储效率.数据结构往往同高效的检索算法和索引技术有关 ...

  10. SAP MM 明明有需求,为啥MRP RUN后没有PR单据产生?

    SAP MM 明明有需求,为啥MRP RUN后没有PR单据产生? 用户报了一个问题说,对于物料号42011222的采购单 4500000156建好了,为啥PR没有自动生成 . 我们检查了物料的MRP ...