亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

1018. Public Bike Management 解析

2019-11-14 12:35:17
字體:
來源:轉載
供稿:網友

單用Dijstra算法比較難維護。用Dijstra+DFS能簡化不少。

看到有小伙伴例7有問題,可以看下是不是Dijstra的算法在計算路徑的時候出問題沒。我的就是下標u和i弄混了。查了好久。。。。。

#include <iostream>#include <vector>#include <string>#include <climits>#include <stack>using namespace std;struct Node {	int length;	int Num;};struct Grap {	int bIkeNum;	vector <Node> link;};void Dijkstra(Grap * g, int * dis ,vector<int> * PRe ,int N,bool * isvisit ) {	dis[0] = 0;	for (int i = 0; i < N; i++) {		int u = -1, Min = INT_MAX;		for (int j = 0; j < N; j++) { //找Dis最小值			if (!isvisit[j] && dis[j] < Min) {				u = j;				Min = dis[j];			}		}		if (u == -1) return;		isvisit[u] = true;				for (int j = 0; j < g[u].link.size(); j++) {			int v = g[u].link[j].Num;			if (!isvisit[v]) {				if (dis[u] + g[u].link[j].length < dis[v]) {//u是中間結點					pre[v].clear();					pre[v].push_back(u);					dis[v] = dis[u] + g[u].link[j].length;				}				else if (dis[u] + g[i].link[j].length == dis[v]) {					pre[v].push_back(u);				}			}		}	}}void DFS(vector <int> * pre, vector <int> & patch, vector <int> & tempatch, Grap * g, int & BikeNeed, int & BikeReturn, int v, int Cmax) {	//cout << " v = " << v << endl;	int perfect = Cmax / 2;	if (v == 0) {		tempatch.push_back(v);		int bn = 0, br = 0;		//計算大小		//cout << "size: " << tempatch.size() << endl;		for (int i = tempatch.size() - 1; i >= 0; i--) {			int b = g[tempatch[i]].bIkeNum;			if (b > perfect) {//大于perfect需要帶走				br += b - perfect;			}			else if (b < perfect){ //補齊				br -= (perfect - b);	//			cout << "br : " << br <<  endl;				if (br < 0) {//不夠補齊 要從中心調					bn += (-br);					br = 0;				}			}		}		//判斷		if (bn < BikeNeed) {			BikeNeed = bn;			BikeReturn = br;			patch = tempatch;		}		else if (bn == BikeNeed && br < BikeReturn) {			BikeNeed = bn;			BikeReturn = br;			patch = tempatch;		}		tempatch.pop_back();				return;	}	tempatch.push_back(v);	for (int i = 0; i < pre[v].size(); i++) {		DFS(pre, patch, tempatch, g, BikeNeed, BikeReturn, pre[v][i], Cmax);	}	tempatch.pop_back();}int main() {	int Cmax, N, SP, M;	//Cmax最大容量,N站總數,SP問題站編號,M道路總數	cin >> Cmax >> N >> SP >> M;	Grap * g = new Grap[N + 1];	stack <int> s;	for (int i = 1; i <= N; i++) {		cin >> g[i].bIkeNum;	}	g[0].bIkeNum = Cmax / 2;	Node tempNode;	int tempHead, tempTail;	for (int i = 0; i < M; i++) {		cin >> tempHead >> tempTail >> tempNode.length;		tempNode.Num = tempTail;		g[tempHead].link.push_back(tempNode);		//cout << tempHead << " " << tempNode.Num << " " << tempNode.length << endl;		tempNode.Num = tempHead;		g[tempTail].link.push_back(tempNode);		//cout << tempTail << " " << tempNode.Num << " " << tempNode.length << endl;	}//	int MinLegnth = INT_MAX;	bool * isVisit = new bool[N + 1];	int * dis = new int[N + 1];	vector <int> * pre = new vector<int>[N + 1];	for (int i = 0; i <= N; i++) {		dis[i] = INT_MAX;		isVisit[i] = false;	}	Dijkstra(g, dis, pre, N + 1, isVisit);	int BikeNeed = INT_MAX, BikeReturn = INT_MAX;	vector <int> patch, tempatch;	DFS(pre, patch, tempatch, g, BikeNeed, BikeReturn, SP, Cmax);	cout << BikeNeed << " ";	for (int i = patch.size() - 1; i > 0; i--) {		cout << patch[i] << "->";	}	cout << patch[0] << " ";	cout << BikeReturn << endl;	system("pause"); 	return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲大胆人体在线| 国产精品永久免费在线| 深夜福利一区二区| 欧美激情在线观看视频| 91精品国产91久久久久久吃药| 久久久久久久国产| 欧美精品日韩三级| 日韩中文第一页| 国产成人在线一区| 中文字幕亚洲一区二区三区五十路| 久久不射电影网| 国产最新精品视频| 久久久精品亚洲| 成人午夜黄色影院| 日韩成人av网址| 国产91精品久久久久久久| 国精产品一区一区三区有限在线| 欧美老妇交乱视频| 欧美猛少妇色xxxxx| 久热精品视频在线观看一区| 久热精品在线视频| 久热99视频在线观看| 国产日本欧美在线观看| 久久精品成人动漫| 毛片精品免费在线观看| 青青久久av北条麻妃黑人| 欧美精品999| 国产精品www网站| 国产精品视频区1| 欧美成人精品在线| 午夜精品蜜臀一区二区三区免费| 国产精品一区二区久久国产| 亚洲最新在线视频| 久久精品亚洲精品| 国产一区二区三区18| 国产91成人在在线播放| 岛国av一区二区在线在线观看| 国产suv精品一区二区三区88区| 国产视频丨精品|在线观看| 国产精品久久久久久av下载红粉| 国产视频在线观看一区二区| 91色精品视频在线| 亚洲精品中文字幕女同| 亚洲国产精品一区二区三区| 欧美一区二区视频97| 欧美久久精品午夜青青大伊人| 亚洲少妇中文在线| 91免费福利视频| 日本电影亚洲天堂| 日韩激情第一页| 欧美成人免费网| 亚洲一区二区精品| 国产欧美精品xxxx另类| 欧美激情在线观看视频| 亚洲第一区第二区| 高跟丝袜一区二区三区| 日韩一区二区久久久| 91免费高清视频| 亚洲最新中文字幕| 91精品视频在线播放| 性欧美xxxx交| 久久国产精品久久久久| 欧美午夜无遮挡| 国产视频在线一区二区| 大胆欧美人体视频| 日韩亚洲欧美中文高清在线| 日韩久久精品电影| 亚洲免费精彩视频| 亚洲性日韩精品一区二区| 中文字幕免费国产精品| 国产精品第10页| 欧美性受xxxx白人性爽| 日韩人体视频一二区| 91在线视频精品| 国产精品99久久99久久久二8| 自拍偷拍亚洲精品| 国产精品av免费在线观看| 日韩激情视频在线| 中文字幕精品—区二区| 国产精品爽黄69| 日韩欧美国产网站| 91欧美精品成人综合在线观看| 一区二区三区天堂av| 亚洲精品欧美极品| 欧美激情综合色| 91国内免费在线视频| 欧美高清视频在线播放| 亚洲精品资源在线| 欧美日韩免费一区| 欧美精品在线网站| 国产视频久久久久| 亚洲精品电影在线| 国产精品欧美一区二区| 亚洲图片欧美日产| 一二美女精品欧洲| 亚洲一区二区少妇| 国产成人精品亚洲精品| 日韩av在线电影网| 国产亚洲成精品久久| 国产欧美精品久久久| 成人国产精品色哟哟| 国产伦精品一区二区三区精品视频| 欧美日韩国产页| 亚洲天堂av综合网| 欧美日韩在线免费观看| 91免费福利视频| xxx欧美精品| 久久影院在线观看| 国产福利精品av综合导导航| 亚洲成年人影院在线| 国产精品影片在线观看| 国产亚洲欧美aaaa| 国产精品免费看久久久香蕉| 91在线高清免费观看| 欧美日韩亚洲天堂| 国产91色在线|| 亚洲天堂一区二区三区| 日韩美女免费观看| 成人性生交大片免费看视频直播| 亚洲热线99精品视频| 国产精品久久久| 欧美成人性生活| 精品亚洲男同gayvideo网站| 久久久久免费视频| 97超碰蝌蚪网人人做人人爽| 欧美成人一区二区三区电影| 欧美日韩亚洲高清| 九九精品视频在线| 久久成人精品电影| 欧美日韩午夜视频在线观看| 国产在线日韩在线| 伊人伊成久久人综合网小说| 亚洲日本欧美中文幕| 欧美性开放视频| 激情久久av一区av二区av三区| 欧美日韩精品在线播放| 亚洲天堂免费观看| 国产亚洲精品久久久久久| 在线观看欧美成人| 久久全球大尺度高清视频| 欧美丰满少妇xxxxx做受| 丝袜一区二区三区| 欧美精品www在线观看| 在线丨暗呦小u女国产精品| 久久久99久久精品女同性| 粉嫩老牛aⅴ一区二区三区| 日本中文字幕不卡免费| 亚洲人精选亚洲人成在线| 北条麻妃在线一区二区| 亚洲欧美日韩国产中文专区| 国产激情视频一区| 91在线观看免费网站| 91精品视频一区| 国产精品影院在线观看| 久国内精品在线| 成人黄色在线观看| 欧美成人午夜视频| 亚洲国产欧美自拍| 欧美人与性动交| 亚洲国产精品va在线看黑人动漫| 亚洲欧美制服中文字幕| 亚洲人成电影网站色www| 欧美精品久久久久久久| 久久久久国产精品免费网站|