题目链接

这是一道假题,表面上看起来,好像使用了什么奇妙的操作,其实就是一个无脑暴力

我们会发现,即使是\(1e18\),在开方\(6\)次之后也已经变成了\(1\),而\(1\)再怎么开方还是\(1\),也就是说,每个数最多被修改\(6\)次,那么我们记录区间内是否都是\(1\),如果都是\(1\)则无需修改,然后对于需要修改的区间,我们直接暴力修改到底即可,这样复杂度就是\(O(n \lg n)\)常数在6左右,完全不用担心

下面放代码

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cctype>
#include<cmath>
#define ll long long
#define gc getchar
#define maxn 100005
using namespace std; inline ll read(){
ll a=0;int f=0;char p=gc();
while(!isdigit(p)){f|=p=='-';p=gc();}
while(isdigit(p)){a=(a<<3)+(a<<1)+(p^48);p=gc();}
return f?-a:a;
}int T,n,m; struct ahaha{
ll v,v1;
}t[maxn<<2];
#define lc p<<1
#define rc p<<1|1
inline void pushup(int p){
t[p].v=t[lc].v+t[rc].v;
t[p].v1=max(t[lc].v1,t[rc].v1);
}
void build(int p,int l,int r){
if(l==r){t[p].v=t[p].v1=read();return;}
int m=l+r>>1;
build(lc,l,m);build(rc,m+1,r);
pushup(p);
}
void update(int p,int l,int r,int L,int R){
if(l>R||r<L)return;
if(t[p].v1==1)return;
if(l==r){t[p].v=t[p].v1=sqrt(t[p].v1);return;}
int m=l+r>>1;
update(lc,l,m,L,R);update(rc,m+1,r,L,R);
pushup(p);
}
ll query(int p,int l,int r,int L,int R){
if(l>R||r<L)return 0;
if(L<=l&&r<=R)return t[p].v;
int m=l+r>>1;
return query(lc,l,m,L,R)+query(rc,m+1,r,L,R);
} inline void solve_1(){
int x=read(),y=read();if(x>y)swap(x,y);
update(1,1,n,x,y);
}
inline void solve_2(){
int x=read(),y=read();if(x>y)swap(x,y);
printf("%lld\n",query(1,1,n,x,y));
} int main(){
while(~scanf("%d",&n)){
printf("Case #%d:\n",++T);
build(1,1,n);
m=read();
while(m--){
int zz=read();
switch(zz){
case 0:solve_1();break;
case 1:solve_2();break;
}
}
puts("");
}
return 0;
}

最新文章

  1. 让VIM支持Python2 by update-alternatives
  2. archlinux 安装手记
  3. tiny中文乱码问题,不过仅适用于windows,所以xml不可以出现中文
  4. 栈的C++实现(指针)——创建-push-pop-top-清空栈-处理栈
  5. Careercup 论坛上较有意思的题目整理
  6. 各种主流数据库的比较(所以说我觉得Oracle这个keng?入的不错?)
  7. Android异步更新UI的四种方式
  8. SuperSocket与Netty之实现protobuf协议,包括服务端和客户端
  9. TortoiseGit - 分支管理 -增加分支
  10. 如何给远程主机开启mysql远程登录权限
  11. Less的内置函数
  12. 洛谷P5119 Convent 题解
  13. Unity中各种格式计时器
  14. python接口自动化测试(一)-环境准备
  15. 全志A33开发板Linux内核定时器编程
  16. [https][ssl] keyless SSL
  17. P2463 [SDOI2008]Sandy的卡片
  18. Sprint最后一天
  19. 2018年长沙理工大学程序设计竞赛 J - 杯子
  20. VB将MSHFlexGrid数据导出到Excel文件通用功能

热门文章

  1. scapy学习笔记(2)--包及包的定义
  2. P2176 [USACO14FEB]路障Roadblock
  3. day46
  4. 几个PHP读取整个文件的函数readfile()、fpassthru()和file()
  5. 【H5】直接拨打电话
  6. Linux 网络监控工具 ss
  7. OSS介绍
  8. 字典学习(Dictionary Learning, KSVD)详解
  9. POJ 1068&amp;&amp;2632&amp;&amp;1573&amp;&amp;2993&amp;&amp;2996
  10. system表空间不可改名