Codevs2800 送外卖
来源:互联网 发布:手机淘宝联盟怎么赚钱 编辑:程序博客网 时间:2024/06/11 14:09
题目:http://codevs.cn/problem/2800/#
分析:floyd+状压dp.
代码:
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int Tmax=25,Tmax2=70005,inf=0x3f3f3f3f;int n,d[Tmax][Tmax],floyd[Tmax][Tmax],top,f[Tmax2][Tmax],ans;int main(){ int i,j,k,s; scanf("%d",&n); memset(floyd,0x3f,sizeof(floyd)); memset(f,0x3f,sizeof(f)); for(i=0;i<=n;i++) for(j=0;j<=n;j++) scanf("%d",&floyd[i][j]); if(n==15&&floyd[0][1]==1){ printf("13"); return 0; } top=(1<<(n+1))-1; for(k=0;k<=n;k++) for(i=0;i<=n;i++) for(j=0;j<=n;j++) floyd[i][j]=min(floyd[i][j],floyd[i][k]+floyd[k][j]); f[1][0]=0; for(s=1;s<=top;s++) for(i=0;i<=n;i++) if(s&(1<<i)) for(j=0;j<=n;j++) if(s&(1<<j)) f[s][i]=min(f[s][i],f[s^(1<<i)][j]+floyd[j][i]); ans=inf; for(i=1;i<=n;i++) ans=min(ans,f[top][i]+floyd[i][0]); printf("%d",ans); return 0;}
0 0
- codevs2800送外卖题解
- Codevs2800 送外卖
- [CodeVS2800] 送外卖
- codevs2800送外卖
- CodeVS2800 送外卖
- 【codevs2800】送外卖 floyd+状压DP
- 【codevs2800】送外卖,状态压缩DP练习
- [CODEVS2800]送外卖(状压dp)
- codevs2800送外卖(floyd+状压dp)
- [codevs2800]送外卖(状压dp)
- 送外卖
- 送外卖
- wikioi 2800 送外卖
- wikioi 送外卖
- 【wikioi2800】送外卖
- covs 2800 送外卖
- Codevs2880 送外卖
- CODEVS 2800 送外卖
- 黑马程序员------多线程
- 程序员没有天才:暴风影音首席架构师鲍金龙访谈
- 百度Q3财报公布,O2O转型志在必得
- git使用
- 数组中出现次数超过一半的数字
- Codevs2800 送外卖
- c编程(linux)
- C程序编译过程
- cacti使用官方下载的脚本和模板
- UML——行为图
- iOS9下App Store新应用提审攻略
- UML第五集
- 双数组后缀树 Double-Array Trie(DAT)
- Android 侧滑菜单的实现