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

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

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

      【比賽記錄】2025CSP-S模擬賽45

      A B C D Sum Rank
      10 - 75 20 105 16/24

      A. 染色(color)

      考慮奇偶性染色,于是就滿足了所有奇質數的限制。但是由于有 \(2\) 的存在,所以需要每四個染一個色??紤] \(1,3,6,8\) 每兩個數之差都是質數,因此 \(n\ge8\) 時答案不可能小于 \(4\)\(n<8\) 時打表打出來即可。

      Code
      #include<bits/stdc++.h>
      #define ll long long
      #define il inline
      using namespace std;
      namespace asbt{
      const int ans[9][9]={{},
      {1,1},
      {1,1,1},
      {2,1,1,2},
      {2,1,1,2,2},
      {3,1,1,2,2,3},
      {3,1,1,2,2,3,3},
      {4,1,1,2,2,3,3,4}};
      int n;
      int main(){
      	freopen("color.in","r",stdin);
      	freopen("color.out","w",stdout);
      	ios::sync_with_stdio(0),cin.tie(0);
      	cin>>n;
      	if(n<=7){
      		cout<<ans[n][0]<<'\n';
      		for(int i=1;i<=n;i++){
      			cout<<ans[n][i]<<' ';
      		}
      	}
      	else{
      		cout<<4<<'\n';
      		for(int i=1;i<=n;i++){
      			cout<<(i+3)%4+1<<' ';
      		}
      	}
      	return 0;
      }
      }
      int main(){return asbt::main();}
      

      B. 序列(array)

      C. 樹上詢問(query)

      只考慮 \(u\to\operatorname{lca}(u,v)\) 的部分,另一部分類似。

      答案要求這條路徑上 \(dep_u-dep_x=x\)\(x\) 的數量,也就是 \(x+dep_x=dep_u\)??紤]差分,用 \(u\) 的根鏈減去 \(fa_{\operatorname{lca}(u,v)}\) 的根鏈即可,用主席樹維護就好了。時間復雜度 \(O(n\log n)\)

      Code
      #include<bits/stdc++.h>
      #define ll long long
      #define il inline
      #define pb push_back
      using namespace std;
      namespace asbt{
      const int maxn=3e5+5;
      int n,m,dep[maxn],fa[maxn];
      vector<int> e[maxn];
      namespace LCA{
      	int cnt,dfn[maxn],oula[maxn<<1],idx[maxn<<1];
      	il void dfs(int u,int fth){
      		dfn[u]=++cnt,oula[cnt]=cnt;
      		idx[cnt]=u,fa[u]=fth;
      		dep[u]=dep[fth]+1;
      		for(int v:e[u]){
      			if(v==fth){
      				continue;
      			}
      			dfs(v,u);
      			oula[++cnt]=dfn[u];
      		}
      	}
      	struct{
      		int Log[maxn<<1],st[maxn<<1][22];
      		il void init(){
      			for(int i=2;i<=cnt;i++){
      				Log[i]=Log[i>>1]+1;
      			}
      			for(int i=1;i<=cnt;i++){
      				st[i][0]=oula[i];
      			}
      			for(int j=1;j<=Log[cnt];j++){
      				for(int i=1;i+(1<<j)-1<=cnt;i++){
      					st[i][j]=min(st[i][j-1],st[i+(1<<(j-1))][j-1]);
      				}
      			}
      		}
      		il int query(int l,int r){
      			int p=Log[r-l+1];
      			return min(st[l][p],st[r-(1<<p)+1][p]);
      		}
      	}ST;
      	il void init(){
      		dfs(1,0),ST.init();
      	}
      	il int lca(int u,int v){
      		if(dfn[u]>dfn[v]){
      			swap(u,v);
      		}
      		return idx[ST.query(dfn[u],dfn[v])];
      	}
      	il int dis(int u,int v){
      		return dep[u]+dep[v]-dep[lca(u,v)]*2;
      	}
      }
      using LCA::lca;
      using LCA::dis;
      struct{
      	int tot,rt[maxn],ls[maxn*24],rs[maxn*24],sum[maxn*24];
      	il void pushup(int id){
      		sum[id]=sum[ls[id]]+sum[rs[id]];
      	}
      	il void insert(int &p,int q,int l,int r,int x){
      		if(!p){
      			p=++tot;
      		}
      		if(l==r){
      			sum[p]=sum[q]+1;
      			return ;
      		}
      		int mid=(l+r)>>1;
      		if(x<=mid){
      			rs[p]=rs[q];
      			insert(ls[p],ls[q],l,mid,x);
      		}else{
      			ls[p]=ls[q];
      			insert(rs[p],rs[q],mid+1,r,x);
      		}
      		pushup(p);
      	}
      	il int query(int id,int l,int r,int x){
      		if(!id){
      			return 0;
      		}
      		if(l==r){
      			return sum[id];
      		}
      		int mid=(l+r)>>1;
      		return x<=mid?query(ls[id],l,mid,x):query(rs[id],mid+1,r,x);
      	}
      	il void insert(int u,int x){
      		insert(rt[u],rt[fa[u]],-6e5,6e5,x);
      	}
      	il int query(int u,int x){
      		return query(rt[u],-6e5,6e5,x);
      	}
      }S1,S2;
      il void dfs(int u,int fa){
      	S1.insert(u,u+dep[u]);
      	S2.insert(u,u-dep[u]);
      	for(int v:e[u]){
      		if(v==fa){
      			continue;
      		}
      		dfs(v,u);
      	}
      }
      int main(){
      	freopen("query.in","r",stdin);
      	freopen("query.out","w",stdout);
      	ios::sync_with_stdio(0),cin.tie(0);
      	cin>>n>>m;
      	for(int i=1,u,v;i<n;i++){
      		cin>>u>>v;
      		e[u].pb(v),e[v].pb(u);
      	}
      	LCA::init(),dfs(1,0);
      	while(m--){
      		int u,v;
      		cin>>u>>v;
      		int w=lca(u,v),k=dis(u,v)-dep[v];
      		cout<<S1.query(u,dep[u])-S1.query(fa[w],dep[u])+S2.query(v,k)-S2.query(w,k)<<'\n';
      	}
      	return 0;
      }
      }
      int main(){return asbt::main();}
      

      D. 網絡(network)

      posted @ 2025-09-14 21:42  zhangxy__hp  閱讀(58)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 湖口县| 男人扒开添女人下部免费视频| 亚洲欧美人成电影在线观看| 蜜臀av午夜精品福利| 亚洲人成网站18禁止无码| 中文字幕有码在线第十页| 天堂一区二区三区av| 成A人片亚洲日本久久| 国产成人精品av| 麻豆蜜桃伦理一区二区三区| 美女自卫慰黄网站| 欧美不卡无线在线一二三区观| 最新的国产成人精品2022| 久久不见久久见免费视频观看| 久久久久免费看成人影片| 国产视色精品亚洲一区二区| 人人妻人人做人人爽夜欢视频| 久久午夜夜伦鲁鲁片免费无码 | 人妻少妇精品中文字幕| 国产国语一级毛片| 久久精品免费无码区| 成人午夜av在线播放| 国产中文字幕在线一区| 日韩一区二区三区不卡片| 国产尤物精品自在拍视频首页| 福利一区二区在线播放| 国产AV无码专区亚洲AV漫画| 日本欧美一区二区免费视频| 人妻中文字幕一区二区三| 亚洲国产欧美在线看片一国产| 精品国产一国产二国产三| 无套内谢少妇一二三四| 国产99视频精品免费专区| 老色鬼在线精品视频在线观看| 欧美特级午夜一区二区三区| 不卡免费一区二区日韩av| 国产-第1页-浮力影院| 蜜臀av入口一区二区三区| 色噜噜亚洲男人的天堂| 亚洲欧美日韩愉拍自拍美利坚| 少妇人妻激情乱人伦|