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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

中国地图着色问题c语言,中国地图四色染色问题.doc

發布時間:2023/12/10 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 中国地图着色问题c语言,中国地图四色染色问题.doc 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

中國地圖四色染色問題

中國地圖四色染色問題

問題描述

將中國地圖用四種不同的顏色紅、藍、綠、黃來染色,要求相鄰的省份染色不同,

問題分析

本文將中國地圖的34個省、直轄市、自治區、特別行政區、、、行政區則問題轉化為圖論中的染色問題。由于海南、省不任何省份相鄰,如果除海南、外如果n種染色方法,加上海南和臺灣省后,4*4*n種染色方法。考慮除海南和臺灣后的32的染色方法。地圖染色方法

采用分開和臺灣省的分析方法,的原因是除海南和臺灣后的32,組成一個聯通圖,海南省和臺灣省不和任何其它省份鄰接。另一方面,建立一個聯通圖模型后,染色問題用深度優先遍歷算法DFS,廣度算法BFS解決,該方法的時間復雜度較高,暴力法,考慮兩個省份可以減少計算機處理此問題的時間。采用DFS來解決這個染色問題。

3.1 簡介

算法圖的一種的深度遍歷算法,即按照的地方遍歷一個圖,到一個分支的盡頭,返回到最近一個未被遍歷的結點,深度遍歷。

的具體步驟可為下:

所有結點為“未”標記。

起始結點,標記為“訪問”標記

始結點入棧

若棧為空,;若棧不為空,棧頂元素,該元素存在未被訪問的頂點,輸出一個鄰接頂點,置為“訪問”狀態,;,元素退出棧頂。

3.2 中的DFS算法設計我們先對結點染色,用從該結點出發,遍歷該圖,的下一結點顏色染為與之相鄰的結點不同的顏色即可。該結點無法染色則回到上一個結點重新染色,所有的結點都被染色即可。統計染色種數。

問題的算法代碼描述如下:

_DFS(當前染色結點):

i in 所有顏色

{while j的已染色鄰接點

j相鄰點被染i顏色

并break標記

{

當前結點為i

if 當前結點為最后一個結點

else

color_DFS(next)

}

3.3 數據結構設計實現DFS染色算,需要設計的數據結構。圖的結點不多,只有32,采用圖的鄰接矩陣來存儲該圖,為map[33][33],ma[0]不存儲數據,兩結點i相鄰,[i][j]=1,否則[i][j]=0。

便于計算機編程,將每一個地名用相應結點號表示,1:2:"西藏",3:"青海",4:"甘肅",5:"內蒙古",6:"寧夏",7:"黑龍江",8:"吉林",9:"遼寧",10:"河北",11:"北京",12:"山西",13:"陜西",14:"山東",15:"天津",16:"河南",17:"安徽",18:"江蘇",19:"上海",20:"浙江",21:"福建",22:"江西",23:"廣東",24:"湖南",25:"湖北",26:"重慶",27:"四川",28:"貴州",29:"云南",30:"廣西",31:"香港32:"澳門"。

新疆和西藏相鄰,我們就可以用map[1][2]=1。

地,顏色我們也可以用一個數字來表示,在這里,數字來代表顏色,比如1-2-藍、3-綠、4-黃。

語言代碼實現

#include

#include

using namespace std;

int map[33][33];

int vis[33];

int n,m;

long long cnt;//染色方法設置為long long防止溢出

void init_map()

{

map[1][2]=map[2][1]=1;//表示新疆和西藏連通

map[1][3]=map[3][1]=1;

map[1][4]=map[4][1]=1;

map[2][3]=map[3][2]=1;

map[2][27]=map[27][2]=1;

map[2][29]=map[29][2]=1;

map[3][4]=map[4][3]=1;

map[3][27]=map[27][3]=1;

map[4][5]=map[5][4]=1;

map[4][6]=map[6][4]=1;

map[4][13]=map[13][4]=1;

map[4][27]=map[27][4]=1;

map[5][6]=map[6][5]=1;

map[5][7]=map[7][5]=1;

map[5][8]=map[8][5]=1;

map[5][9]=map[9][5]=1;

map[5][10]=map[10][5]=1;

map[5][12]=map[12][5]=1;

map[5][13]=map[13][5]=1;

map[6][13]=map[13][6]=1;

map[7][8]=map[8][7]=1;

map[8][9]=map[9][8]=1;

map[9][10]=map[10][9]=1

總結

以上是生活随笔為你收集整理的中国地图着色问题c语言,中国地图四色染色问题.doc的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。