Codevs 3122 奶牛代理商 VIII(状压DP)
3122 奶牛代理商 VIII
时间限制: 3 s
空间限制: 256000 KB
题目等级 : 大师 Master
题目描述 Description
小徐是USACO中国区的奶牛代理商,专门出售质优价廉的“FJ”牌奶牛。
有一天,她的奶牛卖完了,她得去美国进货。
她需要去N个奶牛农场询问价格(小徐是个认真的人,买东西一定要货比三家)。
给你一个邻接矩阵,表示N个农场间的路径长度,求小徐最少走多少路。(从农场1出发,最后回到出发点买)
输入描述 Input Description
N
邻接矩阵
输出描述 Output Description
答案(见描述)
样例输入 Sample Input
3
0 1 2
3 0 10
2 0 0
样例输出 Sample Output
5
数据范围及提示 Data Size & Hint
N<=15,路径长度<=1000
TSP
分类标签 Tags
动态规划 状态压缩型DP
/*
仍然是入门题.
*/
#include<iostream>
#include<cstring>
#include<cstdio>
#define MAXN 70001
using namespace std;
int f[MAXN][16],n,g[16][16],ans=1e9;
void floyed()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
if(i!=j&&j!=k&&i!=k)
g[i][j]=min(g[i][j],g[i][k]+g[k][j]);
}
void dp()
{
memset(f,127/3,sizeof f);
f[1][1]=0;
for(int s=0;s<=(1<<n)-1;s++)
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
if(s&1<<(j-1)&&i!=j)
f[s|(1<<i-1)][i]=min(f[s|(1<<i-1)][i],f[s][j]+g[j][i]);
}
for(int i=2;i<=n;i++) ans=min(ans,f[(1<<n)-1][i]+g[i][1]);
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
scanf("%d",&g[i][j]);
floyed();dp();
printf("%d",ans);
return 0;
}
Codevs 3122 奶牛代理商 VIII(状压DP)的更多相关文章
- 3122 奶牛代理商 VIII(状压dp)
3122 奶牛代理商 VIII 时间限制: 3 s 空间限制: 256000 KB 题目等级 : 大师 Master 题目描述 Description 小徐是USACO中国区的奶牛代理商 ...
- 3122 奶牛代理商 VIII
3122 奶牛代理商 VIII 时间限制: 3 s 空间限制: 256000 KB 题目等级 : 大师 Master 题目描述 Description 小徐是USACO中国区的奶牛代理商, ...
- P2340 奶牛会展(状压dp)
P2340 奶牛会展 题目背景 奶牛想证明它们是聪明而风趣的.为此,贝西筹备了一个奶牛博览会,她已经对N 头奶牛进行 了面试,确定了每头奶牛的智商和情商. 题目描述 贝西有权选择让哪些奶牛参加展览.由 ...
- codevs 2800 送外卖(状压dp)
/* f[i][j] 表示走过的点构成i状态 且最后到达的点为j时的最优解 在那最后一个状态就是(1<<n+1)-1 每个点都到达 在由此回到0 */ #include<iostre ...
- B1231 [Usaco2008 Nov]mixup2 混乱的奶牛 状压dp
发现是状压dp,但是还是不会...之前都白学了,本蒟蒻怎么这么菜,怎么都学不会啊... 其实我位运算基础太差了,所以状压学的不好. 题干: Description 混乱的奶牛 [Don Piele, ...
- bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛——状压DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1231 小型状压DP: f[i][j] 表示状态为 j ,最后一个奶牛是 i 的方案数: 所以 ...
- bzoj1231[Usaco2008 Nov]mixup2 混乱的奶牛(状压dp)
1231: [Usaco2008 Nov]mixup2 混乱的奶牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1032 Solved: 588[ ...
- 2018.10.27 洛谷P2915奶牛混合起来Mixed Up Cows(状压dp)
传送门 状压dp入门题. 按照题意建一个图. 要求的就是合法的链的总数. 直接f[i][j]f[i][j]f[i][j]表示当前状态为jjj,下一位要跟iii连起来的方案数. 然后从没被选并且跟iii ...
- P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper 状压dp
这个状压dp其实很明显,n < 18写在前面了当然是状压.状态其实也很好想,但是有点问题,就是如何判断空间是否够大. 再单开一个g数组,存剩余空间就行了. 题干: 题目描述 A little k ...
随机推荐
- Oracle数据库Schema的简介
百度文库中 Schema 的解释: 数据库中的Schema,为数据库对象的集合,一个用户一般对应一个schema. 官方定义如下: A schema is a collection of databa ...
- git 学习笔记 --Bug分支
软件开发中,bug就像家常便饭一样.有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除. 当你接到一个修复一 ...
- 【leetcode-11】盛最多水的容器
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0).找出其中的两条线, ...
- apache中的vhosts的配置。
<VirtualHost *:80>ServerAdmin wangjiemengya@foxmail.comDocumentRoot "E:\wordDocument\www& ...
- ioremap
将一个IO地址空间映射到内核的虚拟地址空间上 物理地址 CPU地址总线传来的地址,由硬件电路控制其具体含义.物理地址中很大一部分是留给内存条中内存的,但也常被映射到其他存储器上(如显存.bios等) ...
- PDF 补丁丁 0.6.2 测试版发布
如题. 不知不觉,这个软件已经出来十个年头了. 0.6.2 版可能是 PDF 补丁丁的最后一版.它在未来将不再更新.谢谢关注.
- docker中基于centos镜像部署lnmp环境 php7.3 mysql8.0 最新版
Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源. Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux机器上 ...
- MySQL修炼之路三
1. SQL查询 1. 执行顺序 3. select ... 聚合函数 from 表名 1. where ... 2. group by ... 4. having ... 5. order by . ...
- Oracle间隔(interval)分区
(一)什么是间隔分区 间隔分区是Oracle 11.1引入的新功能,通过该功能,可以在输入相应分区的数据时自动创建相应的分区.在没有间隔分区技术之前,DBA通常会创建一个maxvalue分区以避免OR ...
- svn checkout不带根文件夹方法
checkout url/ .url后边加一个空格一个点(英文句号) svn checkout svn://10.177.261.128/mall/ .