aasde
来源:互联网 发布:兼职网络海报设计 编辑:程序博客网 时间:2024/06/04 17:43
#include<iostream>using namespace std;#define NUM 100int n;int m;int a[NUM][NUM];int x[NUM];int bestx[NUM];int cc;int bestc;int NoEdge=-1;void BackTrack(int t){ int i; if(t==n) { if(a[x[n-1]][x[n]]!=NoEdge&&a[x[n]][1]!=NoEdge&& (cc+a[x[n-1]][x[n]]+a[x[n]][1]<bestc||bestc==NoEdge)) { for(i=1;i<=n;i++) bestx[i]=x[i]; bestc=cc+a[x[n-1]][x[n]]+a[x[n]][1]; } return ; } else { for(i=t;i<=n;i++) { if(a[x[t-1]][x[i]]!=NoEdge&&(cc+a[x[t-1]][x[i]]<bestc||bestc==NoEdge)) { swap(x[t],x[i]); cc+=a[x[t-1]][x[t]]; BackTrack(t+1); cc-=a[x[t-1]][x[t]]; swap(x[t],x[i]); } } }}int main(){ while(cin>>n&&n) { cin>>m; int i,j,length; for(i=1;i<=n;i++) for(j=1;j<=n;j++) a[i][j]=NoEdge; for(int k=1;k<=m;k++) { cin>>i>>j>>length; a[i][j]=a[j][i]=length; } for(i=1;i<=n;i++) x[i]=i; bestc=NoEdge; BackTrack(2); for(i=1;i<=n;i++) cout<<bestx[i]<<' '; cout<<endl; cout<<bestc<<endl; } return 0;}
0 0
- aasde
- leetcode---Sudoku Solver---深搜
- HDFS的运行原理
- JuheNews系列之二 · ToolBar+AppBarLayout+CoordinatorLayout+CollapsingToolbarLayout
- 【不算奇葩的问题】MDK调试stm32遇到BEAB BKPT 0xAB,重定向printf的BUG
- 2016SDAU课程练习三1015 Problem O
- aasde
- leetcode 27. Remove Element
- 基于linux 3.10.49内核的pinctrl流程分析 补充
- HDU 4405 Aeroplane chess
- 基于范围的 for 语句 (C++)
- SSH防止暴力破解和xinetd超级服务的使用
- Vue使用v-for报Duplicate value found in v-for="...": "". Use track-by="$index" 错误解决方法
- 韩顺平Spring框架学习,学习笔记(十二)
- Ubuntu14连接MySql报错“can't connect to local mysql server through socket '/var/run/mysqld/mysqld.sock'”