#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm> using namespace std; typedef long long ll;
const int INF = 0x5f5f5f5f;
const int MAX = 1 << 17; int mp[20][20];
int dp[MAX + 1][20]; // dp[s][v] 走过s点,现在在v点 dp[S][0] int bit[1<<17]; int main()
{
//freopen("in.txt", "r", stdin); for(int i = 0; i<(1<<16); i++) // bit[i] := i的二进制有多少个1
{
bit[i] = 0;
for (int j = 0; j <= 16; j++)
if (i & (1 << j))
bit[i]++;
} int t;
int m, n;
scanf("%d", &t);
while (t--) {
memset(mp, -1, sizeof mp);
for (int i = 0; i < MAX; ++i)
for (int j = 0; j < 16; ++j)
dp[i][j] = INF; scanf("%d%d", &n, &m);
int a, b, c;
for (int i = 0; i < m; ++i) {
scanf("%d%d%d", &a, &b, &c);
if (mp[a - 1][b - 1] == -1 || mp[a - 1][b - 1] > c)
mp[a - 1][b - 1] = mp[b - 1][a - 1] = c;
} int maxn = (1 << n) - 1; dp[1][0] = 0;
for (int s = 1; s <= maxn; ++s) {
for(int k = 0; k <= bit[s]; ++k) {
for (int v = 0; v < n; ++v) {
if (dp[s][v] != INF) {
for (int u = 0; u < n; ++u) {
if (mp[u][v] != -1) {
if (dp[s | (1 << u)][u] > dp[s][v] + mp[u][v])
dp[s | (1 << u)][u] = dp[s][v] + mp[u][v];
}
}
}
}
}
} printf("%d\n", dp[maxn][0]);
} return 0;
} /**
Input:
2
3 2
1 2 2
1 3 3
5 4
1 2 1
2 3 1
3 4 1
4 5 1 Output:
10
8
*/

  

wa了好久,我只想知道

for(int k = 0; k <= bit[s]; ++k) 

什么意思,为什么要加这句?

HDU5418.Victor and World(状压DP)的更多相关文章

  1. HDOJ 5418 Victor and World 状压DP

    水状压DP Victor and World Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/131072 K (Java ...

  2. [hdu5418 Victor and World]floyd + 状压DP 或 SPFA

    题意:给n个点,m条边,每次只能沿边走,花费为边权值,求从1出发经过所有其它点≥1次最后回到1的最小花费. 思路: 状压DP.先用Floyd得到任意两点间的最短距离,转移时沿两个点的最短路转移.此时的 ...

  3. POJ 3311 Hie with the Pie (状压DP)

    题意: 每个点都可以走多次的TSP问题:有n个点(n<=11),从点1出发,经过其他所有点至少1次,并回到原点1,使得路程最短是多少? 思路: 同HDU 5418 VICTOR AND WORL ...

  4. BZOJ 1087: [SCOI2005]互不侵犯King [状压DP]

    1087: [SCOI2005]互不侵犯King Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3336  Solved: 1936[Submit][ ...

  5. nefu1109 游戏争霸赛(状压dp)

    题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1109 //我们校赛的一个题,状压dp,还在的人用1表示,被淘汰 ...

  6. poj3311 TSP经典状压dp(Traveling Saleman Problem)

    题目链接:http://poj.org/problem?id=3311 题意:一个人到一些地方送披萨,要求找到一条路径能够遍历每一个城市后返回出发点,并且路径距离最短.最后输出最短距离即可.注意:每一 ...

  7. [NOIP2016]愤怒的小鸟 D2 T3 状压DP

    [NOIP2016]愤怒的小鸟 D2 T3 Description Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可 ...

  8. 【BZOJ2073】[POI2004]PRZ 状压DP

    [BZOJ2073][POI2004]PRZ Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍 ...

  9. bzoj3380: [Usaco2004 Open]Cave Cows 1 洞穴里的牛之一(spfa+状压DP)

    数据最多14个有宝藏的地方,所以可以想到用状压dp 可以先预处理出每个i到j的路径中最小权值的最大值dis[i][j] 本来想用Floyd写,无奈太弱调不出来..后来改用spfa 然后进行dp,这基本 ...

  10. HDU 1074 Doing Homework (状压dp)

    题意:给你N(<=15)个作业,每个作业有最晚提交时间与需要做的时间,每次只能做一个作业,每个作业超出最晚提交时间一天扣一分 求出扣的最小分数,并输出做作业的顺序.如果有多个最小分数一样的话,则 ...

随机推荐

  1. linux下i2c驱动笔记 转

    1. 几个基本概念 1.1. 设备模型 由 总线(bus_type) + 设备(device) + 驱动(device_driver) 组成,在该模型下,所有的设备通过总线连接起来,即使有些设备没有连 ...

  2. Automotive Security的一些资料和心得(2):Cryptography

    1. Security Goal - Confidentiality - Integrity - Availability - Authenticity - Non-repudiation - Aut ...

  3. vs2013运行c语言出现:无法查找或打开 PDB 文件。

    vs2013运行c语言出现:无法查找或打开 PDB 文件.    “ConsoleApplication1.exe”(Win32): 已加载“C:\Users\hp\Documents\Visual ...

  4. 防止横竖屏时,iphone自动缩放的一段js代码

    function orientation_change() {     var viewport = document.querySelector('meta[name="viewport& ...

  5. java.util.ArrayList

    /* * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETA ...

  6. [jobdu]矩形覆盖

    推导一下,就是斐波那契数列那样的.但是要注意的是,int存不下,算一下需要long long才行,因为是指数级上升的. #include <cstdio> #define LEN 75 # ...

  7. linux 和 ecos 内核线程创建/信号量/event等对比

    ecos: int gx_thread_create (const char *thread_name, gx_thread_id *thread_id, void(*entry_func)(void ...

  8. 文件过滤驱动实现目录重定向(一)good

    文件过滤驱动拦截的IRP主要包括以下几个:IRP_MJ_CREATE,文件创建操作,文件的任何操作,都是从这里开始的.IRP_MJ_CLEANUP,文件的HANDLE句柄全部关闭会触发这个消息IRP_ ...

  9. dojo.hitch 原理

    在使用dojo的时候,遇到dojo.hitch这个函数 ,官方文档说的很清楚,将函数和作用域绑定起来,这让我想起了call和apply这两个函数,call和apply用于改变一个方法的执行上下文,JS ...

  10. restful理解

    越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency).高 ...