亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 2004011270_p1.cpp

?? 利用圖的存儲、表示以及最短路徑相關算法解決銷售網絡擴張問題。
?? CPP
字號:
#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
const int MaxVertexNum=100;
const int MaxEdgeNum=50;
const int MaxValue=50;
typedef int vexlist[MaxVertexNum];
typedef int adjmatrix[MaxVertexNum][MaxVertexNum];//存儲鄰接矩陣
int n,e;
struct edgenode{  
	int adjvex;
	int weight;
	edgenode *next;
};
struct edge {  //定義邊集數組的元素類型
	int fromvex;  //邊的起點域
	int endvex;  //邊的終點域
	int weight;		//邊的權值域
};
typedef edge edgeset[MaxEdgeNum];  //定義edgeset為邊集數組類型
typedef edgenode *adjlist[MaxVertexNum];
ifstream tfile;  //輸入流
	

void Create1(adjmatrix GA,int n,int e,ifstream tfile)//建立鄰接數組
{
	int i,j,k,w;
	for(i=0;i<n;i++)
		for(j=0;j<n;j++){		//初始化鄰接數組
			if(i==j)
				GA[i][j]=0;
			else
				GA[i][j]=MaxValue;
		}
		for(k=1;k<=e;k++){		//建立鄰接數組
			tfile>>i>>j>>w;
		GA[i][j]=GA[j][i]=w;
		}
}

void Create2(adjmatrix GA,int n,int e,int g[],int m,ifstream tfile)
{		//找到A B各自的城市后建立鄰接數組
	int i,j,k,w,flag1=0,flag2=0;
	for(i=0;i<n;i++)
		for(j=0;j<n;j++) {
			if(i==j)
				GA[i][j]=0;
			else
				GA[i][j]=MaxValue;		//初始化
		}

		for(k=1;k<=e;k++) {
			tfile>>i>>j>>w;
			GA[i][j]=GA[j][i]=w;
		}
		for(i=0;i<n;i++)
		GA[m][i]=GA[i][m]=MaxValue+1;		
		for(j=0;j<n;j++)
		for(i=1;i<n/2;i++)
			GA[j][g[i]]=GA[g[i]][j]=MaxValue+1;	//如果有另一個網中的城市權值置為MaxValue;

		
}
void findmin(adjmatrix GA,int dist[],int h[],int i,int n,ofstream ttt)
{		//利用狄克斯特拉算法求圖GA中從頂點i到其余每個頂點間的最短距離,存在dist數組中
	int j,k,w,m;
	int *s=new int [n];	//定義作為集合使用的動態數組s;
	for(j=0;j<n;j++) {
		if(j==i)
			s[j]=1;
		else
			s[j]=0;
		dist[j]=GA[i][j];
	}
	for (k=1;k<=n-2;k++)	//共進行n-2次循環,每次求出從原點i到終點m得最短長度
	{
		w=MaxValue; m=i;
		for(j=0;j<n;j++)
			if(s[j]==0&&dist[j]<w) {
				w=dist[j];
				m=j;
			}
			if(m!=i)
				s[m]=1;
			else
				break;
			for(j=0;j<n;j++)
				if(s[j]==0&&dist[m]+GA[m][j]<dist[j]) {
					dist[j]=dist[m]+GA[m][j];
				}
	}
for(j=1;j<n-1;j++)
h[j]=j;
	int M,K,J,I,d;
K=1;M=n-2;
while(K<M)	//對dist進行排序,并對保存城市序號的數組h進行相應的排序
{
	J=M-1;
	M=1;
	for(I=K;I<=J;I++)
		if(dist[I]>dist[I+1])
		{d=dist[I];dist[I]=dist[I+1];dist[I+1]=d;
		d=h[I];h[I]=h[I+1];h[I+1]=d;M=I;}
		J=K+1;K=1;
		for(I=M;I>=J;I--)
			if(dist[I-1]>dist[I])
			{d=dist[I];dist[I]=dist[I-1];dist[I-1]=d;
		d=h[I];h[I]=h[I-1];h[I-1]=d;K=I;}
}
ttt<<"Ci"; 
	for(j=1;j<n-1;j++)		//將排好序的城市序號及相應的權值讀入文件中
	ttt<<setw(8)<<h[j]; ttt<<endl;
	if(i==0)
		ttt<<"to Ca"; 
	else 
		ttt<<"to Cb";
	for(j=1;j<n-1;j++)
	ttt<<setw(8)<<dist[j]; ttt<<endl;
}



void Prim(adjmatrix GA,edgeset CT,int g[],int n,ofstream ttt)
{	//利用普里姆算法從頂點出發求出用鄰接矩陣GA表示的圖的最小生成樹,存于邊集數組CT中
	int i,j,k,min,t,m,w;
	for(i=0;i<n-1;i++) {
		CT[i].fromvex=0;
		CT[i].endvex=i+1;
		CT[i].weight=GA[0][i+1];
	}
	for(k=1;k<n;k++)
	{
		min=MaxValue;
		m=k-1;
		for(j=k-1;j<n-1;j++)
			if(CT[j].weight<min) {
				min=CT[j].weight;
				m=j;
			}
			if(CT[m].weight==MaxValue)
				break;
			edge temp=CT[k-1];
			CT[k-1]=CT[m];
			CT[m]=temp;
			j=CT[k-1].endvex;
			for(i=k;i<n-1;i++) {
				t=CT[i].endvex;
				w=GA[j][t];
				if(w<CT[i].weight) {
					CT[i].weight=w;
					CT[i].fromvex=j;
				}
			}
	}

	for(i=0;i<n-1;i++)
		
	{
		if(CT[i].weight<MaxValue)	//輸出邊集
			ttt<<"("<<CT[i].fromvex<<","<<CT[i].endvex<<")"<<CT[i].weight<<"  ";
		if(CT[i].weight==MaxValue) 
			ttt<<CT[i].endvex<< "     "; //輸出孤立點
	}
		ttt<<endl;
}
	
void main(int argc, char *argv[])
{
	ifstream tfile(argv[1]);
	ofstream ttt(argv[2]);
	adjmatrix GA,GB,GC;		//定義三個鄰接數組分別存原圖及A,B的鄰接矩陣
	edgeset CT1,CT2;  //定義兩個邊集數組分別存兩個網的最小生成樹
	int a=1,b=0,c=0,d=0,f=0,q;
	int dist1[100];		//存A到各點的權值
	int dist2[100];		//存B到各點的權值
	int h1[100];	//存各城市序號	
	int h2[100];
	int g1[100];	//存A網的城市序號
	int g2[100];	//存B網的城市序號
	int *visit=new int[n];	//定義一個數組,標記該城市是夠被占領,占領則置零

	if(tfile)
	{
		tfile>>n>>e;
		n=n+2;
		Create1(GA,n,e,tfile);	//構造保存圖的鄰接矩陣
	}
	
	tfile.close();
	findmin(GA,dist1,h1,0,n,ttt);	//找到A到各點的最短距離
	ttt<<endl;
	findmin(GA,dist2,h2,n-1,n,ttt);	//找到B到各點的最短距離
	ttt<<endl;

	dist1[0]=0;dist2[0]=0;
	dist1[n-1]=dist2[n-1]=MaxValue;
	h1[n-1]=h2[n-1]=MaxValue;
	for(int j=1;j<n-1;j++)
	{
		g1[j]=MaxValue;g2[j]=MaxValue;	//初始化g1,g2
	}
		for(j=1;j<n-1;j++)
		visit[j]=1;

	for( j=1;j<n/2;j++)
	{
		q=j;
		while(visit[h1[q]]==0&&q<n-2)	//如果該城市已被占領,則訪問下一個城市
			q++;

		d=q;
		if(q=n-2&&visit[h1[q]]==0)
			g1[a]=MaxValue;
		q=j;
		
		while(visit[h2[q]]==0&&q<n-2)
			q++;

		f=q;
		if(q=n-2&&visit[h2[q]]==0)
			g2[a]=MaxValue;
		q=j;
		
		if(h1[d]==h2[f]&&dist1[d]<=dist2[f])	//如果找到同一個城市但
		{								//A的距離短或相等,則給A,讓B往下一個找
			visit[h1[d]]=0;
			g1[a]=h1[d];
			f=f+1;
			while(visit[h2[f]]==0&&f<n-2)
				f++;
			g2[a]=h2[f];
			visit[h2[f]]=0;
		}
		
	else if(h1[d]==h2[f]&&dist1[d]>dist2[f])	//如果找到同一個城市但B
		{		//的距離較近,則給B,讓A往下一個找
			visit[h1[d]]=0;
			g2[a]=h2[f];
			d++;
			while(visit[h1[d]]==0&&d<n-2)
				d++;
			g1[a]=h1[d];
			visit[h1[d]]=0;

		}
	else if(h1[d]!=h2[f])
		{		//如果找到的不是同一個城市,則分別給A和B
			g1[a]=h1[d];g2[a]=h2[f];
			visit[h1[d]]=0;visit[h2[f]]=0;
		}
		a++;
	}

	ttt<<"A cities:";	//輸出A的城市
	for(j=1;j<=n/2;j++)
		{
		if(g1[j]!=MaxValue)
		{
			ttt<<setw(8)<<g1[j];
			b++;
		}
		else ;
	}
		ttt<<endl;
	ttt<<"B cities:";	//輸出B的城市
	for(j=1;j<=n/2;j++)
	{
		if(g2[j]!=MaxValue)
		{
			ttt<<setw(8)<<g2[j];
			c++;
		}
		else ;
	}


		ttt<<endl;
		ttt<<endl;
		ttt<<"A net:";
	tfile.open(argv[1]);
	if(tfile)
		{
		tfile>>b>>e;

		Create2(GB,n,e,g2,n-1,tfile);	//構造保存A網的臨接數組
	}

Prim(GB,CT1,g1,n,ttt);	//利用普里姆算法求出A網的最小生成樹

tfile.close();
ttt<<"B net:";
tfile.open(argv[1]);
	if(tfile)
		{
		tfile>>c>>e;

		Create2(GC,n,e,g1,0,tfile);	//構造保存B網的臨接數組
	}

Prim(GC,CT2,g2,n,ttt);	//利用普里姆算法求出B網的最小生成樹
ttt.close();
}
			

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品色在线观看| 成人精品国产一区二区4080| 国产人成亚洲第一网站在线播放 | 日韩电影在线免费看| 美女看a上一区| 97se亚洲国产综合自在线| 国产真实精品久久二三区| 看电影不卡的网站| 久久99精品国产.久久久久久| 麻豆精品国产传媒mv男同| 美女性感视频久久| 精品在线一区二区三区| 国产激情一区二区三区桃花岛亚洲| 国产精品自在欧美一区| 国产精品1024| 欧美自拍丝袜亚洲| 日韩视频一区二区在线观看| 久久综合久久久久88| 国产精品美女久久久久久久久久久 | 国产精华液一区二区三区| 国产亚洲欧美激情| 国产精品每日更新| 亚洲午夜激情av| 久热成人在线视频| 国产成人在线电影| 91丨porny丨最新| 欧美久久久久中文字幕| 精品国产乱码久久久久久久久| 国产欧美视频在线观看| 亚洲蜜桃精久久久久久久| 午夜视频一区二区| 成人性生交大片免费| 欧美日韩一区二区三区四区 | 国产伦精一区二区三区| a美女胸又www黄视频久久| 欧美妇女性影城| 国产精品网站在线观看| 亚洲乱码中文字幕| 日韩美一区二区三区| 久久久蜜桃精品| 亚洲综合色婷婷| 国产精品影视在线| 91麻豆精品国产91久久久更新时间| 亚洲精品在线免费播放| 夜夜亚洲天天久久| 成人性生交大片| 2021久久国产精品不只是精品| 亚洲视频一区在线| 国产精品一二三四| 4hu四虎永久在线影院成人| 中文字幕一区二区视频| 麻豆精品久久久| 欧美精品色一区二区三区| 国产精品国产三级国产| 国产精品一二三四区| 欧美一区二区免费视频| 亚洲成人动漫一区| 欧洲一区在线观看| √…a在线天堂一区| 日韩精品一区二区三区三区免费| 国产精品网站在线| 国产一区二区视频在线播放| 在线不卡一区二区| 日韩中文字幕1| 欧美精品一二三| 日韩精品福利网| 欧美三级视频在线观看| 亚洲自拍欧美精品| 色偷偷一区二区三区| 亚洲欧美激情插| 日本韩国欧美三级| 亚洲激情男女视频| 欧洲av一区二区嗯嗯嗯啊| 亚洲色图19p| 在线欧美小视频| 性久久久久久久久久久久 | 亚洲精品免费一二三区| 99国产精品国产精品毛片| 日本一区二区三级电影在线观看| 国产精品三级在线观看| 亚洲天堂福利av| 成人av在线播放网站| 中文av字幕一区| 99视频在线观看一区三区| 最新国产の精品合集bt伙计| a亚洲天堂av| 亚洲一区二区欧美激情| 欧美日韩精品三区| 麻豆国产一区二区| 国产欧美日韩三级| 91精彩视频在线| 日韩va亚洲va欧美va久久| 日韩免费高清视频| 国产精品99久久久久久久vr| 国产精品白丝在线| 欧美日韩一区精品| 国产精品综合网| 最新不卡av在线| 欧美日韩国产高清一区二区| 另类人妖一区二区av| 国产日韩亚洲欧美综合| 日本道精品一区二区三区| 国产调教视频一区| 成+人+亚洲+综合天堂| 亚洲精品乱码久久久久| 正在播放一区二区| 成人美女视频在线观看| 亚洲成av人片在线| 国产日韩成人精品| 欧美日韩大陆一区二区| 国产福利91精品一区| 一区二区在线观看不卡| 精品少妇一区二区三区视频免付费| 成人av综合一区| 美女精品一区二区| 亚洲精品免费在线| 亚洲国产精品99久久久久久久久| 色哟哟在线观看一区二区三区| 黑人巨大精品欧美一区| 亚洲综合一区二区三区| 久久久久国产精品免费免费搜索| 91黄视频在线观看| 国产精品中文字幕日韩精品| 香蕉乱码成人久久天堂爱免费| 国产色婷婷亚洲99精品小说| 555夜色666亚洲国产免| 国产精品高潮呻吟久久| 欧美一区二区在线看| 99久久久免费精品国产一区二区| 蜜桃视频在线观看一区二区| 亚洲综合免费观看高清完整版在线 | 风间由美性色一区二区三区| 亚洲v中文字幕| 亚洲视频小说图片| 国产精品家庭影院| 久久中文字幕电影| 日韩免费成人网| 日韩视频免费观看高清在线视频| 在线一区二区三区四区| www.欧美日韩国产在线| 成人综合激情网| 国产不卡免费视频| 国产美女精品一区二区三区| 麻豆一区二区三区| 蜜臀a∨国产成人精品| 亚洲成人黄色影院| 日韩激情一二三区| 欧美日韩精品一区视频| 精品国产污污免费网站入口 | 精品国产污网站| 欧美一区二视频| 日韩免费一区二区| 日韩一级片在线观看| 精品国产亚洲在线| 久久久久久久综合狠狠综合| 精品99一区二区| 国产午夜精品理论片a级大结局| 国产午夜精品理论片a级大结局| 精品成人一区二区三区四区| 久久久精品免费免费| 欧美国产精品劲爆| 亚洲天堂网中文字| 亚洲已满18点击进入久久| 亚洲电影你懂得| 日本vs亚洲vs韩国一区三区| 久久精品免费观看| 国产又粗又猛又爽又黄91精品| 国产精品1区2区| 91在线观看视频| 欧美另类z0zxhd电影| 99久久久久久| 久久伊99综合婷婷久久伊| 欧美成人女星排名| 久久久久久久综合| 一区二区三区四区中文字幕| 亚洲国产wwwccc36天堂| 韩国毛片一区二区三区| eeuss鲁片一区二区三区在线看| 一本大道久久精品懂色aⅴ| 欧美裸体一区二区三区| 国产日韩欧美精品电影三级在线 | 91丨九色丨尤物| 欧美久久一区二区| 中文字幕免费观看一区| 亚洲大型综合色站| 国产在线视频一区二区| 日本高清不卡视频| 久久嫩草精品久久久精品| 亚洲一区二区在线视频| 激情深爱一区二区| 欧美在线短视频| 中文字幕乱码亚洲精品一区| 性感美女久久精品| 成人app在线观看| 欧美成人一级视频| 欧美视频中文字幕| 色综合久久久久综合99| 欧美日韩在线播放三区| 精品国产伦理网| 午夜亚洲福利老司机|