当前位置: 首页 > news >正文

BZOJ5334:[TJOI2018]数学计算——题解

https://www.lydsy.com/JudgeOnline/problem.php?id=5334

小豆现在有一个数x,初始值为1. 小豆有Q次操作,操作有两种类型: 
1 m: x = x  *  m ,输出 x%mod;
2 pos: x = x /  第pos次操作所乘的数(保证第pos次操作一定为类型1,对于每一个类型1 的操作至多会被除一次),输出x%mod

都懒得写题解了……就对着时间建一个线段树,区间维护乘积即可。

真·大水题。

#include<cmath>
#include<queue>
#include<cstdio>
#include<cctype>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int Q=1e5+5;
inline ll read(){
    ll X=0,w=0;char ch=0;
    while(!isdigit(ch)){w|=ch=='-';ch=getchar();}
    while(isdigit(ch))X=(X<<3)+(X<<1)+(ch^48),ch=getchar();
    return w?-X:X;
}
int q;
ll p,tr[Q*4];
inline void upt(int a){tr[a]=tr[a<<1]*tr[a<<1|1]%p;}
void build(int a,int l,int r){
    if(l==r){
    tr[a]=1;return;
    }
    int mid=(l+r)>>1;
    build(a<<1,l,mid);build(a<<1|1,mid+1,r);
    upt(a);
}
void mdy(int a,int l,int r,int x,ll y){
    if(l==r){
    tr[a]=y;
    return;
    }
    int mid=(l+r)>>1;
    if(x<=mid)mdy(a<<1,l,mid,x,y);
    else mdy(a<<1|1,mid+1,r,x,y);
    upt(a);
}
int main(){
    int T=read();
    while(T--){
    q=read(),p=read();
    build(1,1,q);
    for(int i=1;i<=q;i++){
        int op=read();
        if(op==1){
        ll m=read();
        mdy(1,1,q,i,m);
        }else{
        int pos=read();
        mdy(1,1,q,pos,1);
        }
        printf("%lld\n",tr[1]);
    }
    }
    return 0;
}

+++++++++++++++++++++++++++++++++++++++++++

+本文作者:luyouqi233。               +

+欢迎访问我的博客:http://www.cnblogs.com/luyouqi233/ +

+++++++++++++++++++++++++++++++++++++++++++

转载于:https://www.cnblogs.com/luyouqi233/p/9059259.html

相关文章:

  • LVS/NAT + keepalived负载均衡实现
  • 学号 2017-2018-20172309 《程序设计与数据结构》第10周学习总结
  • laravel 视模板情况加载视图
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • 浏览器里的文件管理小系统filedir.php,返回上级目录时有个“浏览”链接总掉了...
  • 数据可视化Seaborn从零开始学习教程(二) 颜色调控篇
  • BaseResponse公共响应类
  • js正则验证代码库
  • 网络打印机拒绝访问,无法连接处理方法汇总
  • 内因是推动发展的主导因素
  • 在eclipse中配置c++ 开发环境的记录
  • 并发、并行与多线程关系
  • oracle表结构及数据的导出导入
  • angularjs4+ionic3集成搭建
  • 【C#】获取我的电脑的名字,如This PC、这台计算机
  • “大数据应用场景”之隔壁老王(连载四)
  • 2017-08-04 前端日报
  • classpath对获取配置文件的影响
  • CODING 缺陷管理功能正式开始公测
  • cookie和session
  • go语言学习初探(一)
  • laravel 用artisan创建自己的模板
  • markdown编辑器简评
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • SpiderData 2019年2月13日 DApp数据排行榜
  • SQLServer插入数据
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 前端设计模式
  • 实习面试笔记
  • 微服务核心架构梳理
  • Linux权限管理(week1_day5)--技术流ken
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (待修改)PyG安装步骤
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转) Android中ViewStub组件使用
  • (转)3D模板阴影原理
  • (转)ABI是什么
  • (转)ObjectiveC 深浅拷贝学习
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • ./configure、make、make install 命令
  • .CSS-hover 的解释
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .libPaths()设置包加载目录
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .Mobi域名介绍
  • .net FrameWork简介,数组,枚举
  • .NET构架之我见
  • .Net转前端开发-启航篇,如何定制博客园主题
  • @RequestMapping用法详解
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [<MySQL优化总结>]
  • [AutoSAR系列] 1.3 AutoSar 架构