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

对于每一个城市只有去过和没去过两种状态,用一个二进制数s来表示
 f[s][i]当前在第i个城市,状态为s时的最小花费,&运算有0落0,所以s&1<<(j-1)保证了
 i城市的s状态 |运算有1落1 这样便可以找到一个从j到i的状态,用于更新答案

 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int mp[][];
int f[][];
int n,ans = 1e9;
void floyd()
{
for (int k=; k<=n; ++k)
for (int i=; i<=n; ++i)
for (int j=; j<=n; ++j)
if (i!=j&&k!=i)
mp[i][j] = min(mp[i][j],mp[i][k]+mp[k][j]);
}
void dp()
{
memset(f,0x3f,sizeof(f));
f[][] = ;
for (int s=; s<=(<<n)-; s++)
for (int i=; i<=n; i++)
{
for (int j=; j<=n; j++)
if (s&<<(j-)&&i!=j)
f[s|(<<i-)][i] = min(f[s|(<<i-)][i],f[s][j]+mp[j][i]);
}
for(int i=; i<=n; i++)
ans = min(ans,f[(<<n)-][i]+mp[i][]);
}
int main()
{
scanf("%d",&n);
for (int i=; i<=n; ++i)
for (int j=; j<=n; ++j)
scanf("%d",&mp[i][j]);
floyd();
dp();
printf("%d",ans);
return ;
}

3122 奶牛代理商 VIII(状压dp)的更多相关文章

  1. Codevs 3122 奶牛代理商 VIII(状压DP)

    3122 奶牛代理商 VIII 时间限制: 3 s 空间限制: 256000 KB 题目等级 : 大师 Master 题目描述 Description 小徐是USACO中国区的奶牛代理商,专门出售质优 ...

  2. 3122 奶牛代理商 VIII

    3122 奶牛代理商 VIII 时间限制: 3 s 空间限制: 256000 KB 题目等级 : 大师 Master       题目描述 Description 小徐是USACO中国区的奶牛代理商, ...

  3. P2340 奶牛会展(状压dp)

    P2340 奶牛会展 题目背景 奶牛想证明它们是聪明而风趣的.为此,贝西筹备了一个奶牛博览会,她已经对N 头奶牛进行 了面试,确定了每头奶牛的智商和情商. 题目描述 贝西有权选择让哪些奶牛参加展览.由 ...

  4. B1231 [Usaco2008 Nov]mixup2 混乱的奶牛 状压dp

    发现是状压dp,但是还是不会...之前都白学了,本蒟蒻怎么这么菜,怎么都学不会啊... 其实我位运算基础太差了,所以状压学的不好. 题干: Description 混乱的奶牛 [Don Piele, ...

  5. bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛——状压DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1231 小型状压DP: f[i][j] 表示状态为 j ,最后一个奶牛是 i 的方案数: 所以 ...

  6. bzoj1231[Usaco2008 Nov]mixup2 混乱的奶牛(状压dp)

    1231: [Usaco2008 Nov]mixup2 混乱的奶牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1032  Solved: 588[ ...

  7. 2018.10.27 洛谷P2915奶牛混合起来Mixed Up Cows(状压dp)

    传送门 状压dp入门题. 按照题意建一个图. 要求的就是合法的链的总数. 直接f[i][j]f[i][j]f[i][j]表示当前状态为jjj,下一位要跟iii连起来的方案数. 然后从没被选并且跟iii ...

  8. P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper 状压dp

    这个状压dp其实很明显,n < 18写在前面了当然是状压.状态其实也很好想,但是有点问题,就是如何判断空间是否够大. 再单开一个g数组,存剩余空间就行了. 题干: 题目描述 A little k ...

  9. 3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper (状压DP,IDA*)

    状压DP: #include <iostream> #include <cstdio> #include <cstring> #include <algori ...

随机推荐

  1. 关于自学C语言这件事

    说在前面 为什么会写下这篇文章?本人也并不是什么大神,但是也自学了很久,从一个小白开始自学,期间走过很多弯路,掉过许多坑.一路跌跌撞撞下来,算是有了点收获,有了点感想,将它们记录下来,希望能帮助新入坑 ...

  2. 初次接触《C++程序设计原理与实践》一书

    前两天读书日,买了些书回来看.__Bjarne Stroustrup__的<C++程序设计原理与实践>便是其中一本.其实也没看完,只看了第0章-致读者,大师不愧是大师,只看了一章就让心生共 ...

  3. SQL的id奇迹

    SELECT id,name FROM test where name is null and id>=26 limit 26,3 这里26和26没关系,不是id额

  4. OC extern和函数

    #include <stdio.h> // 定义一个one函数 // 完整地定义一个外部函数需要extern关键字 //extern void one() { // printf(&quo ...

  5. libevent将信号封装为socket通知的核心代码

    #include"stdafx.h" #include"iostream" #include "algorithm" #include&qu ...

  6. MySQL:数据库入门篇5

    1.存储引擎 innodb与MyIASM存储引擎的区别: 1.innodb 是mysql5.5版本以后的默认存储引擎, 而MyISAM是5.5版本以前的默认存储引擎. 2.innodb 支持事物,而M ...

  7. prior_box层

    https://www.jianshu.com/p/5195165bbd06 1.step_w.step_h其实就相当于faster中的feat_stride,也就是把这些点从feature map映 ...

  8. E: Unable to locate package

    E: Unable to locate package apt-get不能定位到包,有两种情况,一种是自己输入的包名字错误,确实找不到.另一种可能是执行sudo apt-get install之前更换 ...

  9. mybatis学习记录七——延迟加载

    14       延迟加载 14.1     什么是延迟加载 resultMap可以实现高级映射(使用association.collection实现一对一及一对多映射),association.co ...

  10. 测试Storm的多源头锚定

    过程, Spout 发送msgid 1-10 一级Bolt, msgid1的tuple做为基本组合tuple, 其他8个和一组合, 然后发送给二级Bolt, 同时单个msgid对应的tuple都ack ...