【题目分析】

区间开方+区间求和。

由于区间开方次数较少,直接并查集维护下一个不是1的数的位置,然后暴力修改,树状数组求和即可。

这不是BZOJ上上帝造题7分钟嘛

【代码】

#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define ll long long
using namespace std;
long long a[100001],f[100001],n,q,op,l,r;
long long t[100001];
inline long long gf(long long k)
{
if (f[k]==k) return k;
else return f[k]=gf(f[k]);
}
inline void add(long long x,long long f)
{
for (;x<=n;x+=x&(-x))
t[x]+=(ll)f;
}
inline long long gs(long long x)
{
long long ret=0;
for (;x;x-=x&(-x)) ret+=t[x];
return ret;
}
int main()
{
int kas=0;
while (scanf("%lld",&n)!=EOF)
{
printf("Case #%d:\n",++kas);
memset(t,0,sizeof t);
for (long long i=1;i<=n;++i) scanf("%lld",&a[i]),f[i]=i;
f[n+1]=n+1;
for (long long i=1;i<=n;++i) add(i,a[i]);
scanf("%lld",&q);
for (long long zz=1;zz<=q;++zz)
{
scanf("%lld",&op);
if (op==0)
{
scanf("%lld%lld",&l,&r);
if (l>r) swap(l,r);
long long i=l;
while (i<=r)
{
i=gf(f[i]);
if (i>r) break;
long long tmp=a[i];
a[i]=(long long)sqrt(a[i]);
add(i,a[i]-tmp);
if (a[i]==1) f[i]=f[i]+1;
gf(f[i]);
i++;
}
}
else
{
scanf("%lld%lld",&l,&r);
if (l>r) swap(l,r);
printf("%lld\n",gs(r)-gs(l-1));
}
}
printf("\n");
}
}

  

SPOJ GSS4 Can you answer these queries IV ——树状数组 并查集的更多相关文章

  1. SPOJ GSS4 Can you answer these queries IV

    Time Limit: 500MS   Memory Limit: 1572864KB   64bit IO Format: %lld & %llu Description You are g ...

  2. GSS4 - Can you answer these queries IV(线段树懒操作)

    GSS4 - Can you answer these queries IV(线段树懒操作) 标签: 线段树 题目链接 Description recursion有一个正整数序列a[n].现在recu ...

  3. 线段树 SP2713 GSS4 - Can you answer these queries IV暨 【洛谷P4145】 上帝造题的七分钟2 / 花神游历各国

    SP2713 GSS4 - Can you answer these queries IV 「题意」: n 个数,每个数在\(10^{18}\) 范围内. 现在有「两种」操作 0 x y把区间\([x ...

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

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

  5. SP2713 GSS4 - Can you answer these queries IV(线段树)

    传送门 解题思路 大概就是一个数很少次数的开方会开到\(1\),而\(1\)开方还是\(1\),所以维护一个和,维护一个开方标记,维护一个区间是否全部为\(1/0\)的标记.然后每次修改时先看是否有全 ...

  6. GSS7 spoj 6779. Can you answer these queries VII 树链剖分+线段树

    GSS7Can you answer these queries VII 给出一棵树,树的节点有权值,有两种操作: 1.询问节点x,y的路径上最大子段和,可以为空 2.把节点x,y的路径上所有节点的权 ...

  7. CodeForces - 369E Valera and Queries(树状数组)

    CodeForces - 369E Valera and Queries 题目大意:给出n个线段(线段的左端点和右端点坐标)和m个查询,每个查询有cnt个点,要求给出有多少条线段包含至少其中一个点. ...

  8. 题解【SP2713】GSS4 - Can you answer these queries IV

    题目描述 You are given a sequence \(A\) of \(N(N \leq 100,000)\) positive integers. There sum will be le ...

  9. Spoj 2713 Can you answer these queries IV 水线段树

    题目链接:点击打开链接 题意: 给定n长的序列 以下2个操作 0 x y 给[x,y]区间每一个数都 sqrt 1 x y 问[x, y] 区间和 #include <stdio.h> # ...

随机推荐

  1. 学习笔记——Paint 1(MaskFilter)

    对于Paint没有很好的深入的学习过,在工作之余再巩固巩固. 1.Paint的BlurMaskFilter(模糊效果) 自定义一个View继承View 重写里面的onDraw方法.这里直接上代码了: ...

  2. Android学习总结(十六) ———— MediaPlayer播放音频与视频

    一.基本概念 本文主要介绍的是Android中很重要也最为复杂的媒体播放器(MediaPlayer)部分的架构.Android的MediaPlayer包含了Audio和video的播放功能,在Andr ...

  3. 深度技术GHOST WIN7系统32,64位旗舰稳定版

    系统来自系统妈:http://www.xitongma.com 系统概述 深度技术ghost win8 X86(32位)旗舰稳定版系统集成了SATA/RAID/SCSI驱动,支持P45. MCP78. ...

  4. 解决Errno::ENOENT: No Such File or Directory - Jekyll ~ Octopress and El Capitan

    参考http://schalkneethling.github.io/blog/2015/10/16/errno-enoent-no-such-file-or-directory-jekyll-oct ...

  5. Scala 的list

    9.1 使用列表 列表类型:跟数组一样,列表也是同质化的(homogeneous).即所有元素都要是同种类型. 列表结构:所有列表由两部分组成:Nil 和 ::(cons). 基本操作:主要有三个:h ...

  6. Luogu P3938 斐波那契

    Luogu P3938 斐波那契 第一眼看到这题,想到的是LCA,于是开始想怎么建树,倒是想出了\(n^{2}\)算法,看了下数据范围,果断放弃 想了想这数据范围,大的有点不正常,这让我想起了当年被小 ...

  7. shell脚本,逻辑结构题练习。

    awk '/5/{a=1}!a' file2结果:1234解释:第一行 /5/不匹配跳过{a=1},继续!a,此时a没有值属于假取反为真,故输出第一行 第二行 /5/不匹配跳过{a=1},继续!a,此 ...

  8. awk日志分割

    awk日志分割 1. awk实现日志按照日期分割 #!/bin/bash DATE=$(date -d yesterday +%Y-%m-%d) awk  'BEGIN{RS="'$DATE ...

  9. 随机生成一份试卷,试卷的种类分为单选、多选、判断三种题型。nodejs6.0 mysql

    背景:从数据库中,随机生成一份试卷,试卷的种类分为单选.多选.判断三种题型. 首先我需要生成随机数id(在这之前我需要知道数据库中各个题型的题数,这样我才能设置随机数),并依据生成的随机数id,去查找 ...

  10. URAL1765 Error 404

    题目描述: vjudge 题解: STO ljx OTZ 下面这个算法是这位贡献的. 不妨将删去改为加入. 那么对于$n=p^k$,即只有一个质因子的$n$来说,若$i$已选,那么$i+n/p$.$i ...