当前位置:网站首页>D - Linear Probing- 并查集
D - Linear Probing- 并查集
2022-08-01 22:42:00 【秦小咩】
D - Linear Probing Editorial

/
Time Limit: 4 sec / Memory Limit: 1024 MB
Score : 400400 points
Problem Statement
There is a sequence A = (A_0, A_1, \dots, A_{N - 1})A=(A0,A1,…,AN−1) with N = 2^{20}N=220 terms. Initially, every term is -1−1.
Process QQ queries in order. The ii-th query (1 \leq i \leq Q)(1≤i≤Q) is described by an integer t_iti such that t_i = 1ti=1 or t_i = 2ti=2, and another integer x_ixi, as follows.
- If t_i = 1ti=1, do the following in order.
- Define an integer hh as h = x_ih=xi.
- While A_{h \bmod N} \neq -1AhmodN=−1, keep adding 11 to hh. We can prove that this process ends after finite iterations under the Constraints of this problem.
- Replace the value of A_{h \bmod N}AhmodN with x_ixi.
- If t_i = 2ti=2, print the value of A_{x_i \bmod N}AximodN at that time.
Here, for integers aa and bb, a \bmod bamodb denotes the remainder when aa is divided by bb.
Constraints
- 1 \leq Q \leq 2 \times 10^51≤Q≤2×105
- t_i \in \{ 1, 2 \} \, (1 \leq i \leq Q)ti∈{1,2}(1≤i≤Q)
- 0 \leq x_i \leq 10^{18} \, (1 \leq i \leq Q)0≤xi≤1018(1≤i≤Q)
- There is at least one ii (1 \leq i \leq Q)(1≤i≤Q) such that t_i = 2ti=2.
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
QQ
t_1t1 x_1x1
\vdots⋮
t_{Q}tQ x_{Q}xQ
Output
For each query with t_i = 2ti=2, print the response in one line. It is guaranteed that there is at least one such query.
Sample Input 1 Copy
Copy
4 1 1048577 1 1 2 2097153 2 3
Sample Output 1 Copy
Copy
1048577 -1
We have x_1 \bmod N = 1x1modN=1, so the first query sets A_1 = 1048577A1=1048577.
In the second query, initially we have h = x_2h=x2, for which A_{h \bmod N} = A_{1} \neq -1AhmodN=A1=−1, so we add 11 to hh. Now we have A_{h \bmod N} = A_{2} = -1AhmodN=A2=−1, so this query sets A_2 = 1A2=1.
In the third query, we print A_{x_3 \bmod N} = A_{1} = 1048577Ax3modN=A1=1048577.
In the fourth query, we print A_{x_4 \bmod N} = A_{3} = -1Ax4modN=A3=−1.
Note that, in this problem, N = 2^{20} = 1048576N=220=1048576 is a constant and not given in input.
=========================================================================非常巧妙的一个题目,直接循环外加优化的话只会TLE一个点,本题正解是并查集,每当修改一个位置,就把这个位置的父亲节点和父亲节点+1位置合并,注意合并顺序,这样我们就完美的定位了下一个位置,十分精巧
# include<iostream>
# include<iomanip>
# include<algorithm>
# include<map>
# include<vector>
# include<set>
# include<cstring>
# pragma optimize(2)
# define mod 1048576
using namespace std;
typedef long long int ll;
int f[(1<<20)+10];
ll ans[(1<<20)+10];
bool book[1048576+10];
ll getf(int x)
{
if(x==f[x])
return x;
else
{
f[x]=getf(f[x]);
return f[x];
}
}
void hebing(int x,int y)
{
int t1=getf(x);
int t2=getf(y);
if(t1!=t2)
f[t1]=t2;
}
int main ()
{
for(int i=0; i<(1<<20); i++)
{
f[i]=i;
}
int t;
cin>>t;
while(t--)
{
ll x,y;
scanf("%lld%lld",&x,&y);
if(x==1)
{
ll pre=y;
y%=1048576;
ll now=getf(y);
ans[now]=pre;
book[now]=1;
hebing(now,(now+1)%1048576);
}
else
{
ll now=y%1048576;
if(!book[now])
{
cout<<-1<<'\n';
}
else
{
cout<<ans[now]<<'\n';
}
}
}
return 0;
}
边栏推荐
猜你喜欢

小程序毕设作品之微信美食菜谱小程序毕业设计成品(8)毕业设计论文模板

Flutter基础学习(一)Dart语言入门

img 响应式图片的实现(含srcset属性、sizes属性的使用方法,设备像素比详解)

(翻译)按钮的对比色引导用户操作的方式

seaborn笔记:可视化统计关系(散点图、折线图)
![[Niu Ke brush questions-SQL big factory interview questions] NO4. Travel scene (a taxi)](/img/26/4c3080f1b21efb9401d8c3a55bc15d.png)
[Niu Ke brush questions-SQL big factory interview questions] NO4. Travel scene (a taxi)

Ten years after graduation, financial freedom: those things that are more important than hard work, no one will ever teach you

华为无线设备配置全局双链路冷备份(AC全局配置方式)

blender3.2.1 unit setting

【开源】Sentinel高性能高可用集群限流解决方案
随机推荐
Small application project works WeChat stadium booking applet graduation design of the finished product (1) the development profile
excel cell contian two words, seperated by a slash
线上故障排查方案
Codeforces CodeTON Round 2 (Div. 1 + Div. 2, Rated, Prizes!) A-D 题解
数据分析04
如何使用pywinauto和pyautogui将动漫小姐姐链接请回家
APP专项测试:流量测试
Safe fifth after-school exercise
得物客服热线的演进之路
y84. Chapter 4 Prometheus Factory Monitoring System and Actual Combat -- Advanced Prometheus Alarm Mechanism (15)
自建 Prometheus 采集腾讯云容器服务监控数据最佳实践
工程建筑行业数据中台指标分析
long investment career
ROS2初级知识(8):Launching启动多节点
论文解读(GSAT)《Interpretable and Generalizable Graph Learning via Stochastic Attention Mechanism》
(翻译)按钮的对比色引导用户操作的方式
leetcode刷题
Create virtual environments with virtualenv and Virtualenvwrapper virtual environment management tools
Analysis of the development trend of game metaverse
dvwa 通关记录1 - 暴力破解 Brute Force