WIKIOI 2941 西游记 题解与分析
来源:互联网 发布:淘宝的蔬菜种子靠谱吗 编辑:程序博客网 时间:2024/06/05 10:13
【题目链接】:http://www.wikioi.com/problem/2941/
【分析】:详见http://blog.csdn.net/csyzcyj/article/details/17332883
【代码】:
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<algorithm>#include<iostream>#include<vector>#include<bitset>using namespace std;#define MAX 20#define MAXN 65537#define IMAX 2147483647long long N,map[MAX][MAX],f[MAXN][MAX],state[MAX][MAXN],num[MAXN];long long ans=IMAX;void floyed(){ for(int k=0;k<=N;k++) for(int i=0;i<=N;i++) for(int j=0;j<=N;j++) if(map[i][j]>map[i][k]+map[k][j]) map[i][j]=map[i][k]+map[k][j]; }void work(){ for(int i=0;i<=(1<<(N+1));i++) for(int j=0;j<=N+1;j++) f[i][j]=IMAX; for(int i=0;i<(1<<N);i++) { int tot=0; for(int j=0;j<N;j++) if(((1<<j)&i)) tot++; state[tot][++num[tot]]=i; } for(int i=1;i<=N;i++) f[(1<<(i-1))][i]=map[0][i]; for(int i=1;i<N;i++) for(int l=1;l<=num[i];l++) for(int j=1;j<=N;j++) { if(((1<<(j-1))&state[i][l])) for(int k=1;k<=N;k++) { if(!((1<<(k-1))&state[i][l])) f[(state[i][l]+(1<<(k-1)))][k]=min(f[(state[i][l]+(1<<(k-1)))][k],f[state[i][l]][j]+map[j][k]); } }}int main(){ //freopen("input.in","r",stdin); //freopen("output.out","w",stdout); scanf("%lld",&N); for(int i=0;i<=N;i++) for(int j=0;j<=N;j++) scanf("%lld",&map[i][j]); floyed(); work(); for(int i=1;i<=N;i++) ans=min(ans,f[(1<<N)-1][i]+map[i][0]); printf("%lld\n",ans); return 0;}
转载注明出处:http://blog.csdn.net/u011400953
0 0
- WIKIOI 2941 西游记 题解与分析
- WIKIOI 1344 线型网络 题解与分析
- WIKIOI 3162 抄书问题 题解与分析
- WIKIOI 2800 送外卖 题解与分析
- WIKIOI 1213 解的个数 题解与分析
- WIKIOI 2488 绿豆蛙的归宿 题解与分析
- WIKIOI 3163 抄书问题2 题解与分析
- WIKIOI 1213 解的个数 题解与分析
- 西游记分析
- 项目团队与西游记
- 西游记与系统设计
- 【WikiOI】【P1036】【商务旅行】【题解】【LCA】
- URAL 1018 题解与分析
- 西游记
- 西游记
- 西游记
- 西游记
- 西游记
- coco2d-x 2.2.1 安装与工程创建
- 十四章第五题
- WIKIOI 2800 送外卖 题解与分析
- 黑马程序员_Java基础总结
- 解决当把系统自带的UIImagePickerController 作为一个uiviewcontroller时有20像素间隙的问题
- WIKIOI 2941 西游记 题解与分析
- POJ-1083-Moving Tables-2013-11-26 16:43:58
- 关于Java IO
- Http通信
- 一个弹出模态窗口的例子
- URAL 1018 题解与分析
- ubuntu 10.04/13.04 安装gcc/g++ 4.8.2 完全支持c++0x/c++11
- iOS开发中常用函数及控件
- python 条件变量 生产者与消费者