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);
}
}
}

最新文章

  1. 查找数据库中重复的值的数据,having的使用,count(1),sum等聚会函数
  2. centos关闭防火墙
  3. shell 脚本杀死后台由php脚本控制运行的所有php脚本和java程序
  4. Git使用命令
  5. js中如何去获取外部css样式
  6. SQLSERVER 2012之AlwaysOn -- 同步模式下的网卡性能优化
  7. Linq中查询List组合相同值数量大于1
  8. WinForm TextBox 焦点停留到文本最后
  9. System.ArgumentOutOfRangeException: 年、月和日参数描述无法表示的 DateTime。
  10. 51nod1158 全是1的最大子矩阵
  11. 使用generator自动生成Mybatis映射配置文件
  12. spring中Bean的注入类型
  13. windows 下Python import 导入自定义模块
  14. 神经网络中误差反向传播(back propagation)算法的工作原理
  15. Android4.0 以后不允许在主线程进行网络连接
  16. (转)linux bash shell 入门教程
  17. RH033读书笔记(7)-Lab 8 Introduction to String Processing
  18. 【CSS】display: inline-block,内联元素
  19. 【LeetCode】258. Add Digits
  20. Python源码分析

热门文章

  1. Django上线部署之uWSGI
  2. 消息 245,级别 16,状态 1,第 1 行 在将 varchar 值 &#39;2,8&#39; 转换成数据类型 int 时失败。
  3. 【记录】elasticsearch 注解
  4. java环境--JDK和Tomcat在linux上的安装和配置
  5. 力扣——Linked List Cycle(环形链表) python实现
  6. bootstrap.yml
  7. Servlet中如何获取用户提交的查询参数或表单数据?
  8. 本地MongoDB服务开启与连接本地以及远程服务器MongoDB服务
  9. 使用KEIL C51实现的简单合作式多任务操作系统内核(单片机实现版本)
  10. django 框架下的路由分发