日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【GDOI2016模拟3.11】历史

發(fā)布時(shí)間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【GDOI2016模拟3.11】历史 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Description

Input

Output

Sample Input
3 7
R 0 1
T 0 1 1
K 1
R 0 1
T 0 1 1
R 0 1
T 0 2 1

Sample Output
Y
N
Y

Data Constraint

.
.
.
.
.

分析

【簡潔且能夠處理詢問也強(qiáng)制在線的情況】
30%做法:暴力存下每次的并查集。復(fù)雜度O(nm)。
70%做法:熟悉數(shù)據(jù)結(jié)構(gòu)的同學(xué)應(yīng)該很容易想到這個(gè)做法。這道題顯然可以用可持久化并查集維護(hù),用按秩合并套上一個(gè)可持久化線段樹維護(hù)fa數(shù)組。復(fù)雜度O(nlog2n),由于數(shù)據(jù)有梯度,這個(gè)做法本地測試時(shí)給了70%的分?jǐn)?shù)。但是要是又遇到跑得十分快的評測機(jī),那我也是沒辦法了。/微笑/微笑/微笑
100%做法:實(shí)際上我們并沒有基于歷史來修改fa數(shù)組,而只是基于歷史查詢,所以并不需要使用真正的可持久化。考慮套用上做法一,在并查集的邊上存下這條邊建立的時(shí)間。查詢時(shí)查詢一下到并查集的根這條路徑的最小值即可知道兩個(gè)結(jié)點(diǎn)連通的時(shí)間。復(fù)雜度O(nlogn),可以拿到100%的分?jǐn)?shù)。
.
.

注意:要讀入優(yōu)化!

.
.
.
.
.

程序:
#include<iostream> #include<stdio.h> using namespace std; int f[300001],sz[300001],year[300001],n,m,x,y,t,c=0,yr=0; char zf[3]; bool bz=false;inline void read(int &x) {x=0;char c=getchar();while (c<'0' || c>'9') c=getchar();while (c>='0' && c<='9'){x=x*10+c-'0';c=getchar();} }int find(int x, int t) {while (x!=f[x]&&year[x]<=t) x=f[x];return x; }int main() {read(n);read(m);for (int i=0;i<n;i++) {f[i]=i; sz[i]=1;}while (m--) {scanf("%s",&zf);if (zf[0]=='K'){ read(c);bz=false; continue;}if (zf[0]=='R'){ read(x);read(y);if (bz==true) {if ((x+=c)>=n) x-=n;if ((y+=c)>=n) y-=n;}yr++;x=find(x,yr); y=find(y,yr);if (x==y) continue;if (sz[x]<sz[y]) {f[x]=y;sz[y]+=sz[x];year[x]=yr;} else {f[y]=x;sz[x]+=sz[y];year[y]=yr;}continue;}if (zf[0]=='T'){ read(x);read(y);read(t);if (bz=((find(x,yr-t)==find(y,yr-t))||(find(x,yr)^find(y,yr)))) printf("N\n"); else printf("Y\n");}}return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/YYC-0304/p/9499924.html

總結(jié)

以上是生活随笔為你收集整理的【GDOI2016模拟3.11】历史的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。