hdu 5475(线段树)

hdu acm1166线段树 hdu 1166线段树代码 立即下载

题意:

两个操作:① 当为1时 ,乘上后面的数

                  ② 当为2时,除以第x次乘的数

还说了2操作后面的n不会重复(就这明显看出线段树- -,然而并没有看出来,还是靠的队友)

1则对每个节点赋值,2则将相应的点改为一,每次操作后进行一次询问


#include <cstdio>
#define MAXN 100010
using namespace std;

long long m,ans[MAXN],q[MAXN],tree[MAXN*50];
int n;
long long build(int l,int r,int rt)
{
    if(l==r) return(tree[rt]=q[l]>1?q[l]:1);
    int mid=(l+r)/2;
    return tree[rt]=(build(l,mid,rt*2)*build(mid+1,r,rt*2+1))%m;
}
long long change(int l,int r,int rt,int x)
{
    if(l==r)return tree[rt]=1;
    int mid=(l+r)/2;
    if(x<=mid)return tree[rt]=(change(l,mid,rt*2,x)*tree[rt*2+1])%m;
    else return tree[rt]=(tree[rt*2]*change(mid+1,r,rt*2+1,x))%m;
}
long long query(int l,int r,int rt,int x)
{
    if(r==x)return tree[rt];
    int mid=(l+r)/2;
    if(x>mid)return (tree[rt*2]*query(mid+1,r,rt*2+1,x))%m;
    else return query(l,mid,rt*2,x);
}
int main()
{
    int T;
    scanf("%d",&T);
    for(int t=1; t<=T; ++t)
    {
        scanf("%d%lld",&n,&m);
        int op;
        ans[0]=1;
        for(int i=1; i<=n; i++)
        {
            ans[i]=1;
            scanf("%d%lld",&op,&q[i]);
            q[i]%=m;if(op==2)q[i]=-q[i];
        }
        build(1,n,1);
        printf("Case #%d:\n",t);
        for(int i=1; i<=n; i++)
        {
            if(q[i]>=0)ans[i]=(ans[i-1]*q[i])%m;
            else
            {
                change(1,n,1,-q[i]);
                ans[i]=query(1,n,1,i);
            }
            printf("%lld\n",ans[i]);
        }
    }
    return 0;
}




Docker深度详解:从原理到实践的全方位指南 本文深入解析了Docker容器化技术的核心原理与实战应用。主要内容包括:1) Docker核心架构与优势,对比容器与虚拟机的关键差异;2) 企业级部署方案,涵盖离线安装与多镜像源配置;3) 高级镜像构建技术,如参数化构建、缓存优化及安全扫描;4) 容器生命周期管理,包括健康检查、资源限制及数据持久化方案。文章提供了丰富的代码示例和生产级配置建议,如使用Trivy进行安全扫描、精确控制容器资源等技术细节,帮助开发者全面掌握现代容器化技术。 阅读详情

相关推荐

非线性功率放大器对QAM传输BER性能的影响及补偿

1、线性功率放大器对传输性能的影响 为表述非线性功率放大器对传输性能的影响,以Saleh模型进行观察。具体来说,在QAM调制器之后添加一个非线性模块,使调制后的波形经历AM / AM和AM / PM转换。 在Saleh模型中,转换用四个参数表示,即AM / AM转换为????a和????a,AM / PM转换为????p和????p。 在Saleh模型中,AM / AM和AM / PM方程以输入电压u的大小表示为: 式中,FAM / AM是AM / AM转换的输出电压与输入电压的关系,而FAM

太阳帅帅的博客 2080

一篇文章搞懂扫描线算法(线段树) HDU1542

怨念 这个专题其实不难,但是翻了一圈网上的博客,写得是云里雾里,有些一上来概念也不解释,直接就讲线段树,有些放个图直接开始糊代码的,真是佛了,打算用一篇博客把这个问题讲得非常明白。 前序知识 能看懂这篇文章需要: 线段树基础知识。 线段树染色问题基本概念。 离散化操作 目标 首先这个扫描线算法解决的是什么问题? 主要解决的是ACM中的 矩形面积问题 矩形周长问题 多边形面积问题 这篇...

小水的博客 9519

vmware vsphere5---部署vCSA(VMware vCenter Server)附带第二阶段安装报错解决方案

因为这份文档我是边做边写的,遇到问题重新装了好几次所以IP会很乱ESXI主机为192.168.20.10VCSA为192.168.20.7,后台为192.168.20.7:5480后期请自行对应,后面的192.168.20.57请对应192.168.20.7,或根据自己的来。

m0_70212665的博客 5710

线段树之扫描线(HDU-1542)

线段树之扫描线,主要是为了解决平面矩阵并以及空间立体交的问题。

月巴虫丰博客 617

水文模型大合集---SWAT模型、VIC模型、HEC-HMS模型、HSPF模型、FVCOM模型、Delft3D模型、HYPE模型.......

1.1 面源污染概要1.2 SWAT模型及应用1.3 SWAT模型原理1.4 SWAT模型输入文件1.5 ArcGIS与SWAT关系。

jwwkyjspt的博客 4357

RP Fiber Power 版本

RP Fiber Power的版本历史 该软件一直受到多年来广泛的发展计划,这大大扩展了其功能,以及用户界面的质量。 V1 这是第1个版本。 它仅限于光纤激光器和放大器的连续波计算,并且只能通过脚本进行控制。 V2 版本2引入了交互式表单。 至少对于更简单的模拟,现在可以简单地通过填写表单来工作,而V1必须通过脚本来控制。 例如,屏幕截图显示了输入某些信号参数的表单: 当您基于这些表单执行计算时,程序将根据您的表单输入自动编写脚本文件,然后执行该脚本。如果您需要编写脚本以获得更大的灵活性,可以稍后查看该脚

Asdmath的博客 2431

HDU 1754(线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754 区间求和问题~~~ 代码: #include <stdio.h> #define N 200002 #define M 5002 #define L(x) ((x)<<1) #define R(x) ((x)<<1|1) ty...

weixin_30662849的博客 77

某二级支行网络的设计与实现——配置脚本(1)

【代码】某二级支行网络的设计与实现——配置脚本(1)

u010311846的博客 577

HDU1556 - 线段树基础

Question: 给出一个序列,我们每次都可以给一段子序列进行一次操作 序列的数据量是n(n Solution: 首先,为了更好的理解我们的线段树的优化措施 我们先来考虑一下我们的朴素的做法 对于这道题,我们的做法无非就是开辟一个一维数组,每次对那个区间进行操作,我们就对区间范围呢你的所有的数据都统一进行累加操作 最后,我们将以为数组的值全部输出就好了 该算法的时间复杂度

72 73 76 89 82 84 89 81 2195

机器人中的数值优化(十四)——罚函数法(Penalty Method)、障碍函数法(Barrier Method)、拉格朗日松弛法(Lagrangian Relaxation)

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例

慕羽★的博客 5216

全面解读AI Infra:架构、生态与未来趋势

文章摘要 大模型时代下,AI基础设施(AI Infra)成为关键技术基建,涵盖从数据准备到模型服务的全栈技术体系。文章系统解构了AI Infra的四层架构(硬件资源层、资源管理调度层、开发框架层、平台工具层),并分析了全球AI Infra生态图谱,包括云计算巨头、芯片厂商等全栈服务商,以及中国特色的多元竞合格局。通过对比Data Infra与AI Infra的核心差异,指出AI Infra更关注智能应用的规模化与自动化。文章还探讨了从传统数据设施向AI基础设施的转型路径,强调自主可控、软硬协同等发展趋势,为

技术引领业务创新 608

Hdu 2795 线段树的运用

线段树

Mr_13的博客 986

大数据安全 | 期末复习(上)| 补档

大数据定义:无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

知识库搭建ing 2588

HDU5475:线段树

HDU5475 题解: 因为有模所以不能轻易除。 逆元?可是不互质呢? 直接线段树处理。n次操作,每个叶子结点初始化为1,如果乘以某个数x,这个节点边为x;除以某个数,叶子结点变为1,维持区间的乘积。求的是node[1].sum。 代码: #include &lt;bits/stdc++.h&gt; using namespace std; int const N = 100000 +...

FlyingJack 154

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

hdu 5475 An easy problem(线段树)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5475 思路: 这题直接模拟会出问题:因为他要求的只是输出结果取模。如果计算过程中取模,会导致x变化,令后续的操作得出的答案出现问题。 如果计算过程中不取模,会溢出。 所以我们考虑另一种方法: 对于每次操作,我们可以用一个数组将他的值存起来。如果是1操作,就令a[i]变为要乘的数y。如

hahahaha 719

老版QQ原生表情gif动态

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

hdu 5475 An easy problem(线段树)

题目链接:hdu 5475 An easy problem解题思路单点修改。貌似直接暴力都可以过,数据很弱。代码#include <cstdio> #include <cstring> #include <algorithm>using namespace std; const int maxn = 1e5 + 5; #define lson(x) ((x)<<1) #define rson(x)

不慌不忙、不急不躁 987

hdu5475 An easy problem 线段树

res=1; 1 . x==1,y -> res*=y; 2. x==2, n -> res/=yn

u014445884的专栏 403

hdu 5475 An easy problem(暴力 || 线段树区间单点更新)

http://acm.hdu.edu.cn/showproblem.php?pid=5475 An easy problem Time Limit: 8000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 755 Accepted Submission(s)...

deyou1988的专栏 135

HDU-5475-An easy problem【线段树】

题目大意: 两种操作: 1.输入 1 n, 表示 x 乘上一个数字x 2.输入 2 n, 表示 x 除以输入的第x个数字 求每步操作结束x这个数字的值 题目思路:线段树,m个数字,求相当于m个结点的乘积。 初始化节点的值全部为1。 第一种操作:第i个节点的值改为n 第二种操作:第n个节点的值改为1 注意线段树中需要取模的地方。。。

Linoy 581

hdu5475 An easy problem(线段树+单点更新+区间求积)

hdu5475题目给你n个操作,初始时有个1,每次操作给一个数u,操作1表示乘以u并输出结果,操作2表示除以第u的操作乘的数。不仅如此,要输出的是取余结果。思路想当年。。,想暴力,但取余是没有除法的,如果一个个乘再取余会超时,应该用线段树,存的就是每次操作乘的数,如果1操作就简单的加入,如果2操作就把第u次操作变成1,最后询问区间的乘积再取余。。。代码#include<iostream> #incl

天道酬勤 443

HDU5475线段树定点更新

这题就是一个线段树的定点更新,把线段树节点初始值设为一,然后输入为一时逐个按顺序添加更新, 输入为2时按照输入的y定点更新就行了,然后向上维护积值。 #include #include #include #include #include #define LL long long using namespace std; #define lson l, mid, root<<1 #define

ONE_PIECE的专栏 1122

hdu 5475 An easy problem (线段树)

传送门http://acm.hdu.edu.cn/showproblem.php?pid=5475 题意: 给定一个x,初值为1 有以下两种操作: 1、乘以k 2、除以第k次操作的所乘的值 线段树单点更新问题,查询的时候只需要输出v[1]的值即可。 具体看下代码就好了。 另外,这题xjb暴力可以卡时过掉,亲测。 (其实本来并不想写这个题解,这题真的是An easy

To be excellent! 386

hdu-5475 An easy problem---线段树+取模

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5475 题目大意: 给X赋初值1,然后给Q个操作,每个操作对应一个整数M; 如果操作是1则将X乘以对应的M, 如果是2则除以第M次操作对应的M',求每次操作后X的值对给定值取摸的结果。 解题思路: 第一眼看这道题,以为就是水题,直接模拟暴力呀,但是发现这样是错误的,因为这里有除法,对除法...

weixin_34302561的博客 206

hdu 5475(线段树(锻炼思维))

题意。初始X=1; 给n,mod   ,表示n次操作 操作1格式 : 1  b 表示用x乘上b 操作2格式: 2   n 表示 当前x除掉第n次 "1操作” 的数 每次操作输出一个答案,输出的答案是要对mod取模 由于有除法所以我们不能每一步取模,因为对于每一个数对mod并不是都存在逆元 一直在想什么办法能过。。。最后卡死了。。 赛后才知道 直接就是一个长度为n的乘积线段树 每个

Everything can be done! 365

HDU-5475 线段树求区间乘积

一、内容 题意: 有一个初始值为num = 1,给定2种操作,输入1 x代表 num = num * x,输入2 x代表 num 除以第x次的输入的x值。 二、思路 用线段树维护区间的乘积。每次操作的次数是线段树所在区间,当输入2 x时只需要把x位置的数修改为1就可以了。 三、代码 #include <cstdio> #include <cstring> typede...

Tizzi的博客 932

HDU5475 An easy problem 线段树单点更新

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5475 题目大意:给出一个数X,有两种操作:1 y表示将X乘上y,2 n表示将X除上第n个操作的y值(保证第n个操作存在且为1操作),给出Q次操作,输出每次操作之后的X%M的值。 分析:取模操作只是在输出X时才进行,运算时并不取模,故直接做显然是不行的(java大整数做的当我没说),

AC_Gibson的专栏 628
上一篇: hdu 5478 (数论)
下一篇: hdu 5476 (计算几何)
Tyuio28
博客等级 码龄11年 12粉丝 279原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值