Can you answer these queries?( HDU - 4027,线段树 + 细节)

【SAP报错】BK128&K5112 在ECC中使用CO1F进行Progressive confirmation时,依次遇到了如下的报错。 阅读详情

一.题目链接:

HDU-4027

二.题目大意:

n 个数.

有两种操作.

0 X Y:将区间 [X, Y] 的数开方(向下取整)

1 X Y:查询区间 [X, Y] 的和.

三.分析:

直接线段树单点更新会 TLE,由于 2^{63} 根号 7 次后向下取整为 1.

所以只需要记录每段区间被更新过的次数.

注意:所给的 X,Y 大小关系不确定 因为这里 WA 了三天啊啊啊啊啊啊 555.

还有不要 PE 就好了!

四.代码实现:

#include <set>
#include <map>
#include <ctime>
#include <queue>
#include <cmath>
#include <stack>
#include <vector>
#include <cstdio>
#include <sstream>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#define eps 1e-6
#define pi acos(-1.0)
#define ll long long int
using namespace std;

const int M = (int)1e5;

struct node
{
    int l;
    int r;
    ll w;
    int f;
}tree[M * 4 + 5];

ll ans;

void build(int k, int l, int r)
{
    tree[k].l = l;
    tree[k].r = r;
    tree[k].f = 0;
    if(l == r)
    {
        scanf("%lld", &tree[k].w);
        return;
    }
    int mid = (l + r) / 2;
    build(k * 2, l, mid);
    build(k * 2 + 1, mid + 1, r);
    tree[k].w = tree[k * 2].w + tree[k * 2 + 1].w;
}

void push(int k)
{
    tree[k * 2].f = max(tree[k * 2].f, tree[k].f);
    tree[k * 2 + 1].f = max(tree[k * 2 + 1].f, tree[k].f);
    tree[k].f = min(tree[k * 2].f, tree[k * 2 + 1].f);
}

void interver(int k, int l, int r, int a, int b)
{
    if(tree[k].f >= 7)
        return;
    if(l == r)
    {
        tree[k].w = (ll)sqrt(1.0 * tree[k].w);
        tree[k].f++;
        return;
    }
    push(k);
    int mid = (l + r) / 2;
    if(a <= mid)
        interver(k * 2, l, mid, a, b);
    if(mid < b)
        interver(k * 2 + 1, mid + 1, r, a, b);
    tree[k].w = tree[k * 2].w + tree[k * 2 + 1].w;
}

void query(int k, int l, int r, int a, int b)
{
    if(l >= a && r <= b)
    {
        ans += tree[k].w;
        return;
    }
    push(k);
    int mid = (l + r) / 2;
    if(a <= mid)
        query(k * 2, l, mid, a, b);
    if(mid < b)
        query(k * 2 + 1, mid + 1, r, a, b);
}

int main()
{
    int n;
    int ca = 0;
    while(~scanf("%d", &n))
    {
        printf("Case #%d:\n", ++ca);
        build(1, 1, n);
        int m;
        scanf("%d", &m);
        while((m--) > 0)
        {
            int t, a, b;
            scanf("%d %d %d", &t, &a, &b);
            if(a > b)
                swap(a, b);
            if(!t)
            {
                interver(1, 1, n, a, b);
            }
            else
            {
                ans = 0;
                query(1, 1, n, a, b);
                printf("%lld\n", ans);
            }
        }
        printf("\n");
    }
    return 0;
}

 

3D视觉革命丨多相机协同拼接技术如何重塑工业检测边界 本文深入探讨了多相机协同拼接技术如何突破单台3D相机的物理局限,实现工业检测从“点面”到“立体”的无死角覆盖。通过拆解系统标定、同步融合等核心技术,并结合锂电池、长轴零件等实战案例,揭示了该技术如何以虚拟“超级视觉传感器”重塑检测边界,提升精度与效率。 阅读详情

相关推荐

PTPX功耗分析实战——从脚本配置到报告解读

本文详细介绍了PTPX功耗分析的全流程,从脚本配置到报告解读,帮助工程师快速掌握芯片设计中的功耗估算技术。文章涵盖了环境搭建、波形文件处理、功耗报告解析等关键环节,并提供了实战经验和优化建议,特别适合需要提升PTPX功耗分析效率的开发者。

weixin_29248313的博客 279

线段树can you answer these queries-------hdu4027

有很多个测试用例,每个用例第一行输出一个整数N,表示数列有N个数,1

2301_80093604的博客 314

M2DGR数据集在主流SLAM框架中的实战配置指南:从ORB-SLAM到FAST-LIO的完整流程

本文提供了M2DGR多传感器数据集在主流SLAM框架中的实战配置指南。详细介绍了从ORB-SLAM、VINS-Mono等视觉/视觉惯性框架,到A-LOAM、FAST-LIO等激光/激光惯性框架的完整配置流程、参数调整要点及常见问题解决方案。通过实际测试对比,分析了各算法在M2DGR数据集上的表现,为机器人定位与建图研究提供了宝贵的实战经验。

k9l0m1的博客 481

HDU 4027 Can you answer these queries? (线段树)

Can you answer these queries?Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others) Total Submission(s): 14079 Accepted Submission(s): 3269Problem Description A lot of

MrBlank的ACM记事本 422

用户存续期价值评估CLV(三) Gamma-Gamma模型 Python模拟

Gamma-Gamma模型 前面已经提到过,Pareto/NBD和BG/NBD模型只对客户存续时间和交易次数进行建模,并不涉及客户未来交易所带来的现金价值。 Gamma-Gamma模型就是对这个问题的一个扩展解决方案。 Gamma-Gamma模型做了如下假设: 从客户角度上来说,交易金额在每个客户的平均交易价值上随机波动。(这一点并不是很有说服力) 所观察到的交易价值均值是隐含价值均值 ????(????) 的非完美计量 交易价值均值在客户中是变化的,即使这个值是稳定的(这个假设非常大) 在客户中的平

weixin_43171270的博客 4368

ADS Layout设计实战:从参数设置到协同仿真

本文详细介绍了ADS Layout设计的完整实战流程,从新建工程、单位设置、个性化偏好配置等基础操作入手,逐步深入到基板参数配置、端口设置与电磁仿真器选择等核心环节。重点阐述了参数化版图设计与扫描优化、以及原理图与Layout协同仿真的高级技巧,并通过一个微带线低通滤波器设计案例,完整演示了从理论到实现的闭环设计方法,帮助工程师高效、准确地完成高频电路版图设计与验证。

weixin_29268637的博客 797

HDU 4027 Can you answer these queries?

题目链接:Problem - 4027 (hdu.edu.cn) A lot of battleships of evil are arranged in a line before the battle. Our commander decides to use our secret weapon to eliminate the battleships. Each of the battleships can be marked a value of endurance. For every atta

m0_55682843的博客 299

Agisoft Metashape相机标定笔记

使用Metashape进行自动相机标定是可能的。(可选:使用打印的棋盘格图案,但需保证它是平坦的且单元格是正方形)。相机标定步骤支持全相机标定矩阵的估计,包含非线性的畸变参数。相机模型的细节请参照附录D——相机模型板块。:在通用的工作流程中,相机标定步骤可以跳过。因为Metashape会在图像定向过程中进行相机自标定。但是,如果定向结果不稳定,例如,由于影像之间缺乏连接点,额外进行单独的相机标定步骤也许是有用的。

天桥飞熊的博客 3974

hdu 4027 线段树

Can you answer these queries? Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others) Total Submission(s): 6849    Accepted Submission(s): 1566 Problem Description

skyline 1113

【UE4】Hierarchical Instanced Static Mesh——一种速度优于Spawn的实例化物体组件

最近需要在场景中实例出很多个相同的模型,位置也很有规律,并且要对它的位置信息进行更新。 但是一个个拖进去实在太麻烦,就发现了Spawn Actor这个蓝图方法,可以实例一个蓝图类在场景中。 但是由于数量较大,实例化的速度太慢,这时发现了一个神奇的组件——Hierarchical Instanced Static Mesh。 新建一个蓝图类,添加该组件,在细节里添加你要实例化的模型对象。 ...

ColorGalaxy 1万+

T113-S3-官方SDK分区添加

本篇文章将展示如何编译T113-S3的SDK以及在sdk中添加用户自定义分区,让您能够轻松地开始在您的项目中使用T113-S3芯片。T113-S3是一款功能强大的嵌入式处理器,适用于各种应用,包括物联网、工业自动化和智能家居等。T113-S3-SDK是特别为T113-S3芯片设计的软件开发工具包(Software Development Kit)。它包含了一系列用于开发和定制嵌入式应用程序的工具、库和示例代码,方便开发者在T113-S3平台上开展软件开发工作。

flypig has a dream! 2359

Can you answer these queries?(HDU-4027)

Problem Description A lot of battleships of evil are arranged in a line before the battle. Our commander decides to use our secret weapon to eliminate the battleships. Each of the battleships can be...

Alex_McAvoy的博客 766

SAP GR(Group Reporting)配置篇(一)

GUI组报表的SAP S4HANA1.1全局参数1.1.1 检查全球系统设置菜单路径组报表的SAP S4HANA>合并的全局设置>检查全球系统设置事务代码CXB3说 明定义好分类账、版本、合并科目表后,重新设置。1.2主数据1.2.1定义合并分类账菜单路径组报表的SAP S4HANA>主数据>定义合并分类账事务代码CXL2说 明复制的Y1合并分类账,集团货币为CNY。此功能对分类账进行设置,应用到集团货币分类。

weixin_43853754的博客 1700

HDU-4027-Can you answer these queries?(暴力线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027 题目大意:n个数,两种操作,0.将[l,r]内的所有数开平方(四舍五入取ll),1.求[l,r]内的sum 思路:线段树板子,首先需要更新到最下面,1开平方还是1,所以一个数最多更新64次,然后记录一下是否需要开平发即可。 ACCode: #include<stdlib.h&gt...

永远鲜红の幼月的博客 324

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

HDU-4027Can you answer these queries?(线段树)

Problem Description A lot of battleships of evil are arranged in a line before the battle. Our commander decides to use our secret weapon to eliminate the battleships. Each of the battleships can be marked a value of endurance. For every attack of our secr

weixin_44313771的博客 2042

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

HDU - Can you answer these queries?(线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others) Problem Description A lot of battleships of evil are arranged in a ...

ityanger的技术栈 2699

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Can you answer these queries? HDU - 4027

Can you answer these querites? HDU - 4027 普通的线段树题,但是有一个问题是,区间更新时,因为必须更新每个点,才能更新区间,那么线段树更新就很慢了,无法使用lazy数组。有一个小技巧是当区间和等于区间长度时,那么说明已经到最好的情况了,不用再修改了。这一步简化后就可以过了 如果写线段树可以像喝水一样自然就好了 1 #include <...

weixin_30886233的博客 123

hdu 4027 Can you answer these queries?

题意:给你N个数,有M个操作,操作有两类,(1)"0 l r",表示将区间[l,r]里的每个数都开根号。(2)"1 l r",表示查询区间[l,r]里所有数的和。 虽然题目给出的数的范围达到了2^63次方,但是,最多开根号7次就会变成1。所以在每次更新的时候,判断,如果这个区间里的所有数被开根号的次数大于7,就不用再往下更新了,其次,因为每个数最多只会有7次开根号,所以在更新的时,可以一直更新到

2253

Can you answer these queries? HDU 4027 线段树

Can you answer these queries? HDU 4027 线段树 题意 是说有从1到编号的船,每个船都有自己战斗值,然后我方有一个秘密武器,可以使得从一段编号内的船的战斗值变为原来值开根号下的值。有两种操作,第一种就是上面描述的那种,第二种就是询问某个区间内的船的战斗值的总和。 解题思路 使用线段树就不用多说了,关键是如果不优化的话会超时,因为每次修改都是需要递归...

weixin_30715523的博客 175

HDU - 4027 Can you answer these queries? (线段树)

题目传送门:HDU - 4027 Can you answer these queries? 题目大意: 存在n艘敌军战舰,每艘战舰都有能量值,我军存在一种秘密武器,每次能够将在该区间内的所 有战舰的能量值开方,现在指挥官想要知道武器的效果,需要你告诉他该区间内敌军战舰的能 量值之和 分析: 该题对区间进行操作,显然是用线段树。两个操作分别是对区间进行开方和区间求和,对区间...

aochan2391的博客 159

hdu4027Can you answer these queries?(线段树)

Can you answer these queries? Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others) Total Submission(s): 13697    Accepted Submission(s): 3150 Problem Descriptio

ACMan 400

HDU4027 Can you answer these queries?(线段树)

题意: 给我们一个数组,有两种操作,第一个是修改区间的值,使其区间的值全部变为原来的平方根

the best 的博客 601

hdu 4027 Can you answer these queries?(线段树)

题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4027 题意:给一个数组序列, 数组长度为100000,现在有两种操作, 一种操作是将某一个固定区间所有数开方(向下取整),另一种操作是询问某个区间的所有数字之和。 看似区间开平方很复杂其实挺简单的,因为10^18开方到1也不用几次所以只要考虑遍历到的区间是否满足区间总和为r-l+1,满足...

awow80285的博客 97

HDU 4027 Can you answer these queries?(线段树+优化)

题目大意: 一段区间,m此操作,0为区间里的数字开方,1为查询区间和。  题解思路: 线段树,开方操作无法传递,只能进行单点操作,但不优化的化会t;想了两种优化,都可以过。 注意此题的l r大小不确定! 第一种:对于ll以内的数,最多开6次方就会到达1,加一个标记数组,如果开放超过6次直接返回。 第二种:如果区间和等于区间长度(区间内数字都为1)直接返回;。 题目没有保证数据一...

Minun 409

Can you answer these queries?(剪枝+线段树)

  HDU 4027 http://acm.hdu.edu.cn/showproblem.php?pid=4027   A lot of battleships of evil are arranged in a line before the battle. Our commander decides to use our secret weapon to eliminate the battl...

桃夭丶的博客 245

HDU 4027 Can you answer these queries?(线段树+思维)

题目链接:https://cn.vjudge.net/problem/HDU-4027 /********* 线段树: 战舰的耐久度 不超过2的63次方 说明只要对某一区间的数 最多开根号64次向下取整 值就变成1,不在变化 这个就是该题的优化部分 ************/ #include<iostream> #include<cstdio> #incl...

T.J的博客 237
上一篇: Binary Land(ZOJ - 3478,BFS + 模拟)
下一篇: Tunnel Warfare (HDU - 1540,这也能用线段树 ?!)
The___Flash
博客等级 码龄8年 79粉丝 223原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值