1006

hdu4902

 #include <iostream>
#include<stdio.h>
#include<vector>
#include<queue>
#include<stack>
#include<string.h>
#include<algorithm>
using namespace std;
#define LL long long
#define N 100010
#define lcm(a,b) (a*b/gcd(a,b))
int gcd(int a,int b)
{
if(b>a)swap(a,b);
return b==?a:gcd(b,a%b);
}
int s[N<<],lz[N<<],a[N],f[N<<];
void up(int w)
{
s[w] = max(s[w<<],s[w<<|]);
if(s[w<<]==s[w<<|]&&f[w<<]&&f[w<<|])
f[w] = ;
else f[w] = ;
}
void build(int l,int r,int w)
{
lz[w] = -;
f[w] = ;
if(l==r)
{
s[w] = a[l];
f[w] = ;
return ;
}
int m = (l+r)>>;
build(l,m,w<<);
build(m+,r,w<<|);
up(w);
}
void down(int w,int m)
{
if(lz[w]!=-)
{
s[w<<] = s[w<<|] = lz[w<<] = lz[w<<|] = lz[w];
lz[w] = -;
}
}
void update(int a,int b,int d,int l,int r,int w)
{
if(a<=l&&b>=r)
{
if(s[w]>d)
{
if(f[w]==)
{
s[w] = lz[w] = gcd(s[w],d);
return ;
}
if(l==r)
{
s[w] = gcd(s[w],d);
return ;
}
down(w,r-l+);
int m = (l+r)>>;
update(a,b,d,l,m,w<<);
update(a,b,d,m+,r,w<<|);
up(w);
}
return ;
}
down(w,r-l+);
int m = (l+r)>>;
if(a<=m)
update(a,b,d,l,m,w<<);
if(b>m)
update(a,b,d,m+,r,w<<|);
up(w);
}
void change(int a,int b,int d,int l,int r,int w)
{
if(a<=l&&b>=r)
{
lz[w] = d;
s[w] = d;
f[w] = ;
return ;
}
down(w,r-l+);
int m = (l+r)>>;
if(a<=m)
change(a,b,d,l,m,w<<);
if(b>m)
change(a,b,d,m+,r,w<<|);
up(w);
}
int query(int p,int l,int r,int w)
{
if(l==r)
{
return s[w];
}
down(w,r-l+);
int m = (l+r)>>;
if(p<=m) return query(p,l,m,w<<);
else return query(p,m+,r,w<<|);
}
int main()
{
int n,i;
int t;
cin>>t;
while(t--)
{
scanf("%d",&n);
for(i = ; i<= n ;i++)
scanf("%d",&a[i]);
build(,n,);
int m;
scanf("%d",&m);
while(m--)
{
int x,y,z,d;
scanf("%d%d%d%d",&d,&x,&y,&z);
if(d==)
{
change(x,y,z,,n,);
}
else if(d==)
update(x,y,z,,n,);
}
for(i = ; i<=n; i++)
printf("%d ",query(i,,n,));
puts("");
}
return ;
}

2014 Multi-University Training Contest 4的更多相关文章

  1. HDU4888 Redraw Beautiful Drawings(2014 Multi-University Training Contest 3)

    Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  2. hdu 4946 2014 Multi-University Training Contest 8

    Area of Mushroom Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  3. 2014 Multi-University Training Contest 9#11

    2014 Multi-University Training Contest 9#11 Killing MonstersTime Limit: 2000/1000 MS (Java/Others)   ...

  4. 2014 Multi-University Training Contest 9#6

    2014 Multi-University Training Contest 9#6 Fast Matrix CalculationTime Limit: 2000/1000 MS (Java/Oth ...

  5. 2014 Multi-University Training Contest 1/HDU4861_Couple doubi(数论/法)

    解题报告 两人轮流取球,大的人赢,,, 贴官方题解,,,反正我看不懂.,,先留着理解 关于费马小定理 关于原根 找规律找到的,,,sad,,, 非常easy找到循环节为p-1,每个循环节中有一个非零的 ...

  6. 2014 Multi-University Training Contest 1/HDU4864_Task(贪心)

    解题报告 题意,有n个机器.m个任务. 每一个机器至多能完毕一个任务.对于每一个机器,有一个最大执行时间Ti和等级Li,对于每一个任务,也有一个执行时间Tj和等级Lj.仅仅有当Ti>=Tj且Li ...

  7. hdu 4937 2014 Multi-University Training Contest 7 1003

    Lucky Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) T ...

  8. hdu 4941 2014 Multi-University Training Contest 7 1007

    Magical Forest Time Limit: 24000/12000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Other ...

  9. hdu 4939 2014 Multi-University Training Contest 7 1005

    Stupid Tower Defense Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/ ...

  10. hdu 4930 Fighting the Landlords--2014 Multi-University Training Contest 6

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4930 Fighting the Landlords Time Limit: 2000/1000 MS ...

随机推荐

  1. JSONArray遍历

    java代码 方法一: 1 2 3 4 5 JSONArray array = JSONArray.fromObject(data); for (Object object : array) {    ...

  2. php socket 客户端代码

    <?php class SendDevAction{ //log日志文件 private $logDevFile = ""; //日志字符串 private $logStr ...

  3. 深入浅出Java垃圾回收机制

    JVM学习笔记 JVM内存管理和JVM垃圾回收 JVM内存组成结构 JVM内存结构由堆.栈.本地方法栈.方法区等部分组成,结构图如下所示: 1)堆 所有通过new创建的对象的内存都在堆中分配,其大小可 ...

  4. js&jq 发送验证码倒计时

    <input  type="text"   name=''  id="btn"> //发送验证码倒计时var wait=30; function t ...

  5. Unity-Animator深入系列---控制IK

    回到 Animator深入系列总目录 要让代码控制IK,需要先在Animator中打开IK pass 然后,和IK相关的代码需要放到相应的函数中去: void OnAnimatorIK() { Deb ...

  6. C++的几种强制类型转换

    有时我们希望显式地将对象强制类型转换成另外一种类型.例如,如果想在下面的代码中执行浮点数除法: int i, j; double slope = i / j; 就要使用某种方法将i和/或j显式地转换成 ...

  7. Poj(1459),最大流,EK算法

    题目链接:http://poj.org/problem?id=1459 Power Network Time Limit: 2000MS   Memory Limit: 32768K Total Su ...

  8. 谷歌Chrome浏览器如何设置网页的默认编码方法

    设置->高级->自定义字体->编码->utf-8

  9. InputStream和Reader区别

    InputStream,OutputStream  前者为字节输入流,后者为字节输出流.Reader   Writer  前者为字符输入流,后者为字符输出流. 四个均为抽象类.fileInputStr ...

  10. 取出一个int的每一位,用算法

    int a=1234: int current: while(a) { current=a%10://4 cout<<current; a=a%10; }