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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

最小生成树计数(HYSBZ-1016)(简化版实现)

發(fā)布時(shí)間:2025/3/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最小生成树计数(HYSBZ-1016)(简化版实现) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Problem Description

現(xiàn)在給出了一個(gè)簡單無向加權(quán)圖。你不滿足于求出這個(gè)圖的最小生成樹,而希望知道這個(gè)圖中有多少個(gè)不同的
最小生成樹。(如果兩顆最小生成樹中至少有一條邊不同,則這兩個(gè)最小生成樹就是不同的)。由于不同的最小生
成樹可能很多,所以你只需要輸出方案數(shù)對(duì)31011的模就可以了。

Input

第一行包含兩個(gè)數(shù),n和m,其中1<=n<=100; 1<=m<=1000; 表示該無向圖的節(jié)點(diǎn)數(shù)和邊數(shù)。每個(gè)節(jié)點(diǎn)用1~n的整
數(shù)編號(hào)。接下來的m行,每行包含兩個(gè)整數(shù):a, b, c,表示節(jié)點(diǎn)a, b之間的邊的權(quán)值為c,其中1<=c<=1,000,000,0
00。數(shù)據(jù)保證不會(huì)出現(xiàn)自回邊和重邊。注意:具有相同權(quán)值的邊不會(huì)超過10條。

Output

輸出不同的最小生成樹有多少個(gè)。你只需要輸出數(shù)量對(duì)31011的模就可以了。

Sample Input

4 6
1 2 1
1 3 1
1 4 1
2 3 2
2 4 1
3 4 1

Sample Output

8

思路:最小生成樹計(jì)數(shù)模版題

Source Program

#include<iostream> #include<cstdio> #include<cstdlib> #include<string> #include<cstring> #include<cmath> #include<ctime> #include<algorithm> #include<utility> #include<stack> #include<queue> #include<vector> #include<set> #include<map> #include<bitset> #define EPS 1e-9 #define PI acos(-1.0) #define INF 0x3f3f3f3f #define LL long long #define Pair pair<int,int> const int MOD = 31011; const int N = 1000+5; const int dx[] = {0,0,-1,1,-1,-1,1,1}; const int dy[] = {-1,1,0,0,-1,1,-1,1}; using namespace std;struct Edge {int x,y;int dis;bool operator < (const Edge &rhs)const{return dis<rhs.dis;} } edge[N]; struct build {int l,r;int cnt; } a[N]; int tot; int n,m; int father[N]; int sum;int Find(int x) {if(father[x]!=x)return Find(father[x]);return father[x]; }void dfs(int x,int now,int num) {if(now==a[x].r+1) {if(num==a[x].cnt)//選指定的條數(shù)sum++;return ;}int fx=Find(edge[now].x);int fy=Find(edge[now].y);if(fx!=fy) {//選father[fx]=fy;dfs(x,now+1,num+1);father[fx]=fx;father[fy]=fy;}dfs(x,now+1,num);//不選 }int Kruskal() {sort(edge+1,edge+m+1);for(int i=1; i<=n; i++)father[i]=i;int cnt=0;for(int i=1; i<=m; i++) {if(edge[i].dis!=edge[i-1].dis) {tot++;a[tot].l=i;a[tot-1].r=i-1;}int x=Find(edge[i].x);int y=Find(edge[i].y);if(x!=y) {father[y]=x;a[tot].cnt++;cnt++;}}a[tot].r=m;return cnt; }int main() {scanf("%d%d",&n,&m);int x,y,z;for(int i=1; i<=m; i++)scanf("%d%d%d",&edge[i].x,&edge[i].y,&edge[i].dis);int num=Kruskal();if(num!=n-1) {printf("0");return 0;}else{for(int i=1; i<=n; i++)father[i]=i;int res=1;for(int i=1; i<=tot; i++) {sum=0;dfs(i,a[i].l,0);res=res*sum%MOD;for(int j=a[i].l; j<=a[i].r; j++) {int x=Find(edge[j].x);int y=Find(edge[j].y);if(x!=y)father[y]=x;}}printf("%d",res);}return 0; }

?

總結(jié)

以上是生活随笔為你收集整理的最小生成树计数(HYSBZ-1016)(简化版实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久久久精品人妻一区二区三区四 | 4438x在线观看 | 99re在线视频精品 | 有机z中国电影免费观看 | 免费久久精品视频 | 2024国产精品视频 | 亚洲欧美日韩国产成人精品影院 | 亚洲乱乱 | 欧美日韩h| 美女十八毛片 | 有码在线视频 | 欧美一区二区三区免费 | 先锋影音亚洲 | 激情导航| 欧美日韩精品区别 | 韩国精品在线观看 | 97超碰在线免费 | h在线免费观看 | 国产成人精品综合久久久久99 | 日韩国产小视频 | 波多野吉衣视频在线观看 | 啪啪福利视频 | 国产新婚疯狂做爰视频 | 成人国产精品免费观看动漫 | 亚洲色图36p | 超碰成人av | 手机看片日韩在线 | 午夜嘿嘿嘿 | 亚洲精品一区二区三区四区乱码 | 国产成年人视频 | 韩国激情呻吟揉捏胸视频 | 国产精品一区二区三区在线看 | 亚洲色图偷拍视频 | 禁网站在线观看免费视频 | 日韩女优中文字幕 | 国产精品黄在线观看 | 天天干天天爽天天操 | 亚洲中文字幕无码av永久 | 国产精品亚洲欧美在线播放 | 欧美视频不卡 | 拔插拔插海外华人免费视频 | 一区二区三区国产视频 | 体内射精一区二区 | 足交在线观看 | 致命魔术电影高清在线观看 | 色吧av色av| 激情综合区| 在线激情视频 | 成人免费视频大全 | 欧美日韩国产一区二区三区在线观看 | 91精品久久久久久 | 国产欧美精品一区二区色综合 | 久久艹精品视频 | 亚洲资源在线播放 | 国产亚洲精品久久久久久久久动漫 | 日本不卡二区 | 99国产精品久久久久久久成人 | 中文字幕第一页久久 | 欧美xxxx83d | 久久久久久蜜桃 | 亚洲熟女乱色综合亚洲小说 | 男女拍拍拍网站 | 成人av手机在线观看 | 美女av一区二区 | 青青艹av| 日韩av色图 | 久草久草| 97在线精品视频 | 欧美日韩在线中文字幕 | 欧美日韩黄色一级片 | 日本bbwbbw | 国产美女作爱视频 | 亚洲av无码国产精品永久一区 | 一区二区三区精品视频 | 国产精品久久久久久久久久 | 大肉大捧一进一出好爽 | 超碰p| 久久久久久久久久久国产精品 | 香蕉视频成人在线观看 | 成a人片亚洲日本久久 | 色干综合 | 我看黄色一级片 | 在线a天堂 | 碧蓝之海动漫在线观看免费高清 | 国产精品毛片久久久 | 国产a免费 | 爆操网站 | 国产成人av免费 | 91在现看 | a在线观看免费 | 久久22| av免费久久 | 一区小视频 | 免费看欧美黄色片 | 岛国毛片在线观看 | 男人的天堂视频在线观看 | 四虎一区二区 | 男人的av| 蜜桃久久久久久久 |