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

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

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

      【題解】CF 70E Information Reform

      \(f_{u,i}\) 表示 \(u\) 接受 \(i\) 的信號,\(u\) 的子樹內的答案。那么可以枚舉 \(u\) 的兒子 \(v\) 接受信號的節(jié)點來轉移。注意當 \(v\) 也枚舉到 \(i\) 時要減去重復的 \(k\)

      考慮構造方案,設 \(ans_u\) 表示答案。首先可以求出 \(ans_1\)。對于 \(u\) 的每個兒子 \(v\),計算 \(u\) 是怎么從 \(v\) 轉移來的即可。仍然注意當 \(v\) 枚舉到 \(ans_u\) 時要減去重復的 \(k\)

      用 Floyd 計算兩兩之間的距離,時間復雜度 \(O(n^3)\)

      #include<bits/stdc++.h>
      #define int long long
      #define il inline
      #define pb push_back
      using namespace std;
      namespace asbt{
      namespace cplx{bool begin;}
      const int maxn=205,inf=0x3f3f3f3f3f3f3f3f;
      int n,m,a[maxn],ans[maxn];
      int dis[maxn][maxn];
      int f[maxn][maxn];
      vector<int> e[maxn];
      il void dfs1(int u,int fa){
      	for(int i=1;i<=n;i++){
      		f[u][i]=a[dis[u][i]]+m;
      	}
      	for(int v:e[u]){
      		if(v==fa){
      			continue;
      		}
      		dfs1(v,u);
      		for(int i=1,tmp;i<=n;i++){
      			tmp=f[u][i];
      			f[u][i]+=f[v][i]-m;
      			for(int j=1;j<=n;j++){
      				f[u][i]=min(f[u][i],tmp+f[v][j]);
      			}
      		}
      	}
      }
      il void dfs2(int u,int fa){
      	for(int v:e[u]){
      		if(v==fa){
      			continue;
      		}
      		int res=inf;
      		for(int i=1;i<=n;i++){
      			if(res>f[v][i]){
      				res=f[v][i],ans[v]=i;
      			}
      		}
      		if(f[v][ans[u]]-m<f[v][ans[v]]){
      			ans[v]=ans[u];
      		}
      		dfs2(v,u);
      	}
      }
      namespace cplx{
      	bool end;
      	il double usdmem(){return (&begin-&end)/1048576.0;}
      }
      signed main(){
      	ios::sync_with_stdio(0),cin.tie(0);
      	cin>>n>>m;
      	for(int i=1;i<n;i++){
      		cin>>a[i];
      	}
      	memset(dis,0x3f,sizeof dis);
      	for(int i=1;i<=n;i++){
      		dis[i][i]=0;
      	}
      	for(int i=1,u,v;i<n;i++){
      		cin>>u>>v;
      		e[u].pb(v),e[v].pb(u);
      		dis[u][v]=dis[v][u]=1;
      	}
      	for(int k=1;k<=n;k++){
      		for(int i=1;i<=n;i++){
      			for(int j=1;j<=n;j++){
      				dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
      			}
      		}
      	}
      //	for(int i=1;i<=n;i++){
      //		for(int j=1;j<=n;j++){
      //			cout<<dis[i][j]<<" ";
      //		}
      //		puts("");
      //	}
      	dfs1(1,0);
      //	for(int i=1;i<=n;i++){
      //		for(int j=1;j<=n;j++){
      //			printf("%2d ",f[i][j]);
      //		}
      //		puts("");
      //	}
      	int res=inf;
      	for(int i=1;i<=n;i++){
      		if(res>f[1][i]){
      			res=f[1][i],ans[1]=i;
      		}
      	}
      	cout<<res<<"\n";
      	dfs2(1,0);
      	for(int i=1;i<=n;i++){
      		cout<<ans[i]<<" ";
      	}
      	return 0;
      }
      }
      signed main(){return asbt::main();}
      
      posted @ 2025-02-08 20:55  zhangxy__hp  閱讀(13)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 人妻夜夜添夜夜无码av| 国产精品成人午夜久久| 国产精品国产主播在线观看| 性一交一乱一伦| 中文字幕有码日韩精品| 蜜桃久久精品成人无码av| 国产一区二区视频在线看| 免费激情网址| 成人福利国产午夜AV免费不卡在线| 国产精品久久久久久久久久直播| 国厂精品114福利电影免费| 九九re线精品视频在线观看视频 | 久久国产精品-国产精品| 国产女人叫床高潮大片| 中文字幕人妻色偷偷久久| 91亚洲国产三上悠亚在线播放| 成人看的污污超级黄网站免费| 丁香五月天综合缴情网| 少妇高潮激情一区二区三| 最新精品国偷自产在线 | 一本色道久久88亚洲精品综合| 久久久久无码中| 四虎成人精品永久免费av| 国产视色精品亚洲一区二区 | 无码人妻精品一区二区三| 日韩精品无码免费专区午夜不卡| 中文字幕亚洲人妻一区| 成在线人免费| 婷婷色综合视频在线观看| 亚洲一二三区精品与老人| 国产360激情盗摄全集| 国产精品va在线观看无码不卡| 亚洲国产综合性亚洲综合性| 美女一区二区三区亚洲麻豆| 无码人妻精品一区二区三区蜜桃 | 亚洲丰满熟女一区二区蜜桃| 国产精品亚欧美一区二区三区| 亚洲成人高清av在线| 久久人妻无码一区二区三区av| 国产MD视频一区二区三区| 我国产码在线观看av哈哈哈网站|