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

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

1018. Public Bike Management 解析

2019-11-14 13:08:27
字體:
來源:轉載
供稿:網友

單用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
欧美性videos高清精品| 欧美日韩国产影院| 91精品视频免费观看| 国产视频综合在线| 亚洲综合小说区| 中文字幕精品国产| 性色av一区二区三区| 国产精品久久久久9999| 日韩欧美在线免费| 欧美精品福利在线| 日韩av在线影视| 精品久久久91| 欧美高清在线观看| 伊人久久免费视频| 成人性生交大片免费观看嘿嘿视频| 中文字幕日韩精品在线| 51精品国产黑色丝袜高跟鞋| 国产精品户外野外| 欧美极品少妇xxxxⅹ裸体艺术| 日韩精品999| 国产69精品久久久久99| 亚洲va欧美va国产综合剧情| 亚洲欧美综合精品久久成人| 国产亚洲欧洲高清一区| 成人写真福利网| 国产区精品在线观看| 欧美精品情趣视频| 欧美国产乱视频| 国产精品一区二区女厕厕| 91精品成人久久| 久久69精品久久久久久国产越南| 日韩免费观看高清| 国产99久久精品一区二区| 日韩中文字幕视频在线| 粉嫩av一区二区三区免费野| 国产亚洲欧美视频| 国产精品美女免费看| 在线播放日韩专区| 欧美日韩精品国产| 国产日韩专区在线| 国产91精品最新在线播放| 欧美在线亚洲一区| 亚洲第五色综合网| 成人国产精品免费视频| 色黄久久久久久| 亚洲第五色综合网| 91精品国产免费久久久久久| 成人网中文字幕| 欧美另类第一页| 成人黄色在线观看| 另类少妇人与禽zozz0性伦| 国产不卡精品视男人的天堂| 日韩欧美在线一区| 久久影院资源网| 国产一区在线播放| 久久精品国产2020观看福利| 欧美电影在线观看| 国产婷婷成人久久av免费高清| 久久久久国产精品免费| 欧美日韩国产限制| 久久影视免费观看| 一区二区亚洲精品国产| 亚洲一区二区少妇| 日韩av色综合| 国产一级揄自揄精品视频| 精品国产一区二区三区久久久狼| 亚洲3p在线观看| 国产精品女人久久久久久| 欧美精品videos| 91夜夜未满十八勿入爽爽影院| 国内精品400部情侣激情| 亚洲第一网站男人都懂| 亚洲午夜未删减在线观看| 日韩电影中文字幕在线观看| 日韩亚洲一区二区| 狠狠色噜噜狠狠狠狠97| 午夜精品www| 久久久这里只有精品视频| 2020欧美日韩在线视频| 中文国产成人精品| 日韩免费高清在线观看| 一区二区三区视频免费在线观看| 精品中文字幕在线观看| 日韩欧中文字幕| 青青在线视频一区二区三区| 欧美成人sm免费视频| 久久久999精品免费| 色综合久久88色综合天天看泰| 日韩在线观看免费网站| 欧美激情免费在线| 精品久久中文字幕久久av| 欧美最猛性xxxxx亚洲精品| 久久中文字幕国产| 国产精品露脸av在线| 国产精品久久久久久久天堂| 亚洲人成在线免费观看| 久久久影视精品| 亚洲伊人久久大香线蕉av| 久久国产精品久久久久久久久久| 福利微拍一区二区| 欧美最猛性xxxxx(亚洲精品)| 欧美专区日韩视频| 国产91露脸中文字幕在线| 国产免费一区二区三区香蕉精| 亚洲福利视频在线| 精品少妇一区二区30p| 亚洲天堂av综合网| 九九久久综合网站| 国产97免费视| www.亚洲男人天堂| 国产91av在线| 2021国产精品视频| 欧美在线视频观看| 国产日韩欧美在线播放| 色综合视频一区中文字幕| 欧美精品videossex性护士| 国产精品美女主播在线观看纯欲| 国产成人一区二区三区| 久久韩剧网电视剧| 国产精品9999| 中文字幕日韩精品在线观看| 日韩精品在线观看网站| 中文字幕亚洲欧美日韩高清| 91精品国产99久久久久久| 亚洲欧洲视频在线| 欧美日本黄视频| 欧美精品少妇videofree| 日本一区二区不卡| 中文字幕国产精品久久| 精品亚洲国产视频| 欧美肥臀大乳一区二区免费视频| 日韩经典一区二区三区| 色妞一区二区三区| 欧洲精品久久久| 亚洲高清久久网| 91久久在线观看| 美女性感视频久久久| 91免费综合在线| 欧美午夜视频一区二区| 在线观看国产精品日韩av| 麻豆国产va免费精品高清在线| 97超视频免费观看| 91av在线免费观看| 亚洲人成在线观看| 国内精品久久久久久久| 国产精品中文久久久久久久| 亚洲国产精品国自产拍av秋霞| 亚洲人成电影网站色xx| 精品国产31久久久久久| 亚洲va欧美va国产综合剧情| 日韩高清电影免费观看完整| 麻豆成人在线看| 久久精品国产精品亚洲| 亚洲男人av在线| 欧美华人在线视频| 久久久久久中文字幕| 国产精品精品久久久| 久久亚洲国产精品成人av秋霞| 欧美性videos高清精品| 亚洲欧洲视频在线| 91久久精品久久国产性色也91| 久久亚洲春色中文字幕| 中文字幕日韩欧美| 亚洲欧美另类自拍|