考虑根号分块。对于<√3e5的模数,每加入一个数就暴力更新最小值;对于>√3e5的模数,由于最多被分成√3e5块,查询时对每一块找最小值,这用一些正常的DS显然可以做到log,但不太跑得过。考虑并查集在序列上的奇技淫巧。加点不太能做,考虑离线改成删点。并查集维护下一个未删除的点即可。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N 100010
#define M 300000
int m,n,q,a[N],b[N],mn[N],ans[N],fa[N*];
bool flag[N*];
const int block=;
int find(int x){return fa[x]==x?x:fa[x]=find(fa[x]);}
int main()
{
#ifndef ONLINE_JUDGE
freopen("bzoj4320.in","r",stdin);
freopen("bzoj4320.out","w",stdout);
const char LL[]="%I64d\n";
#else
const char LL[]="%lld\n";
#endif
m=read();
for (int i=;i<=block;i++) mn[i]=i;
while (m--)
{
char c=getchar();while (c!='A'&&c!='B') c=getchar();
a[++n]=read();
if (c=='A')
{
b[n]=;flag[a[n]]=;
for (int i=;i<=block;i++)
mn[i]=min(mn[i],a[n]%i);
}
else if (a[n]<=block) ans[n]=mn[a[n]];
}
fa[M+]=M+;
for (int i=M;i>=;i--) if (flag[i]) fa[i]=i;else fa[i]=fa[i+];
for (int i=n;i>=;i--)
if (b[i]) fa[a[i]]=find(a[i]+);
else if (a[i]>block)
{
ans[i]=M+;
for (int j=;j<=M;j+=a[i])
{
int p=find(j);
if (p<min(j+a[i],M+)) ans[i]=min(ans[i],p%a[i]);
}
}
for (int i=;i<=n;i++) if (!b[i]) printf("%d\n",ans[i]);
return ;
}

最新文章

  1. MyEclipse 及Tomcate 安装 配置
  2. 过滤器中的chain.doFilter(request,response)
  3. C++ ODB 框架(未实践使用)
  4. 禁用gridview默认点击效果
  5. HDU-4515 小Q系列故事——世界上最遥远的距离
  6. Mirantis Certification summary
  7. Delphi启动/停止Windows服务,启动类型修改为&quot;自动&quot;
  8. oracle_constraint的用处
  9. 2016年团体程序设计天梯赛-决赛 L1-8. Left-pad(20)
  10. 使用clone
  11. MyBatis与MySQL交互
  12. Thread.yield和join方法
  13. 消息队列(MQ)
  14. MVC Scaffolding SmartCode-Engine 更新
  15. python(十一)面向切面编程AOP和装饰器
  16. mysql配置utf8_mb4
  17. HDU 4612 Warm up (边双连通分量+缩点+树的直径)
  18. mysql时间日期函数总结(转)
  19. 字符串匹配的KMP算法-16张图片看明白
  20. List原理

热门文章

  1. frame3.5安装出错
  2. 浅谈linux系统中pdf文件的默认打开方式
  3. 主流浏览器内核,以及CSS3前缀识别码
  4. zookeeper环境搭建(Linux)
  5. BZOJ:2038: [2009国家集训队]小Z的袜子(hose)(莫队算法模板)
  6. python2.7练习小例子(二十五)
  7. [Jmeter]jmeter数据库性能测试配置
  8. python语法图
  9. 【廖雪峰老师python教程】——map/reduce
  10. 虚拟现实-VR-UE4-创建第一个C++项目——Hello word