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

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

?? b2007dlg.cpp

?? 2007高教社杯全國大學生數學建模競賽題目B題:乘公交
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
				m_Lines[curLine*2].m_pSations[pStations[0]] = station;
				
				for(int i = 1; i<nCount -1; i++)
				{
					memset(&station,0,sizeof(station));
					station.m_wSeq = i+1;
					station.m_wNext = pStations[i+1];
					station.m_wLast = pStations[i-1];

					m_Lines[curLine*2].m_pSations[pStations[i]] = station;
					
				}

				//Last
				station.m_wSeq = nCount;
				station.m_wNext = 0;
				station.m_wLast = pStations[i-1];
				
				m_Lines[curLine*2].m_pSations[pStations[i]] = station;

				for(i = 0; i<nCount; i++)
				{
					m_Lines[curLine*2+1].m_pSations[pStations[nCount -1 - i]].m_wSeq = i;
					m_Lines[curLine*2+1].m_pSations[pStations[nCount -1 - i]].m_wLast = m_Lines[curLine*2].m_pSations[pStations[i]].m_wNext;
					m_Lines[curLine*2+1].m_pSations[pStations[nCount -1 - i]].m_wNext = m_Lines[curLine*2].m_pSations[pStations[i]].m_wLast;
				}
			}

			delete []pStations;
		}

	} while(TRUE);

	f.Close();

	EndWaitCursor();
	GetDlgItem(IDC_INIT)->EnableWindow(FALSE);
	GetDlgItem(IDC_QUERY)->EnableWindow(TRUE);

}

void CB2007Dlg::OnQuery() 
{
	// TODO: Add your control notification handler code here
	UpdateData();

	if(m_nBegin == m_nEnd)
	{
		MessageBox("開始點等于結束點");
		return;
	}

	if(m_nBegin >= MAX_STAION)
	{
		MessageBox("開始點太大");
	}

	if(m_nEnd >= MAX_STAION)
	{
		MessageBox("結束點太大");
	}

	CString strResult;

	Element * tbl = new Element[MAX_STAION];
	
	tbl[m_nBegin].m_Added = TRUE;
// 	tbl[m_nBegin].m_costs.m_Changes = 0;
// 	tbl[m_nBegin].m_costs.m_Money = 0;
// 	tbl[m_nBegin].m_costs.m_Time = 0;
// 	tbl[m_nBegin].m_costs.m_walk = 0;

	//(1)初始化
	WORDLIST lstLines;
	GetLines(m_nBegin,lstLines);

	//每條線路
	POSITION pos = lstLines.GetHeadPosition();
	while(pos != NULL)
	{
		//
		WORD wLine = lstLines.GetNext(pos);
		
		//這條線路
		CLineInfo& Line = m_Lines[wLine];
		BOOL bCircular = Line.IsCircular();

		WORD wCurStation = m_nBegin;
		WORD nStationCount = 1;//相鄰一站
		do 
		{
			//下個站點
			WORD wNextStation = Line.m_pSations[wCurStation].m_wNext;
			//合法站點?

			BOOL bValid = FALSE;
			if(wNextStation != 0)//不是終點的下一站
			{
				if(bCircular && wNextStation != m_nBegin)//不是環線的開始站
				{
					bValid = TRUE;
				}
			}

			if(!bValid) break;

			//計算代價
			Cost cost;
			cost.m_walk = 0;
			//費用類別
			if(Line.m_FeeType == fe_Fix)
			{
				cost.m_Money = Line.m_Fee.Yuan;
			}
			else
			{
				ASSERT(Line.m_FeeType == fe_Float);
				cost.m_Money = (nStationCount + Line.m_Fee.Section-1)/Line.m_Fee.Section;
			}
			//多少站?
			cost.m_Time = nStationCount * BUS_RUN_TIME;//TODO 地鐵
			cost.m_Changes = 0;

			BOOL bUpdate = FALSE;

			if(cost.m_Time < tbl[wNextStation].m_costs.m_Time)//TODO 優化時間
			{
				bUpdate = TRUE;
			}

			if(bUpdate)//更新?
			{
				tbl[wNextStation].m_costs = cost;
				RouteNode node;
				node.m_wLine = wLine;
				node.m_wStation = wNextStation;
				node.m_nCount = nStationCount;
				
				//第一次,全部更新 以后只更新本次
				if(!tbl[wNextStation].m_Routes.IsEmpty())
				{
					tbl[wNextStation].m_Routes.RemoveAll();
					tbl[wNextStation].m_Routes.AddTail(node);
				}
			}

			wCurStation = wNextStation;

		} while(TRUE);
		
	}
	//End (1)

	do 
	{
		//(2)尋找一個不在N中的節點,花費最小
		//如果終點是花費最小的點,則結束

		UINT nMinPos = 0;//無效點
		for(int i = 2; i<MAX_STAION; i++)
		{
			Element &ele = tbl[i];
			if(ele.m_Added) continue;

			if(nMinPos == 0)
			{
				nMinPos = i;
				continue;
			}

			if(ele.m_costs.m_Time < tbl[nMinPos].m_costs.m_Time)//TODO
			{
				nMinPos = i;
			}
		}

		if(nMinPos == 0) break;//找完了

		if(nMinPos == m_nEnd)//找到了
		{
			MessageBox("找到了");
			break;
		}

		tbl[nMinPos].m_Added = TRUE;//加入集合

		//所有換乘線路
		GetLines(nMinPos,lstLines);

		//每條線路
		POSITION pos = lstLines.GetHeadPosition();
		while(pos != NULL)
		{
			//
			WORD wLine = lstLines.GetNext(pos);
			
			//這條線路
			CLineInfo& Line = m_Lines[wLine];
			BOOL bCircular = Line.IsCircular();

			WORD wCurStation = m_nBegin;
			WORD nStationCount = 1;//相鄰一站

			//所有站點

			do 
			{
				//下個站點
				WORD wNextStation = Line.m_pSations[wCurStation].m_wNext;
				//合法站點?

				BOOL bValid = FALSE;
				if(wNextStation != 0)//不是終點的下一站
				{
					if(bCircular && wNextStation != m_nBegin)//不是環線的開始站
					{
						bValid = TRUE;
					}
				}

				if(!bValid) break;

				//計算代價
				Cost cost;
				cost.m_walk = WALK_BUS_BUS;//換乘
				//費用類別
				if(Line.m_FeeType == fe_Fix)
				{
					cost.m_Money = Line.m_Fee.Yuan;
				}
				else
				{
					ASSERT(Line.m_FeeType == fe_Float);
					cost.m_Money = (nStationCount + Line.m_Fee.Section-1)/Line.m_Fee.Section;
				}
				//多少站?
				cost.m_Time = nStationCount * BUS_RUN_TIME;//TODO 地鐵
				cost.m_Changes = 1;

				BOOL bUpdate = FALSE;

				if(cost.m_Time < tbl[wNextStation].m_costs.m_Time)//TODO 優化時間
				{
					bUpdate = TRUE;
				}

				if(bUpdate)//更新?
				{
					tbl[wNextStation].m_costs = cost;
					RouteNode node;
					node.m_wLine = wLine;
					node.m_wStation = wNextStation;
					node.m_nCount = nStationCount;
					
					//第一次,全部更新 以后只更新本次
					if(!tbl[wNextStation].m_Routes.IsEmpty())
					{
						tbl[wNextStation].m_Routes.RemoveAll();
						tbl[wNextStation].m_Routes.AddTail(node);
					}
				}

				wCurStation = wNextStation;

			} while(TRUE);
			
		}

		//End (2)
	} while(TRUE);
	
	delete[]tbl;
}

CString CB2007Dlg::GetPath()
{
	CString strPath;
	
	TCHAR szFullPath[MAX_PATH];
	TCHAR szDir[_MAX_DIR];
	TCHAR szDrive[_MAX_DRIVE];
	
	//Get application's full path.
	::GetModuleFileName(NULL, szFullPath, MAX_PATH);
	
	//Break full path into separate components.
	_splitpath(szFullPath, szDrive, szDir, NULL, NULL);
	strPath = szDir;
	return strPath;
}

int CB2007Dlg::ParseLine(CString strNotToUse,WORD *pNum,WORD wLine)
{
	CString strLine = strNotToUse;

	ASSERT(pNum != NULL);
	int nReturn = 0;
	int nPos = 0;
	while((nPos = strLine.Find('-')) != -1)
	{
		CString str = strLine.Left(nPos);
		strLine = strLine.Mid(nPos+1);
		pNum[nReturn]=atoi(str.Mid(1));//S,D, etc
		nReturn ++;
	}
	
	//the Last one
	pNum[nReturn]=atoi(strLine.Mid(1));//S,D, etc
	nReturn ++;

	for(int i = 0; i< nReturn; i++)
	{
		for(int j = i+1; j< nReturn ; j++)
		{
			
			if(pNum[i] == pNum[j])
			{
				if((i == 0) && (j == nReturn-1))
				{
					continue;
				}
				else
				{
					TRACE("\n錯誤(%d)%d %d %d:"+strNotToUse,wLine,i+1,j+1,nReturn);
				}
				
			}
		}
	}
	return nReturn;
}

void CB2007Dlg::GetLines(WORD wStation, WORDLIST& lstReturn)
{
	lstReturn.RemoveAll();
	for(int i = 1; i< 2*MAX_LINE; i++)
	{
		if(m_Lines[i].m_pSations[wStation].m_wSeq != 0)
		{
			lstReturn.AddTail(WORD(i));
		}
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费毛片app| 日韩一级二级三级| 国产精品视频线看| 成人精品高清在线| 亚洲伊人伊色伊影伊综合网| 欧美日韩黄色一区二区| 麻豆中文一区二区| 久久久噜噜噜久噜久久综合| 国产精品一区二区黑丝| 亚洲啪啪综合av一区二区三区| 91九色最新地址| 九九久久精品视频| 国产欧美日韩亚州综合| 精品视频在线免费观看| 国产成人综合视频| 日日夜夜精品视频天天综合网| 亚洲精品一区二区三区蜜桃下载 | 日韩午夜激情视频| 日韩三级视频在线看| 精品国产乱码久久| 中文字幕av一区 二区| 欧美一区二区观看视频| av不卡在线观看| 经典三级在线一区| 成a人片亚洲日本久久| 色天使色偷偷av一区二区| 国产在线不卡一区| 日本在线观看不卡视频| 一区二区视频在线看| 欧美喷潮久久久xxxxx| 91精品国产麻豆国产自产在线 | 韩国毛片一区二区三区| 亚洲成人中文在线| 亚洲美女视频一区| 免费美女久久99| 美女任你摸久久| 91小视频在线免费看| av不卡免费在线观看| 在线播放亚洲一区| 欧美精品在线观看播放| 国产三级久久久| 亚洲成人在线网站| 成人午夜在线视频| 日韩欧美你懂的| 日韩欧美一级在线播放| 中文字幕一区二区在线观看| 国产精品美女久久久久av爽李琼| 亚洲国产日韩a在线播放性色| 亚洲曰韩产成在线| 国产超碰在线一区| 成人不卡免费av| 欧美一区二区三区精品| 亚洲免费视频成人| 国产福利精品一区| 日韩视频免费直播| 亚洲高清在线精品| 91首页免费视频| 一区精品在线播放| 国产91丝袜在线播放| 夜夜嗨av一区二区三区| 国产高清在线观看免费不卡| 日韩视频在线你懂得| 一区二区三区日韩在线观看| av在线不卡电影| 日本一区二区综合亚洲| 国产一区999| 精品噜噜噜噜久久久久久久久试看| 26uuu欧美| 综合欧美亚洲日本| 天天综合天天综合色| 国产伦精品一区二区三区视频青涩 | 中文字幕中文字幕在线一区 | 日韩一区二区三区视频在线| 亚洲综合在线第一页| 99免费精品在线| 亚洲欧洲成人av每日更新| 国产一区二区三区免费在线观看| 日韩美女一区二区三区四区| 日韩激情视频在线观看| 欧美精品在欧美一区二区少妇| 亚洲午夜在线电影| 欧美卡1卡2卡| 男女视频一区二区| 精品国产污污免费网站入口 | 欧美日韩一区二区三区不卡| 亚洲一区二区三区四区中文字幕| 色丁香久综合在线久综合在线观看| 国产精品短视频| 色婷婷av一区二区三区大白胸| 亚洲激情第一区| 欧美亚洲国产一卡| 日韩欧美www| 国产精品中文字幕欧美| 欧美高清在线一区二区| 97久久人人超碰| 欧美r级电影在线观看| 久草在线在线精品观看| 久久免费美女视频| 91亚洲国产成人精品一区二三| 伊人一区二区三区| 亚洲欧美国产77777| 欧美日韩国产小视频| 黄色精品一二区| 中文字幕一区二区三区蜜月| 欧美日韩另类一区| 国产一区三区三区| 亚洲蜜臀av乱码久久精品| 88在线观看91蜜桃国自产| 亚洲欧洲国产日本综合| 欧美日韩国产综合视频在线观看| 麻豆精品久久精品色综合| 中文字幕第一区综合| 欧美日韩高清在线播放| 国产精品99久久久久久久vr| 亚洲精品国产第一综合99久久| 欧美一区二区三区免费观看视频| 国产盗摄一区二区| 亚洲va中文字幕| 国产精品毛片久久久久久久| 欧美日韩一区视频| 懂色av一区二区三区免费观看| 天天色综合成人网| 亚洲人精品一区| 久久久av毛片精品| 日韩二区三区在线观看| 日本一区二区高清| 欧美一区二区人人喊爽| www.亚洲激情.com| 国产米奇在线777精品观看| 亚洲愉拍自拍另类高清精品| 欧美—级在线免费片| 日韩欧美美女一区二区三区| 色哟哟一区二区在线观看| 国产高清成人在线| 蜜臀精品一区二区三区在线观看 | 老司机精品视频一区二区三区| 91麻豆精品国产无毒不卡在线观看| 国产精品亚洲视频| 美女www一区二区| 婷婷综合另类小说色区| 亚洲精品自拍动漫在线| 国产欧美日韩在线看| www精品美女久久久tv| 在线成人av网站| 欧美日韩成人在线| 欧美日韩免费不卡视频一区二区三区| 99视频有精品| 97久久超碰国产精品电影| 国产宾馆实践打屁股91| 国产麻豆欧美日韩一区| 精品午夜久久福利影院| 精品一二三四区| 老司机精品视频在线| 久久99精品久久久久久| 麻豆精品视频在线观看视频| 日韩va欧美va亚洲va久久| 五月天丁香久久| 日韩中文字幕av电影| 三级影片在线观看欧美日韩一区二区| 一区二区三区日本| 亚洲成人av福利| 日本亚洲视频在线| 美女视频免费一区| 国产精一品亚洲二区在线视频| 韩国精品一区二区| 国产成人综合网站| 91麻豆福利精品推荐| 欧美在线不卡视频| 国产 欧美在线| 成人av在线观| 欧美性xxxxxxxx| 91精品婷婷国产综合久久竹菊| 欧美一区三区二区| 久久精品亚洲精品国产欧美kt∨ | 亚洲一区视频在线观看视频| 亚洲高清免费在线| 久久精品99国产精品| 国产成人在线视频网站| 色呦呦一区二区三区| 91精品国产全国免费观看 | 成人午夜视频福利| 91色九色蝌蚪| 这里只有精品电影| 男女男精品视频网| 大陆成人av片| 欧美精品在线观看播放| 国产三级精品在线| 日韩福利视频导航| 成人免费毛片片v| 5566中文字幕一区二区电影 | 最新中文字幕一区二区三区| 香蕉加勒比综合久久| 国产91清纯白嫩初高中在线观看| 99久久精品免费| 欧美白人最猛性xxxxx69交| ●精品国产综合乱码久久久久| 日韩va亚洲va欧美va久久| 99精品视频一区| 久久老女人爱爱| 日韩高清在线不卡|