hdu 4630 多校第二场 树状数组,离线处理
2013-07-31 18:01
531 查看
1-n的排列,询问(l,r)之间的最大的gcd(a,b)
(1)离线处理,询问对按右端点排序,边插入边查询,使在处理(l,r)时,(l,r)内的该插入的已经插入
(2)枚举每个数的约数,记录到当前位置为止,上一个x的倍数出现的位置prev(x)
(1)离线处理,询问对按右端点排序,边插入边查询,使在处理(l,r)时,(l,r)内的该插入的已经插入
(2)枚举每个数的约数,记录到当前位置为止,上一个x的倍数出现的位置prev(x)
#include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <cstring> using namespace std; #define N 100500 struct Q { int l,r,idx; }que ; int b ,ans ,n,q,a ; bool cmp(Q ll, Q rr) { return ll.r<rr.r; } void update(int x,int val) { while(x) { b[x]=max(b[x],val); x-=x&(-x); } } int query(int x) { int res=0; while(x<=n) { res=max(res,b[x]); x+=x&(-x); } return res; } vector<int>divs ; int pre ; int main () { for(int i=1;i<N;++i) for(int j=i;j<N;j+=i) divs[j].push_back(i); int T;scanf("%d",&T); while(T--) { memset(b,0,sizeof(b)); memset(pre,0,sizeof(pre)); scanf("%d",&n); for(int i=1;i<=n;++i) scanf("%d",&a[i]); scanf("%d",&q); int u,v; for(int i=1;i<=q;++i) { scanf("%d%d",&u,&v); que[i].l=u;que[i].r=v;que[i].idx=i; } sort(que+1,que+1+q,cmp); for(int i=1,k=1;i<=n;++i) { int x=a[i]; for(int j=0;j<divs[x].size();++j) { int pp=divs[x][j]; if(pre[pp]) update(pre[pp],pp); pre[pp]=i; } while(que[k].r==i&&k<=q) { ans[que[k].idx]=query(que[k].l); k++; } } for(int i=1;i<=q;++i) printf("%d\n",ans[i]); } return 0; }
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/8E6AF4773D62477AAF69471A02715B22/clipboard.png)
相关文章推荐
- HDU 4630 No Pain No Game(2013多校3 1010题 离线处理+树状数组求最值)
- hdu-4630-No Pain No Game-(树状数组,离线处理)
- HDU 4417 —— Super Mario(树状数组,离散化,离线处理)
- HDU 3333 Turing Tree(树状数组离线处理)
- hdu 5057 Argestes and Sequence(离线处理树状数组)
- HDU 4417 Super Mario (树状数组、离线处理)
- HDU 4417 Super Mario(树状数组离线处理 or 主席树)
- HDU 3874 树状数组 + 离线处理
- HDU 3874 Necklace 树状数组 + 离线处理
- hdu 3874 树状数组 离线处理
- HDU 4602 Magic Ball Game(离线处理,树状数组,dfs)
- hdu 4630 No Pain No Game(树状数组离线操作)
- HDU 3874 Necklace(树状数组离线处理)
- HDU 3874 Necklace (树状数组 | 线段树 的离线处理)
- HDU 4638 多校第四场1007 离线询问,树状数组||线段树维护
- HDU 3874 Necklace(树状数组离线处理)
- hdu 4417 树状数组 离线处理
- HDU 4777 Rabbit Kingdom(树状数组离线处理)
- HDU 4777 Rabbit Kingdom(树状数组离线处理)
- BZOJ 1878 SDOI 2009 HH的项链 树状数组 + 离线处理