【bzoj4320】ShangHai2006 Homework
若Y小于等于sqrt(300000),暴力,对所有的插入的数都更新mn[i]。
若Y大于sqrt(300000),枚举kY,用并查集维护>=i的第一个数,这样只支持删除操作是O(1),然后倒着枚举一边,删除一个数x那么就fa[x]=fa[x+1]
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std; #define MAXN 300010
#define N 300000 struct Node
{
int t,k,ans;
}q[MAXN]; int n; int fa[MAXN],f[MAXN],m[310]; char ch[10]; int find(int x)
{
return fa[x]==x ? fa[x] : fa[x]=find(fa[x]);
} int main()
{
memset(m,127/3,sizeof(m));
scanf("%d",&n);
for (int i=1;i<=N+1;i++)
fa[i]=i;
for (int i=1;i<=n;i++)
{
scanf("%s%d",ch,&q[i].k);
q[i].t=ch[0]-'A';
if (q[i].t==0)
{
for (int j=1;j<=300;j++)
m[j]=min(m[j],q[i].k%j);
f[q[i].k]=1;
}
if (q[i].t==1 && q[i].k<=300)
q[i].ans=m[q[i].k];
}
for (int i=1;i<=N;i++)
if (!f[i])
fa[i]=i+1;
for (int i=n;i>=1;i--)
{
if (q[i].t==0)
fa[q[i].k]=q[i].k+1;
else
{
int t,minn=N;
if (q[i].k>300)
{
for (int j=0;j<=N;j+=q[i].k)
{
t=find(max(j,1));
if (t<=N)
minn=min(minn,t%q[i].k);
}
q[i].ans=minn;
}
}
}
for (int i=1;i<=n;i++)
if (q[i].t)
printf("%d\n",q[i].ans);
return 0;
}
【bzoj4320】ShangHai2006 Homework的更多相关文章
- 【BZOJ4320】ShangHai2006 Homework 分段+并查集
[BZOJ4320]ShangHai2006 Homework Description 1:在人物集合 S 中加入一个新的程序员,其代号为 X,保证 X 在当前集合中不存在. 2:在当前的人 ...
- 【题解】HDU Homework(倍增)
[题解]HDU Homework(倍增) 矩阵题一定要多多检查一下是否行列反了... 一百个递推项一定要存101个 说多了都是泪啊 一下午就做了这一道题因为实在是太菜了太久没写这种矩阵的题目... 设 ...
- 【bzoj4320】【ShangHai2006 Homework】【并查集+离线处理】
ShangHai2006 Homework Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 918 Solved: 460[Submit][Statu ...
- 【HDU4471】Homework(矩阵快速幂)
[HDU4471]Homework(矩阵快速幂) 题面 Vjudge 给定一个数列的前\(m\)项,给定一个和前\(t\)项相关的递推式. 有\(q\)个位置的递推式单独给出,求数列第\(n\)项. ...
- 【BZOJ3379】[Usaco2004 Open]Turning in Homework 交作业 DP
[BZOJ3379][Usaco2004 Open]Turning in Homework 交作业 Description 贝茜有C(1≤C≤1000)门科目的作业要上交,之后她要去坐巴士和奶 ...
- 【hackerrank week of code 26】Hard Homework
[题目链接]:https://www.hackerrank.com/contests/w26/challenges/hard-homework/problem [题意] 给你一个式子:sin(x)+s ...
- bzoj 4320: ShangHai2006 Homework
4320: ShangHai2006 Homework Time Limit: 10 Sec Memory Limit: 128 MB Description 1:在人物集合 S 中加入一个新的程序员 ...
- 【POJ2094】【差分序列】Angry Teacher
Description Mr. O'Cruel is teaching Math to ninth grade students. Students of course are very lazy, ...
- hdu6390GuGuFishtion【数论】
GuGuFishtion Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Tot ...
随机推荐
- systemverilog:task
1.task declaration 个人喜欢ANSI C格式的声明: task mytask(output int x,input logic y); ...... endtask 注意端口列表的方 ...
- 使用scrapy爬取suning
# -*- coding: utf-8 -*- import scrapy from copy import deepcopy class SuSpider(scrapy.Spider): name ...
- CSRF verification failed. Request aborted. 表单提交方法为POST时的报错
本人所用Django版本为1.11,在设置请求方法为POST时,遇到标题中的错误,尝试了多种方法,最终通过下面的操作来修复: 在template文件中添加图中红框部分 接着,导入csrf_exempt ...
- 杭电 4004 The Frog's Games 青蛙跳水 (二分法,贪心)
Description The annual Games in frogs' kingdom started again. The most famous game is the Ironfrog T ...
- 开门人和关门人(结构体+sort)
每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签 到.签离记录,请根据记录找出当天开门和关门的人. Input 测试输入的第一行给出记录的总天数N ( > ...
- java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
今天这个问题排查了好大一会,开始网上有人这么说: https://www.cnblogs.com/rookiebob/p/3749396.html 但是仍未能解决我的问题, 最后发现是只在外层的pom ...
- xtu read problem training 3 B - Gears
Gears Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged on ZJU. Original ID: 3789 ...
- 两个很实用很方便的函数核心及用法{(lower_bound)+(max_element))~~
(1) 关于 lower_bound(a,a+n,x)-a的用法: 求x在数组a中的 ...
- html template & import link bug
html template & import link bug html templates is OK https://caniuse.com/#search=html%20template ...
- 【bzoj1042】[HAOI2008]硬币购物-递推与动规-容斥原理
硬币购物 硬币购物一共有4种硬币.面值分别为c1,c2,c3,c4.某人去商店买东西,去了tot次.每次带di枚ci硬币,买si的价值的东西.请问每次有多少种付款方法. Input 第一行 c1,c2 ...