<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      CF1706E Qpwoeirut and Vertices

      一個較為簡單的題目,做起來比較舒服。

      題目

      \(N\) 個點 \(M\) 條邊。 有 \(Q\) 個詢問,每個詢問有 \(L,R\)。

      詢問 \(L\le a \le b \le R\) 最少需要前幾條邊才能聯通。

      都是 \(1e5\) 級別。

      做法

      我們把第 \(i\) 條邊的邊權設為 \(i\),這就成為了一道 Kruskal 重構樹的簡單題。

      我們簡單可以處理 \(i\to i+1\) 的答案。

      用線段樹查詢,代碼如下

      #include <bits/stdc++.h>
      using namespace std;
      const int MN=2e5+116;
      int T, n, m, q;
      struct Node{
      	int nxt, to;
      }node[MN<<1];
      int head[MN<<1], tottt;
      void insert(int u, int v){
      	node[++tottt].to=v;
      	node[tottt].nxt=head[u];
      	head[u]=tottt; return;
      }
      struct Side{
      	int u, v, w;
      	bool operator <(const Side &o){
      		return w<o.w;
      	}
      }side[MN];
      int father[MN], cnttt, val[MN], lg[MN];
      int find(int x){
      	if(father[x]!=x) father[x]=find(father[x]);
      	return father[x];
      }
      int jump[MN][20], depth[MN];
      void dfs(int u, int father){
      	depth[u]=depth[father]+1;
      	jump[u][0]=father;
      	for(int i=1; i<=19; ++i){
      		jump[u][i]=jump[jump[u][i-1]][i-1];
      	}
      	for(int i=head[u];i;i=node[i].nxt){
      		int v=node[i].to;
      		if(v==father) continue;
      		dfs(v,u);
      	}
      }
      int Lca(int x, int y){
      	if(depth[x]<depth[y]) swap(x,y);
      	while(depth[x]!=depth[y]) x=jump[x][lg[depth[x]-depth[y]]];
      	if(x==y) return x;
      	for(int i=19; i>=0; --i){
      		if(jump[x][i]!=jump[y][i]){
      			x=jump[x][i]; y=jump[y][i];
      		}
      	}
      	return jump[x][0];
      }
      int ans[MN];
      struct Segmentree{
      	#define lc k<<1
      	#define rc k<<1|1
      	struct Node{
      		int l, r, maxn;
      	}tr[MN<<2];
      	void pushup(int k){
      		tr[k].maxn=max(tr[lc].maxn,tr[rc].maxn);
      	}
      	void build(int k, int l, int r){
      		tr[k].l=l, tr[k].r=r;
      		if(l==r){tr[k].maxn=ans[l]; return;}
      		int mid=(tr[k].l+tr[k].r)>>1;
      		build(lc,l,mid); build(rc,mid+1,r);
      		pushup(k); return;
      	}
      	int query(int k, int l, int r){
      		if(tr[k].l>=l&&tr[k].r<=r) return tr[k].maxn;
      		int mid=(tr[k].l+tr[k].r)>>1, res=0;
      		if(l<=mid) res=max(res,query(lc,l,r));
      		if(r>mid) res=max(res,query(rc,l,r));
      		return res;
      	}
      }tr;
      int main(){
      	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
      	lg[0]=-1; for(int i=1; i<MN; ++i) lg[i]=lg[i>>1]+1;
      	cin>>T; while(T--){
      		cin>>n>>m>>q;
      		for(int i=1; i<=m; ++i){
      			int u, v; cin>>u>>v;
      			side[i]={u,v,i};
      		}
      		cnttt=n; tottt=0;
      		for(int i=1; i<=n+n; ++i){
      			father[i]=i; head[i]=0;
      			depth[i]=0; val[i]=0;
      		}
      		for(int i=1; i<=m; ++i){
      			int u=side[i].u, v=side[i].v;
      			u=find(u), v=find(v);
      			if(u==v) continue;
      			++cnttt; val[cnttt]=side[i].w;
      			insert(cnttt,v); insert(v,cnttt);
      			insert(cnttt,u); insert(u,cnttt);
      			father[u]=cnttt; father[v]=cnttt;
      		}
      		dfs(cnttt,0);
      		for(int i=1; i<n; ++i){
      			int lca=Lca(i,i+1);
      			ans[i]=val[lca];
      		}
      		tr.build(1,1,n-1);
      		while(q--){
      			int l, r; cin>>l>>r;
      			if(l==r) cout<<0<<" ";
      			else cout<<tr.query(1,l,r-1)<<' ';
      		}
      		cout<<'\n';
      	}
      	return 0;
      }
      
      posted @ 2025-09-26 14:15  BaiBaiShaFeng  閱讀(6)  評論(0)    收藏  舉報
      Sakana Widget右下角定位
      主站蜘蛛池模板: 成人国产精品中文字幕| 一区二区三区国产偷拍| 男人和女人高潮做爰视频| 亚洲人成人日韩中文字幕| 亚洲国产欧美在线人成AAAA| 国语精品自产拍在线观看网站| 亚洲国产精品综合久久网络| 国产精品自在自线视频| 大胸少妇午夜三级| 成人自拍小视频在线观看| 国产高清在线精品一区不卡| 国产成人精品无码一区二区| 亚洲国产美女精品久久久| 欧美人与动牲交A免费观看| 国产普通话刺激视频在线播放| 国产热の有码热の无码视频| 日本高清视频色wwwwww色| 成人乱码一区二区三区四区| 日本中文字幕乱码免费| 国精品无码一区二区三区在线看| 国内熟女中文字幕第一页| 黑人巨大av无码专区| 99久久婷婷国产综合精品青草漫画| 亚洲国产成人精品av区按摩| 成人爽A毛片在线视频淮北| 阿克苏市| 亚洲乱码一二三四区| 精品国产高清中文字幕| 日本不卡一区| 成年女性特黄午夜视频免费看| 国产精品久久久久7777| 婷婷亚洲综合五月天小说| 久在线精品视频线观看| 欧洲一区二区中文字幕| 久久亚洲精品无码va白人极品| av在线播放无码线| av色国产色拍| 久久精品国产99国产精品| 久热这里有精品免费视频| 久久精品无码免费不卡| 国产suv精品一区二区883|