题目:https://www.luogu.org/problemnew/show/P4145

题解:发现1e12开方6次就变成1了。1不管开方多少次还是1。

   所以并查集记录nxt表示下一个可操作者在哪。总共操作6n次。

   树状数组维护变化值,辅以原数组前缀和,轻松出答案~

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
const int N=100005;
int n,m,l,r,nxt[N];
ll a[N],f[N],s[N];
bool b;
int find(int a)
{if(nxt[a]==a)return a;return nxt[a]=find(nxt[a]);
}
void fix(int x,ll c)
{if(!c)return;for(;x<=n;x+=(x&-x))f[x]-=c;
}
ll query(int x)
{ll ret=s[x];for(;x;x-=(x&-x))ret+=f[x];return ret;
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%lld",&a[i]);nxt[i]=i;s[i]=s[i-1]+a[i];}scanf("%d",&m);while(m--){scanf("%d%d%d",&b,&l,&r);if(l>r)swap(l,r);if(!b)for(int i=find(nxt[l]);i<=r;i=max(i+1,find(nxt[i]))){ll c=a[i];a[i]=sqrt(a[i]);fix(i,c-a[i]);if(a[i]==1)nxt[i]=find(nxt[i+1]);}if(b)printf("%lld\n",query(r)-query(l-1));}return 0;
}

转载于:https://www.cnblogs.com/Narh/p/8763745.html

洛谷4145上帝造题的七分钟2相关推荐

  1. 洛谷P4145 上帝造题的⑦minutes ②

    又是线段树. 区间开平方求和,套路题. 如果开到了1就不用再开下去了,否则直接到底. 记得 l > r 时交换 l r 1 #include <cstdio> 2 #include ...

  2. 【暑假训练 7.10】 codevs 2492 上帝造题的七分钟2

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

  3. BZOJ3038 上帝造题的七分钟

    Time Limit: 3 Sec Memory Limit: 128 MB Description XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. "第一分钟,X说, ...

  4. BZOJ 3038: 上帝造题的七分钟2【线段树区间开方问题】

    3038: 上帝造题的七分钟2 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 1469  Solved: 631 [Submit][Status][D ...

  5. BZOJ 3038 上帝造题的七分钟2

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

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

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

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

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

  8. 上帝造题的七分钟(ybtoj-树状数组)

    文章目录 题目描述 解析 代码 thanks for reading! 题目描述 解析 差点活活恶心死 搬砖题 (其实细节没有那么多,还是代码能力太差) 利用矩阵的二维差分 加上树状数组搞一搞 就完事 ...

  9. 【BZOJ3132】【TYVJ1716】上帝造题的七分钟 二维树状数组

    题目大意 维护一个\(n\times m\)的矩阵,有两种操作: \(1~x_1~y_1~x_2~y_2~v\):把\((a,b),(c,d)\)为顶点的矩形区域内的所有数字加上\(v\). \(2~ ...

最新文章

  1. Unity V3 初步使用 —— 为我的.NET项目从简单三层架构转到IOC做准备
  2. 如何优雅地使用迅雷下载百度云大文件?
  3. 金格pdf打开服务器文件,金格插件解决方法.pdf
  4. 算法设计与分析第六章习题解答与学习指导(第2版)屈婉婷 刘田 张立昂 王捍贫编著 清华大学出版社
  5. 软考试题希赛网爬取过程分享二
  6. 全票通过!数据集成平台 SeaTunnel 成功进入 Apache 孵化器!
  7. 通过lua脚本识别微信,支付宝,龙支付
  8. VMware ESXi 7.0 U2 SLIC Unlocker USB 网卡驱动集成镜像
  9. Android FileOutputStream FileInputStream 读写问题记录
  10. 专注于win7官网,专注win7系统安装
  11. Python 画星星图案
  12. virtualBox 报VT-x is disabled in the BIOS for both all CPU modes (VERR_VMX_MSR_ALL_VMX_DI的错误
  13. 历史经验之解决vMix22闪退的办法(亲测管用)
  14. 七月上伴奏计算机按键,数字化音乐专业教室配备方案(7页)-原创力文档
  15. 修改CAD图纸背景颜色的方法?
  16. linux加新的硬盘,linux添加新硬盘
  17. tableau关于增长率、占比的表计算实践应用
  18. mysql数据库报 请在mysql配置文件修sql-mode为NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  19. 线性规划问题及单纯形法-单纯形法原理
  20. Java分布式跟踪系统Zipkin(二):Brave源码分析-Tracer和Span

热门文章

  1. ecshop去掉“云服务中心”或者是“模板堂知识库”
  2. 产品运营 | 如何通过数据评判你的 App 表现?
  3. 07-Windows Server 2012 R2 会话远程桌面-标准部署-RD授权
  4. DLL技术应用04 - 零基础入门学习Delphi47
  5. 百度嵌入式深度学习框架Paddle-Mobile介绍
  6. “XXXXX” is damaged and can’t be opened. You should move it to the Trash 解决方案
  7. 服务器无法显示大内存的处理办法
  8. Maven---学习心得---maven的配置文件settings.xml
  9. 什么是core dump linux下用core和gdb查询出现段错误的地方
  10. openwrt 安装 ser2net 配置