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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java 着色问题 回溯算法,C语言使用回溯法解旅行售货员问题与图的m着色问题

發布時間:2023/12/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 着色问题 回溯算法,C语言使用回溯法解旅行售货员问题与图的m着色问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

旅行售貨員問題

1.問題描述:

旅行售貨員問題又稱TSP問題,問題如下:某售貨員要到若干個城市推銷商品,已知各城市之間的路程(或旅費),他要選定一條從駐地出發,經過每個城市一遍最后回到駐地的路線,使總的路線(或總的旅費)最小。數學模型為給定一個無向圖,求遍歷每一個頂點一次且僅一次的一條回路,最后回到起點的最小花費。

2.輸入要求:

輸入的第一行為測試樣例的個數T( T < 120 ),接下來有T個測試樣例。每個測試樣例的第一行是無向圖的頂點數n、邊數m( n < 12,m < 100 ),接下來m行,每行三個整數u、v和w,表示頂點u和v之間有一條權值為w的邊相連。( 1 <= u < v <= n,w <= 1000 )。假設起點(駐地)為1號頂點。

3.輸出要求:

對應每個測試樣例輸出一行,格式為"Case #: W",其中'#'表示第幾個測試樣例(從1開始計),W為TSP問題的最優解,如果找不到可行方案則輸出-1。

4.樣例輸入:

2

5 8

1 2 5

1 4 7

1 5 9

2 3 10

2 4 3

2 5 6

3 4 8

4 5 4

3 1

1 2 10

5.樣例輸出:

Case 1: 36

Case 2: -1

6.解決方法:

//旅行售貨員問題 (回溯)

#include

#define N 100

using namespace std;

int n,m,w, //圖的頂點數和邊數

graph[N][N], //圖的加權鄰接矩陣

c=0, //當前費用

bestc=-1, //當前最優值

x[N], //當前解

bestx[N]; //當前最優解

void backtrack(int k);

void swap(int &a,int &b);

void swap(int &a,int &b)

{

int temp=a;

a=b;

b=temp;

}

void backtrack(int k)

{

if(k==n)

{

if( (c+graph[x[n-1]][x[n]]+graph[x[n]][1]

{

bestc=c+graph[x[n-1]][x[n]]+graph[x[n]][1];

for(int i=1;i<=n;i++)

{

bestx[i]=x[i];

}

}

return ;

}

else

{

for(int i=k;i<=n;i++)

{

if( graph[x[k-1]][x[i]]!=-1 && (c+graph[x[k-1]][x[i]]

{

swap(x[i],x[k]);

c+=graph[x[k-1]][x[k]];

backtrack(k+1);

c-=graph[x[k-1]][x[k]];

swap(x[i],x[k]);

}

}

}

}

int main(void)

{

int i,j,tmp=1,testNum;

cin>>testNum;

while(tmp<=testNum)

{

cin>>n>>m;

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

graph[i][j]=-1;

for(int k=1;k<=m;k++)

{

cin>>i>>j>>w;

graph[i][j]=w;

graph[j][i]=w;

}

for(i=1;i<=n;i++)

{

x[i]=i;

bestx[i]=i;

}

backtrack(2);

cout<

bestc=-1;

c=0;

tmp++;

}

return 0;

}

圖的m著色問題

1.問題描述給定無向連通圖G和m種不同的顏色。用這些顏色為圖G的各頂點著色,每個頂點著一種顏色。是否有一種著色法使G中每條邊的2個頂點著不同顏色,求有多少種方法為圖可m著色。

2.輸入要求:輸入的第一個為測試樣例的個數T ( T < 120 ),接下來有T個測試樣例。每個測試樣例的第一行是頂點數n、邊數M和可用顏色數m( n <= 10,M < 100,m <= 7 ),接下來M行,每行兩個整數u和v,表示頂點u和v之間有一條邊相連。( 1 <= u < v <= n )。

3.輸出要求:對應每個測試樣例輸出兩行,第一行格式為"Case #: W",其中'#'表示第幾個測試樣例(從1開始計),W為可m著色方案數。

4.樣例輸入:

1

5 8 5

1 2

1 3

1 4

2 3

2 4

2 5

3 4

4 5

5.樣例輸出:

Case 1: 360

6.解決方法:

#include

using namespace std;

#define N 100

int m,n,M,a[N][N],x[N],textNum;

int static sum=0;

bool ok(int k)

{

for(int j=1;j<=n;j++)

if(a[k][j]&&(x[j]==x[k]))

return false;

return true;

}

void backtrack(int t)

{

if(t>n)

{

sum++;

// for(int i=1;i<=n;i++)

//cout<

//cout<

}

else

for(int i=1;i<=m;i++)

{

x[t]=i;

if(ok(t))

backtrack(t+1);

x[t]=0;

}

}

int main()

{

int i,j,z=1;

cin>>textNum; //輸入測試個數

while(textNum>0)

{

cin>>n; //輸入頂點個數

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

a[i][j]=0;

cin>>M>>m; //輸入邊的個數、可用顏色數

for(int k=1;k<=M;k++) //生成圖的鄰接矩陣

{

cin>>i>>j;

a[i][j]=1;

a[j][i]=1;

}

/* for(i=1;i<=n;i++){

for(j=1;j<=n;j++)

cout<

cout<

for(i=0;i<=n;i++)

x[i]=0;

backtrack(1);

cout<

sum=0;

textNum--;

z++;

}

return 0;

}

總結

以上是生活随笔為你收集整理的java 着色问题 回溯算法,C语言使用回溯法解旅行售货员问题与图的m着色问题的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日本999视频 | 久热在线 | 老司机免费精品视频 | 阿v天堂在线 | 五月天av网 | 欧美乱视频 | 久久久久久久久久国产精品 | 北条麻妃一二三区 | 日本伊人影院 | 在线免费福利视频 | 亚洲欧美成人一区二区三区 | 国产精品成av人在线视午夜片 | 男人狂揉女人下部视频 | 久久人人做 | 性欢交69精品久久久 | 久久久国产精品x99av | 人妻中文字幕一区二区三区 | 国产成人精品视频一区二区 | 两性午夜视频 | 性——交——性——乱免费的 | 福利一区视频 | av网站免费在线 | 亚洲欧美日韩综合 | 国产乱码精品一区二区三区五月婷 | av网天堂 | 老女人黄色片 | 天堂bt在线 | 天天草夜夜操 | av在线不卡播放 | 日韩午夜在线播放 | 精品人妻一区二区三区蜜桃视频 | 日本少妇xxx | 瑟瑟久久| 欧美专区第一页 | 国产成人无码精品久久久电影 | 亚洲综合久久久 | 中文在线资源 | jjzzjjzz欧美69巨大 | 青青操网站 | 久久久久中文 | 国产日韩久久 | 高h视频在线播放 | 一个色在线视频 | 在线黄色av网站 | 天天操夜夜撸 | 欧美一二区 | 日美韩av | 91一区| 特大黑人娇小亚洲女 | 亚洲色图21p | 免费观看成人鲁鲁鲁鲁鲁视频 | 久久爱99 | 哺乳期av | 成人毛片18女人毛片 | 人妻互换 综合 | 日韩一区二区三区在线 | 国产一级视频免费观看 | 亚洲国产一区二区在线观看 | 国产一级片免费 | 国产午夜小视频 | 麻豆网站免费观看 | 少妇av片| 欧美日韩高清一区二区 国产亚洲免费看 | 国产三级精品视频 | 国产精品久久欧美久久一区 | 欧美成人免费观看视频 | 亚洲精品乱码久久久久久久 | 国产伦理精品 | 成人在线综合 | 亚洲经典一区二区三区四区 | 男人天堂av电影 | 中文在线字幕免费观看电 | 原神淫辱系列同人h | 亚洲免费一 | 国产一二在线 | 日韩av一区在线观看 | 免费网站在线观看视频 | 波多野结衣久久精品 | 国产精品69久久久久 | av永久| 天天操天天爱天天干 | 国产色一区 | 国产永久免费无遮挡 | 一区三区视频 | 看毛片的网址 | wwwww国产 | 美女毛片在线 | 日本少妇高潮抽搐 | 精品国产综合区久久久久久 | 亚洲伦理天堂 | 精品一级| 91狠狠爱| 9l视频自拍九色9l视频 | 日本日皮视频 | 99热在线观看免费 | 亚洲国产黄色片 | 美女试爆场恐怖电影在线观看 | 亚洲免费视频网站 | 亚洲成人av片 |