【hdu 5418】 Victor and world
【题目链接】
【算法】
状压DP
f[i][S]表示走的最后一步在i,状态为S
于是我们可以用最短路径 + 状压DP解决此题,由于不存在负边,所以可以用dijkstra+堆优化
【代码】
#include<bits/stdc++.h>
using namespace std;
#define MAXN 16 struct info {
int home,s,dis;
friend bool operator < (info a,info b) {
return a.dis > b.dis;
}
}; int T,N,M,i,j,k,mask,u,v,w;
int dist[MAXN+][MAXN+],f[MAXN+][(<<MAXN)+],vis[MAXN+][(<<MAXN)+];
priority_queue<info> q;
info x; template <typename T> inline void read(T &x) {
int f = ; x = ;
char c = getchar();
for (; !isdigit(c); c = getchar()) { if (c == '-') f = -f; }
for (; isdigit(c); c = getchar()) x = x * + c - '';
x *= f;
}
template <typename T> inline void write(T x) {
if (x < ) { putchar('-'); x = -x; }
if (x > ) write(x/);
putchar(x%+'');
}
template <typename T> inline void writeln(T x) {
write(x);
puts("");
} int main() { read(T); while (T--) {
memset(vis,,sizeof(vis));
read(N); read(M);
for (i = ; i <= N; i++) {
for (j = ; j <= N; j++) {
dist[i][j] = 2e9;
}
}
for (i = ; i <= M; i++) {
read(u); read(v); read(w);
dist[u][v] = min(dist[u][v],w);
dist[v][u] = min(dist[v][u],w);
}
mask = ( << N) - ;
for (i = ; i <= N; i++) {
for (j = ; j <= mask; j++) {
f[i][j] = 2e9;
}
}
f[][] = ;
q.push((info){,,});
while (!q.empty()) {
x = q.top(); q.pop();
if (vis[x.home][x.s]) continue;
vis[x.home][x.s] = ;
for (i = ; i <= N; i++) {
if (x.dis + dist[x.home][i] < f[i][x.s|(<<(i-))]) {
f[i][x.s|(<<(i-))] = x.dis + dist[x.home][i];
q.push((info){i,x.s|(<<(i-)),f[i][x.s|(<<(i-))]});
}
}
}
if (N == ) writeln();
else writeln(f[][(<<N)-]);
} return ; }
【hdu 5418】 Victor and world的更多相关文章
- 【数位dp】【HDU 3555】【HDU 2089】数位DP入门题
[HDU 3555]原题直通车: 代码: // 31MS 900K 909 B G++ #include<iostream> #include<cstdio> #includ ...
- 【HDU 5647】DZY Loves Connecting(树DP)
pid=5647">[HDU 5647]DZY Loves Connecting(树DP) DZY Loves Connecting Time Limit: 4000/2000 MS ...
- -【线性基】【BZOJ 2460】【BZOJ 2115】【HDU 3949】
[把三道我做过的线性基题目放在一起总结一下,代码都挺简单,主要就是贪心思想和异或的高斯消元] [然后把网上的讲解归纳一下] 1.线性基: 若干数的线性基是一组数a1,a2,a3...an,其中ax的最 ...
- 【HDU 2196】 Computer(树的直径)
[HDU 2196] Computer(树的直径) 题链http://acm.hdu.edu.cn/showproblem.php?pid=2196 这题可以用树形DP解决,自然也可以用最直观的方法解 ...
- 【HDU 2196】 Computer (树形DP)
[HDU 2196] Computer 题链http://acm.hdu.edu.cn/showproblem.php?pid=2196 刘汝佳<算法竞赛入门经典>P282页留下了这个问题 ...
- 【HDOJ 5419】 Victor and Toys (排列组合)
[HDOJ 5419] Victor and Toys n个玩具 m个区间 每一个玩具有一个beauty值 问任选三个区间 三区间的MINleft~MAXright的和的期望值 预处理一个数组 存放每 ...
- 【HDU 5145】 NPY and girls(组合+莫队)
pid=5145">[HDU 5145] NPY and girls(组合+莫队) NPY and girls Time Limit: 8000/4000 MS (Java/Other ...
- 【hdu 1043】Eight
[题目链接]:http://acm.hdu.edu.cn/showproblem.php?pid=1043 [题意] 会给你很多组数据; 让你输出这组数据到目标状态的具体步骤; [题解] 从12345 ...
- 【HDU 3068】 最长回文
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=3068 [算法] Manacher算法求最长回文子串 [代码] #include<bits/s ...
随机推荐
- hadoop学习 的yarn
Yarn的产生 mapReduc1.0 1单点故障 2扩展效率低 3资源利用率高 降低运维成本 方便数据共享 多计算框架支持 MapReduce Spark Storm Yarn的架构图 Yarn模块 ...
- 【spring boot】mybatis启动报错:Consider defining a bean of type 'com.newhope.interview.dao.UserMapper' in your configuration. 【Mapper类不能被找到】@Mapper 和@MapperScan注解的区别
启动报错: 2018-05-16 17:22:58.161 ERROR 4080 --- Disconnected from the target VM, address: '127.0.0.1:50 ...
- Go语言并发之美
简介 多核处理器越来越普及,那有没有一种简单的办法,能够让我们写的软件释放多核的威力?答案是:Yes.随着Golang, Erlang, Scale等为并发设计的程序语言的兴起,新 ...
- 机器学习优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)
SGD: 此处的SGD指mini-batch gradient descent,关于batch gradient descent, stochastic gradient descent, 以及 mi ...
- 数据库官方在线文档列表(mysql, postgreSQL)
1. mysql http://dev.mysql.com/doc/ 2. postgreSQL https://www.postgresql.org/docs/
- Android入门常见问题
前言: 眼下非常多人入门用android studio,可是我觉得这是 一个不好的開始. 一个集成的软件,不用你去部署.那么你就好难去学习究竟层的东西. 以后的问题时.问题所在还是在底层,就像&quo ...
- SODBASE CEP学习(四)续:类SQL语言EPL与Storm或jStorm集成-使用分布式缓存
流式计算在一些情况下会用到分布式缓存,从而实现(1)想把统计或计算结果保存在分布缓存中.供其他模块或其他系统调用. (2)某一滑动时间窗体上计数.比如实时统计1小时每一个Cookie的訪问量.实时统计 ...
- Android-studio 连接真机 调试weex项目
1.选择项目 platforms / android 2.创建虚拟机(AVD) (1)点击 AVD Manager (2) 点击 Create Virtual Device 最后发现 CPU 不 ...
- CS 和 BS 的区别和优缺点(转)
转自:http://www.cnblogs.com/scnuyz/p/5808808.html bs是浏览器(browser)和服务器(server) cs是静态客户端程序(client)和服务器(s ...
- java zip压缩文件和文件夹
public class FileUtil { /** * 压缩文件-File * @param out zip流 * @param srcFiles 要压缩的文件 * @param path 相对路 ...