洛谷4145上帝造题的七分钟2
题目: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相关推荐
- 洛谷P4145 上帝造题的⑦minutes ②
又是线段树. 区间开平方求和,套路题. 如果开到了1就不用再开下去了,否则直接到底. 记得 l > r 时交换 l r 1 #include <cstdio> 2 #include ...
- 【暑假训练 7.10】 codevs 2492 上帝造题的七分钟2
Description XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. "第一分钟,X说,要有数列,于是便给定了一个正整数数列. 第二分钟,L说,要能修改,于是便有了对 ...
- BZOJ3038 上帝造题的七分钟
Time Limit: 3 Sec Memory Limit: 128 MB Description XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. "第一分钟,X说, ...
- BZOJ 3038: 上帝造题的七分钟2【线段树区间开方问题】
3038: 上帝造题的七分钟2 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 1469 Solved: 631 [Submit][Status][D ...
- BZOJ 3038 上帝造题的七分钟2
Description XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. "第一分钟,X说,要有数列,于是便给定了一个正整数数列. 第二分钟,L说,要能修改,于是便有了对 ...
- 【luogu4145】 上帝造题的七分钟2 / 花神游历各国 [线段树]
P4145 上帝造题的七分钟2 / 花神游历各国 把一段区间里的每个数都开方 求区间和 可以发现最多开方开6次就能都变为1 所以可以hei暴力地一个点一个点地改 具体操作我用的和buildtree差不 ...
- bzoj 3211: 花神游历各国 bzoj 3038: 上帝造题的七分钟2
3211: 花神游历各国 Time Limit: 5 Sec Memory Limit: 128 MB Submit: 3438 Solved: 1277 [Submit][Status][Dis ...
- 上帝造题的七分钟(ybtoj-树状数组)
文章目录 题目描述 解析 代码 thanks for reading! 题目描述 解析 差点活活恶心死 搬砖题 (其实细节没有那么多,还是代码能力太差) 利用矩阵的二维差分 加上树状数组搞一搞 就完事 ...
- 【BZOJ3132】【TYVJ1716】上帝造题的七分钟 二维树状数组
题目大意 维护一个\(n\times m\)的矩阵,有两种操作: \(1~x_1~y_1~x_2~y_2~v\):把\((a,b),(c,d)\)为顶点的矩形区域内的所有数字加上\(v\). \(2~ ...
最新文章
- Unity V3 初步使用 —— 为我的.NET项目从简单三层架构转到IOC做准备
- 如何优雅地使用迅雷下载百度云大文件?
- 金格pdf打开服务器文件,金格插件解决方法.pdf
- 算法设计与分析第六章习题解答与学习指导(第2版)屈婉婷 刘田 张立昂 王捍贫编著 清华大学出版社
- 软考试题希赛网爬取过程分享二
- 全票通过!数据集成平台 SeaTunnel 成功进入 Apache 孵化器!
- 通过lua脚本识别微信,支付宝,龙支付
- VMware ESXi 7.0 U2 SLIC Unlocker USB 网卡驱动集成镜像
- Android FileOutputStream FileInputStream 读写问题记录
- 专注于win7官网,专注win7系统安装
- Python 画星星图案
- virtualBox 报VT-x is disabled in the BIOS for both all CPU modes (VERR_VMX_MSR_ALL_VMX_DI的错误
- 历史经验之解决vMix22闪退的办法(亲测管用)
- 七月上伴奏计算机按键,数字化音乐专业教室配备方案(7页)-原创力文档
- 修改CAD图纸背景颜色的方法?
- linux加新的硬盘,linux添加新硬盘
- tableau关于增长率、占比的表计算实践应用
- mysql数据库报 请在mysql配置文件修sql-mode为NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
- 线性规划问题及单纯形法-单纯形法原理
- Java分布式跟踪系统Zipkin(二):Brave源码分析-Tracer和Span
热门文章
- ecshop去掉“云服务中心”或者是“模板堂知识库”
- 产品运营 | 如何通过数据评判你的 App 表现?
- 07-Windows Server 2012 R2 会话远程桌面-标准部署-RD授权
- DLL技术应用04 - 零基础入门学习Delphi47
- 百度嵌入式深度学习框架Paddle-Mobile介绍
- “XXXXX” is damaged and can’t be opened. You should move it to the Trash 解决方案
- 服务器无法显示大内存的处理办法
- Maven---学习心得---maven的配置文件settings.xml
- 什么是core dump linux下用core和gdb查询出现段错误的地方
- openwrt 安装 ser2net 配置