[BZOJ3211][SPOJ2713][线段树]GSS 4(花神游历各国)[一般题]

WorkBench3.2 + VxWorks6.8安装教程 按照FTP连接主机和目标机,将整个VxWorks6.8的安装分为两个部分,一是在主机(win10系统,可以使用虚拟机或者实体机,推荐使用虚拟机)上安装workbench3.2,进行bootrom与VxWroks映像文件的生成,二是在虚拟机上安装VxWorks系统 19.10.10 首先很高兴文章能帮到大家,但由于本人已不做该方向良久,私信和评论的很多问题现在已经无法解答,如果大家有什么问题欢迎... 阅读详情

题干

维护一个区间,支持两种操作:

  1. 区间求和;
  2. 区间开平方(将一个区间内的数全部开平方)。

当然在BZOJ上这道题被加上了奇奇怪怪的背景……

  • 区间长度不超过100,000;
  • 操作个数不超过200,000;
  • 区间内的数不超过1,000,000,000。

题解

最重要的性质:一个1,000,000,000以内的数最多开方7次就会变成1。

所以:预处理每个区间内的数开n次方的和(0 <= n <= 7),进行优化。

(不要随便看代码。不要随便看代码。不要随便看代码。因为很重要所以说三遍。)

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;

//Global Variables & Definitions
typedef long long LL;

int N, M;
int data[100010];
//End Global Variables & Definitions

//Segment Tree
struct Tree {
    int l, r;
    LL sum[7];
    LL s;
    int ptr;

    int lazy;
} T[400040];

inline LL Sum(int u) {
    return ~T[u].ptr ? T[u].sum[T[u].ptr] : T[u].s;
}

void PushUp(int u) {
    if(T[u << 1].ptr == T[u << 1 | 1].ptr && ~T[u << 1].ptr) {
        T[u].ptr = T[u << 1].ptr;
    } else {
        T[u].ptr = -1;
        T[u].s = Sum(u << 1) + Sum(u << 1 | 1);
    }
}

inline void MakeLazy(int u, int v) {
    T[u].ptr = T[u].ptr + v; if(T[u].ptr > 6) T[u].ptr = 6;
    T[u].lazy = T[u].lazy + v; if(T[u].lazy > 6) T[u].lazy = 6;

}

void PushDown(int u) {
    if(!T[u].lazy) return;
    MakeLazy(u << 1, T[u].lazy);
    MakeLazy(u << 1 | 1, T[u].lazy);
    PushUp(u);
    T[u].lazy = 0;
}

void Build(int u, int l, int r) {
    T[u].l = l; T[u].r = r;
    T[u].ptr = 0; T[u].lazy = 0;

    if(l == r) { 
        LL *sum = T[u].sum;

        sum[0] = data[l];
        for(int i = 1;i < 7;++i) sum[i] = (int)(sqrt(sum[i - 1]));

        return;
    }

    int mid = (l + r) >> 1;
    Build(u << 1, l, mid);
    Build(u << 1 | 1, mid + 1, r);

    for(int i = 0;i < 7;++i) T[u].sum[i] = T[u << 1].sum[i] + T[u << 1 | 1].sum[i];
    PushUp(u);
}

LL Query(int u, int l, int r) {
    if(l <= T[u].l && r >= T[u].r) return Sum(u);
    PushDown(u);

    int mid = (T[u].l + T[u].r) >> 1;
    LL ans = 0ll;
    if(l <= mid) ans += Query(u << 1, l, r);
    if(r > mid) ans += Query(u << 1 | 1, l, r);
    return ans;
}

void Update(int u, int l, int r) {
    if(l <= T[u].l && r >= T[u].r && ~T[u].ptr) { MakeLazy(u, 1); return; }
    PushDown(u);

    int mid = (T[u].l + T[u].r) >> 1;
    if(l <= mid) Update(u << 1, l, r);
    if(r > mid) Update(u << 1 | 1, l ,r);

    PushUp(u);
}
//End Segment Tree

//Main Structure
inline void ir() {
    scanf("%d", &N);
    for(int i = 1;i <= N;++i) scanf("%d", &data[i]);
    Build(1, 1, N);
}

int main() {
    ir();

    int x, l, r;
    scanf("%d", &M);
    for(int i = 0;i < M;++i) {
        scanf("%d%d%d", &x, &l, &r);

        if(x == 1) {
            printf("%lld\n", Query(1, l, r));
        } else {
            Update(1, l, r);
        }
    }
    return 0;
}
获取iOS设备唯一标识UUID(Swift版) 属性返回的UUID是与应用程序相关联的,也就是说,如果用户卸载并重新安装应用程序,该UUID可能会发生变化。如果您需要一个与设备相关的持久唯一标识符,您可以考虑使用Keychain或其他方法来存储和检索设备标识符。在iOS开发中,我们经常需要获取设备的唯一标识符来进行一些特定的操作,比如设备识别、数据追踪等。在本文中,我将向您展示如何使用Swift编程语言获取iOS设备的唯一标识UUID。通过上述代码,您可以在您的iOS应用程序中轻松获取设备的唯一标识符。属性来获取设备的唯一标识UUID。 阅读详情

相关推荐

GROMACS自由能景观图绘制全流程:从PCA分析到Origin 3D可视化(附避坑指南)

本文详细解析了使用GROMACS绘制自由能景观图的全流程,涵盖从PCA分析、数据预处理、自由能计算到最终在Origin中进行3D可视化的完整步骤。文章重点分享了数据处理与格式转换中的常见“避坑”指南,帮助研究者从分子动力学轨迹中有效提取并解读构象自由能信息,深化对生物大分子动力学过程的理解。

oauth7security的博客 309

BZOJ3211 花神游历各国 并查集 树状数组

欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ3211 题意概括   有n个数形成一个序列。   m次操作。   有两种,分别是: 1. 区间开根(取整) 2. 区间求和 题解   这题做法大概我知道的有两种,一种是线段树,一种是并查集+树状数组。   两者都基于一个事实:任何一个数被开根很少的次数就变成1了,然...

weixin_30906185的博客 222

Autosar结合simulink的汽车应用层软件开发实例

本文基于汽车应用开发案例,并结合Autosar相关知识,生成具有Autosar标准的汽车应用层开发代码,以供学习和参考。以上就是本篇内容,主要是利用Simulink创建Autosar接口并进行端口映射的方法。

m0_64899535的博客 2152

bzoj3211 花神游历各国

Description Input Output 每次x=1时,每行一个整数,表示这次旅行的开心度 Sample Input 4 1 100 5 5 5 1 1 2 2 1 2 1 1 2 2 2 3 1 1 4 Sample Output 101 11 11 HINT ...

dfssbqyrq96616258的博客 192

手把手教你用STM32单片机控制双向可控硅调光(附完整代码+电路图)

本文提供了一套完整的STM32单片机控制双向可控硅实现灯光无级调光的实战方案。详细讲解了硬件电路设计,包括过零检测与隔离驱动,并剖析了基于定时器中断的软件核心逻辑,通过精准的相位角计算实现平滑的灯光强度控制。附有完整代码与电路图,适合嵌入式开发者实践。

weixin_29194255的博客 952

Vcenter安全加固-防火墙-只允许特定的IP地址访问Vcenter

3、此时除了被允许的IP地址可以访问之外,其余地址均被防火墙阻挡。2、再进行0.0.0.0/0匹配所有其他IP地址进行拒绝访问。1、只需要关注接受和拒绝即可。2、其余选择不是这个场景使用的。1.只允许特定的IP地址访问Vcenter。1、登录Vcenter管理界面。2、点击防火墙-添加。

博然的宝藏库 7280

BZOJ3211花神游历各国

BZOJ3211花神游历各国 BZOJ luogu 分块 记一个all表示该块是否全部<=1,如果all不为真就暴力修改 因为一个数被开根的次数不多,即使\(10^{12}\)只要开根6次也会变成1,所以复杂度是可以证明的 注意BZOJ数据含0 #define ll long long #include<bits/stdc++.h> using namespace st...

168

解决anaconda占用C盘空间过多问题

anaconda就算安装在其他盘,默认会把索引、锁定文件、压缩包等都放到系统盘(C盘),我用了两年,占用30GB。 1. 卸载不用的虚拟环境 查看已安装的虚拟环境 conda env list 卸载不用的、过期的虚拟环境 conda remove -n (要卸载的环境的名字) --all 2. 删除索引缓存、锁定文件、未使用过的包和tar包 conda clean -a 清理完之后,删除了15GB,还剩15GB,舒服了 ...

沉迷单车的追风少年 3万+

BZOJ3211:花神游历各国(线段树)

Description Input Output 每次x=1时,每行一个整数,表示这次旅行的开心度 Sample Input 4 1 100 5 5 5 1 1 2 2 1 2 1 1 2 2 2 3 1 1 4 Sample Output 101 11 11 HINT 对于100%的数据, n ≤ 100000,m≤20...

weixin_34419326的博客 221

【PG高可用】一 PostgreSQL高可用方案repmgr部署(非常详细)

repmgr安装部署

DBA之路的博客 7054

SAP_SD模块更改销售订单定价简介

方式优点缺点适用场景MASS简单,无需开发不能触发重新定价逻辑修改特定字段BDC (VA02)可模拟人工操作维护复杂,速度慢少量订单批改稳定、安全需ABAP支持推荐用于批量重新定价VBOF标准重算返利仅适返利类条件返利更新通过本文,我们了解了 SAP 的[SAP_SD模块更改销售订单定价]的基本概念和应用方法。希望这些信息能帮助您在实际工作中更好地使用 SAP 系统,提高工作效率和管理水平。更多SAP文章请点击更多SAP文章更新,大家一起学习进步!!!

我小时候很黑的博客 712

BZOJ 3211(花神游历各国-线段树区间开方)

3211: 花神游历各国 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 52  Solved: 24 [Submit][Status][Discuss] Description Input Output 每次x=1时,每行一个整数,表示这次旅行的开心度 Sample Input 4 1 100

nike0good |Oier&ACMer | 熟能生巧 2849

全志T527 适配双目tp2815_mipi

在全志T527 linux下适配双目TP2815 mipi摄像头,支持六路同时输出,四路可用作360环视、一路face id等,一路用于其它开发。

Linux驱动开发工程师,熟悉Linux/Android底层驱动、TP、显示、IIC、网络等通用外设调试适配,Linux上层应用开发。常用平台瑞芯微、全志、恩智浦等。 3813

bzoj3211 花神游历各国 ( 线段树 )

题目点我点我点我 3211: 花神游历各国 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 2475  Solved: 921 [Submit][Status][Discuss] Description Input Output 每次x=1时,每行一个整数,表示这次旅行的开心度

blanKey的博客 1132

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

BZOJ3211: 花神游历各国

题解:线段树模板题 /************************************************************** Problem: 3211 User: c20161007 Language: C++ Result: Accepted Time:1492 ms Memory:8332 kb ***...

weixin_30815469的博客 91

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

bzoj 3211: 花神游历各国 (线段树)

3211: 花神游历各国 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 2778  Solved: 1039 [Submit][Status][Discuss] Description Input Output 每次x=1时,每行一个整数,表示这次旅行的开心度 Sample Input 4 1

clover_hxy的博客 359

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

[BZOJ3211] 花神游历各国 - 线段树

3211: 花神游历各国 Time Limit: 5 SecMemory Limit: 128 MBSubmit: 4766Solved: 1741[Submit][Status][Discuss] Description Input Output 每次x=1时,每行一个整数,表示这次旅行的开心度 Sample Input 4 1 1...

weixin_30393907的博客 150

BZOJ 题目3211: 花神游历各国(线段树区间减为平方根,区间求和)

3211: 花神游历各国 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 1541  Solved: 585 [Submit][Status][Discuss] Description Input Output 每次x=1时,每行一个整数,表示这次旅行的开心度 Sample Input 4 1

Jogging_Clown 561

【bzoj3211】花神游历各国

3211: 花神游历各国 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 4065  Solved: 1485 [Submit][Status][Discuss] Description Input Output 每次x=1时,每行一个整数,表示这次旅行的开心度 Sample Input 4 1

Joky_2002的博客 448

BZOJ 3211: 花神游历各国【线段树区间开方问题】

3211: 花神游历各国 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 3514  Solved: 1306[Submit][Status][Discuss] Description     Input     Output 每次x=1时,每行一个整数,表示这次旅行的开心度 Sample I...

weixin_34077371的博客 159

【BZOJ3211&3038】花神游历各国&上帝造题的七分钟2(CodeVS)

Description Input Output 每次x=1时,每行一个整数,表示这次旅行的开心度 Sample Input 4 1 100 5 5 5 1 1 2 2 1 2 1 1 2 2 2 3 1 1 4 Sample Output 101 11 11 HINT ...

weixin_30951389的博客 115

bzoj3211花神游历各国

DescriptionInputOutput每次x=1时,每行一个整数,表示这次旅行的开心度 Sample Input41 100 5 551 1 22 1 21 1 22 2 31 1 4Sample Output1011111HINT对于100%的数据, n ≤ 100000,m≤200000 ,data[i]非负且小于10^9SourceSPOJ2713 gss4 数据已加强看了好几道并查集

381

bzoj 3211: 花神游历各国 树状数组

注意到任意一个正数经过不超过5次操作就变成1,之后就不变了;0经过永远不变。那么可以用一个链表来表示某一个数之后的第一个>1的数,然后用并查集来合并即可。 AC代码如下: #include #include #include #include #define N 100005 #define ll long long using namespace std; int n,m,a[N],fa[

lych的博客 643
上一篇: [BZOJ2226][Spoj5971][数论]LCMSum[好题]
下一篇: [SCOI2015]题目简析
BenjaminPMLee
博客等级 码龄12年 5粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值