HDU 5418 Victor and World (状态压缩dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5418
题目大意:有n个结点m条边(有边权)组成的一张连通图(n <16, m<100000)。求从第一个点出发,经过每个点至少一次后回到原点的最小路径边权和。
分析:发现我还真是菜。
n<16,很明显的状态压缩标记,先将所有点的编号减去1,使其从0开始编号。dp[i][j]表示从0号点出发,当前状态为i (二进制位为1表示对应点已走过,否则没走过), 当前位置为 j, 回到原点的最小代价, 则dp[(1<<n)-1][0]为所求解,用类似 spfa 的方法可以更新到所有情况。
参考代码:
#include <cstdio>
#include <cstring>
#include <queue>
#include <algorithm>
using namespace std; int dp[<<][];
int mp[][];
int dis[];
bool vis[<<][];
int n; int main()
{
int T, m;
scanf("%d", &T);
while(T--)
{
scanf("%d %d", &n, &m);
memset(mp, 0x7f, sizeof(mp));
for(int i = ; i < n; i++) mp[i][i] = ;
for(int i = ; i < m; i++) {
int u, v, d;
scanf("%d %d %d", &u, &v, &d);
u--; v--;
mp[u][v] = mp[v][u] = min(mp[u][v], d);
}
memset(dp, 0x7f, sizeof(dp));
memset(vis, , sizeof(vis));
dp[][] = , vis[][] = ;
queue<pair<int, int> > q;
q.push(make_pair(,));
while(!q.empty())
{
int s = q.front().first;
int u = q.front().second;
q.pop();
for(int i = ; i < n; i++)
{
int ss = s | (<<i);
if(dp[ss][i] > dp[s][u] + mp[u][i]){
dp[ss][i] = dp[s][u] + mp[u][i];
if(vis[ss][i] == ){
vis[ss][i] = ;
q.push(make_pair(ss, i));
}
}
}
}
//for(int i = 0; i < (1<<n); i++) for(int j = 0; j < n; j++) printf("%d %d: %d\n", i, j, dp[i][j]);
printf("%d\n", dp[(<<n)-][]);
}
return ;
}
HDU 5418 Victor and World (状态压缩dp)的更多相关文章
- hdu 5025 Saving Tang Monk 状态压缩dp+广搜
作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4092939.html 题目链接:hdu 5025 Saving Tang Monk 状态压缩 ...
- ACM: HDU 5418 Victor and World - Floyd算法+dp状态压缩
HDU 5418 Victor and World Time Limit:2000MS Memory Limit:131072KB 64bit IO Format:%I64d & ...
- HDU 3681 Prison Break(状态压缩dp + BFS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3681 前些天花时间看到的题目,但写出不来,弱弱的放弃了.没想到现在学弟居然写出这种代码来,大吃一惊附加 ...
- HDU 6125 Free from square 状态压缩DP + 分组背包
Free from square Problem Description There is a set including all positive integers that are not mor ...
- HDU 1074 Doing Homework【状态压缩DP】
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题意: 给定作业截止时间和完成作业所需时间,比截止时间晚一天扣一分,问如何安排作业的顺序使得最 ...
- HDU 1074 Doing Homework (状态压缩DP)
Doing Homework Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- HDU 1074 Doing Homework ——(状态压缩DP)
考虑到n只有15,那么状压DP即可. 题目要求说输出字典序最小的答案的顺序,又考虑到题目给出的字符串本身字典序是递增的,那么枚举i的时候倒着来即可.因为在同样完成的情况下,后选字典序大的,小的字典序就 ...
- Victor and World(spfa+状态压缩dp)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5418 Victor and World Time Limit: 4000/2000 MS (Java/ ...
- HDU 1074 (状态压缩DP)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题目大意:有N个作业(N<=15),每个作业需耗时,有一个截止期限.超期多少天就要扣多少 ...
- HDU 4511 (AC自动机+状态压缩DP)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4511 题目大意:从1走到N,中间可以选择性经过某些点,比如1->N,或1->2-> ...
随机推荐
- Linux监控命令之==>iostat
一.使用说明 iostat 是对系统的磁盘I/O 操作进行监控,它的输出主要显示磁盘读写操作的统计信息,同时给出CPU 的使用情况.同vmstat 一样,iostat 不能对某个进程进行深入分析,仅对 ...
- windows 把ps/2 鼠标当成ps/2键盘了
真坑口阿 https://zhidao.baidu.com/question/425134865713508932.html 电脑的PS/2鼠标接口认成键盘了 电脑主板技嘉,只有一个PS/2接口.开始 ...
- react-native start error Invalid regular expression:
详细错误: error Invalid regular expression: /(.*\\__fixtures__\\.*|node_modules[\\\]react[\\\]dist[\\\]. ...
- TCP网络编程(Socket通讯)
TCP 网路编程: 1.TCP 三次握手: 第一次握手,客户端向服务器端发出连接请求,等待服务器确认. 第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求. 第三次握手,客户端再次向服 ...
- 14.使用Crunch创建字典----Armitage扫描和利用----设置虚拟渗透测试实验室----proxychains最大匿名
使用Crunch创建字典 kali自带的字典 usr/share/wordlists cd Desktop mkdir wordlists cd wordlists/ crunch --help cr ...
- 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
ubuntu更新软件时 apt-get upgrade 遇到 E: 无法获得锁 /: 资源暂时不可用) E: Unable to acquire the dpkg frontend lock (/va ...
- java.lang.NoSuchMethodError: org.apache.spark.internal.Logging.$init$(Lorg/apache/spark/internal/Logging;)V
1.sparkML的版本不对应 请参考官网找到对于版本, 比如我的 spark2.3.3 spark MLlib 也是2.3.3
- pyspark的安装配置
1.搭建基本spark+Hadoop的本地环境 https://blog.csdn.net/u011513853/article/details/52865076?tdsourcetag=s_pcqq ...
- java 多线程并发问题总结
java 多线程并发主要通过关键字synchronized实现 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并发线程访问 ...
- java 接入微信 spring boot 接入微信
1.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...