CF914D
2024-09-06 05:05:45
CF914D
用线段树乱搞一下就行qwq
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int M = 3000001;
int n,m,k,a[M],d[M],al,ar,tp,s;
int gcd(int x,int y)
{
if(!y) return x;
return gcd(y,x%y);
}
void built(int now,int l,int r)
{
if(l==r)
{
d[now]=a[l];
return ;
}
int mid=(l+r)>>1;
built(now*2,l,mid);
built(now*2+1,mid+1,r);
d[now]=gcd(d[now*2],d[now*2+1]);
}
void ask(int now,int l,int r,int L,int R,int k)
{
if(l==r)
{
s++;
return;
}
int mid=(l+r)>>1;
if(L<=l && r<=R)
{
if(d[now]%k==0) return ;
if(d[now*2]%k && d[now*2+1]%k) return s+=2,void();
if(d[now*2]%k) ask(now*2,l,mid,L,R,k);
else ask(now*2+1,mid+1,r,L,R,k);
return ;
}
if(d[now*2]%k && L<=mid) ask(now*2,l,mid,L,R,k);
if(s>1) return;
if(d[now*2+1]%k && R>mid) ask(now*2+1,mid+1,r,L,R,k);
return;
}
void mody(int now,int l,int r,int x,int k)
{
if(l==r) return d[now]=k, void();
int mid=(l+r)>>1;
if(x<=mid) mody(now*2,l,mid,x,k);
else mody(now*2+1,mid+1,r,x,k);
d[now]=gcd(d[now*2],d[now*2+1]);
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
built(1,1,n);
scanf("%d",&m);
for(int i=1;i<=m;i++)
{
scanf("%d",&tp);
if(tp==1)
{
scanf("%d%d%d",&al,&ar,&k);
s=0; ask(1,1,n,al,ar,k);
if(s<2) printf("YES\n");
else printf("NO\n");
}
else
{
scanf("%d%d",&al,&ar);
mody(1,1,n,al,ar);
}
}
}
最新文章
- 查找数据库中重复的值的数据,having的使用,count(1),sum等聚会函数
- centos关闭防火墙
- shell 脚本杀死后台由php脚本控制运行的所有php脚本和java程序
- Git使用命令
- js中如何去获取外部css样式
- SQLSERVER 2012之AlwaysOn -- 同步模式下的网卡性能优化
- Linq中查询List组合相同值数量大于1
- WinForm TextBox 焦点停留到文本最后
- System.ArgumentOutOfRangeException: 年、月和日参数描述无法表示的 DateTime。
- 51nod1158 全是1的最大子矩阵
- 使用generator自动生成Mybatis映射配置文件
- spring中Bean的注入类型
- windows 下Python import 导入自定义模块
- 神经网络中误差反向传播(back propagation)算法的工作原理
- Android4.0 以后不允许在主线程进行网络连接
- (转)linux bash shell 入门教程
- RH033读书笔记(7)-Lab 8 Introduction to String Processing
- 【CSS】display: inline-block,内联元素
- 【LeetCode】258. Add Digits
- Python源码分析
热门文章
- Django上线部署之uWSGI
- 消息 245,级别 16,状态 1,第 1 行 在将 varchar 值 &#39;2,8&#39; 转换成数据类型 int 时失败。
- 【记录】elasticsearch 注解
- java环境--JDK和Tomcat在linux上的安装和配置
- 力扣——Linked List Cycle(环形链表) python实现
- bootstrap.yml
- Servlet中如何获取用户提交的查询参数或表单数据?
- 本地MongoDB服务开启与连接本地以及远程服务器MongoDB服务
- 使用KEIL C51实现的简单合作式多任务操作系统内核(单片机实现版本)
- django 框架下的路由分发