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

牛客-热身小游戏

题目链接:热身小游戏

第一种写法:线段树

介绍第二种写法:并查集

对于一些已经查询过的点,我们可以往后跳,进行路径压缩,他们的父亲为下一个点。

a数组记录[ l , r ] 之间的乘积,初始值为1。

代码:

#include <bits/stdc++.h>
#define int long long
#define fi first
#define se second
using namespace std;
const int inf = 0x3f3f3f3f3f3f3f3f;
const int N = 3e5+5;
const int mod = 1e9+7;
int q;
int pre[N];
int a[N];int root(int x){return pre[x]=(pre[x]==x)?x:root(pre[x]);
}int qmi(int a,int b){int res = 1;while(b){if(b&1)res = (res*a)%mod;b>>=1;a=(a*a)%mod;}return res;
}void solve(){int ans = 1;cin>>q;for(int i=1;i<=q;i++){a[i] = 1;pre[i] = i;}for(int i=1;i<=q;i++){int op;cin>>op;if(op==1){int x;cin>>x;a[i] = x;ans = ans * x %mod;}else if(op==2){int l,r;cin>>l>>r;int x = l;while(root(x)<=r){x = root(x);ans = ans * qmi(a[x],mod-2) %mod;pre[x] = x+1;}}else{cout<<ans<<"\n";}}}signed main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int t=1;while(t--){solve();}return 0;
}

http://www.lryc.cn/news/420906.html

相关文章:

  • Python 深度学习调试问题
  • linux恶意请求
  • Java 反射笔记总结(油管)
  • HTML表格、表单、标签、CSS、选择器
  • 【javaWeb技术】·外卖点餐小程序(脚手架学习1·数据库)
  • LVS 实现四层负载均衡项目实战--DR模式
  • Python与Qt的对应版本
  • WPF篇(12)-Image图像控件+GroupBox标题容器控件
  • LeetCode 热题 HOT 100 (024/100)【宇宙最简单版】
  • 如何在AWS上进行 环境迁移
  • 云服务器和物理服务器的优缺点对比
  • postgreSQL16添加审计功能
  • 如何应用OceanBase 的实时SQL诊断,解决AP场景下的痛点
  • 【数据结构】—— 栈
  • Kafka服务端日志详解
  • C++ 数据语义学——进程内存空间布局
  • 【数据结构】六、图:2.邻接矩阵、邻接表(有向图、无向图、带权图)
  • 财务会计与管理会计(三)
  • 【数据结构和算法】(基础篇三)——栈和队列
  • Linux截图工具gsnap移植arm平台过程记录
  • 密码学知识点02
  • 实现Pytest测试用例按顺序循环执行多次
  • SVN工作原理和使用示例
  • 云服务器部署Java+Vue前后端分离项目
  • C++的7种设计模式原则
  • 24.8.5数据结构|栈
  • LeetCode算法题训练
  • Python | Leetcode Python题解之第326题3的幂
  • 手机CPU性能天梯图(2024年8月),含安兔兔/GB6/3DMark跑分
  • 通过实际的例子和代码演示,可以更好地理解 `optional` 的使用方式和应用场景