题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1086

题解:题目就是求欧拉回路然后怎么判断有欧拉回路只要所有点的度数为偶数。那么就有欧拉回路所以只要找出度数为奇数的点然后在度数为奇数点之间选择两个这可以用状压来解决(由于无向图总的度数肯定是偶数的所以奇数度数的点肯定只有偶数个)。

#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#include <vector>
#define inf 0X3f3f3f3f
using namespace std;
const int M = 20;
int dp[1 << 17] , dis[M][M] , n , m , du[M] , a[M] , b[M];
void floyd() {
for(int i = 0 ; i < n ; i++) {
for(int j = 0 ; j < n ; j++) {
for(int k = 0 ; k < n ; k++) {
dis[j][k] = min(dis[j][i] + dis[i][k] , dis[j][k]);
}
}
}
}
int main() {
int t , Case = 0;
scanf("%d" , &t);
while(t--) {
scanf("%d%d" , &n , &m);
int u , v , w;
for(int i = 0 ; i < n ; i++) {
du[i] = 0;
for(int j = 0 ; j < n ; j++) {
dis[i][j] = inf;
}
dis[i][i] = 0;
}
int ans = 0;
for(int i = 1 ; i <= m ; i++) {
scanf("%d%d%d" , &u , &v , &w);
u--, v--;
ans += w;
du[u]++, du[v]++;
dis[u][v] = dis[v][u] = min(dis[u][v] , w);
}
floyd();
int cnt = 0;
for(int i = 0 ; i < n ; i++) {
if(du[i] % 2) {
a[cnt++] = i;
b[cnt - 1] = i;
}
}
memset(dp , inf , sizeof(dp));
dp[0] = 0;
for(int i = 0 ; i < cnt ; i++) {
for(int j = 0 ; j < cnt ; j++) {
for(int l = 0 ; l < (1 << cnt) ; l++) {
if((l & (1 << i)) || (l & (1 << j)) || i == j) continue;
dp[(l | (1 << i)) | (1 << j)] = min(dp[(l | (1 << i)) | (1 << j)] , dp[l] + dis[b[i]][b[j]]);
}
}
}
printf("Case %d: %d\n" , ++Case , dp[(1 << cnt) - 1] + ans);
}
return 0;
}

lightoj 1086 - Jogging Trails(状压dp)的更多相关文章

  1. [LightOJ 1018]Brush (IV)[状压DP]

    题目链接:http://lightoj.com/volume_showproblem.php? problem=1018 题意分析:平面上有不超过N个点,如今能够随意方向划直线将它们划去,问:最少要划 ...

  2. lightoj 1119 - Pimp My Ride(状压dp)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1119 题解:状压dp存一下车有没有被搞过的状态就行. #include < ...

  3. lightoj 1037 - Agent 47(状压dp)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1037 #include <iostream> #include & ...

  4. K - Painful Bases 状压dp

    Painful Bases LightOJ - 1021 这个题目一开始看,感觉有点像数位dp,但是因为是最多有16进制,因为限制了每一个数字都不同最多就有16个数. 所以可以用状压dp,看网上题解是 ...

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 【iOS】UILabel 常用属性设置

    UILabel 的一些常用属性,示例代码如下: // 字体大小 label.font = [UIFont systemFontOfSize:14.0]; label.font = [UIFont fo ...

  2. vue 移动端/PC常见问题及解决方法

    一.判断手机/PC浏览器语言 navigator.language // 返回语言代码 语言代码文档: http://www.lingoes.cn/zh/translator/langcode.htm ...

  3. How to check all timestamps of a file

    A friend of mine she asked me how to check all timestamps of a file on an NTFS volume. She did not h ...

  4. JS 自执行函数

    由于自己js基础知识薄弱,很多js的知识还没有掌握,所以接下来会经常写一些关于js基础知识的博客,也算给自己提个醒吧. js自执行函数,听到这个名字,首先会联想到函数.接下来,我来定义一个函数: fu ...

  5. 深入理解JVM-java字节码文件结构剖析(练习解读字节码)

    public class MyTest2 { String str = "Welcome"; private int x = 5; public static Integer in ...

  6. Hadoop 系列(二)—— 集群资源管理器 YARN

    一.hadoop yarn 简介 Apache YARN (Yet Another Resource Negotiator) 是 hadoop 2.0 引入的集群资源管理系统.用户可以将各种服务框架部 ...

  7. Java统计代码行数

    package test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; im ...

  8. Maven多模块项目打包前的一些注意事项(打包失败)

    一. 最近在打包Maven项目时遇到了点问题,这个项目是Maven多模块项目,结构如下: projectParent├── xxxx-basic├── xxxx-web1├── xxxx-collec ...

  9. Java程序员备战“金九银十”必备的面试技巧(附携程Java岗面试题)

    一.面试前的准备 1.1 如何准备一场面试1.1.1 如何获取大厂面试机会1.1.2 面试必知 ①. 准备介绍自己 ②. 关于着装 ③ .随身带上自己的成绩单和简历 ④. 如果笔试就提前刷一些笔试题 ...

  10. .netcore持续集成测试篇之测试方法改造

    系列目录 通过前面两节讲解,我们的测试类中已经有两个测试方法了,总体上如下 public class mvc20 { private readonly HttpClient _client; publ ...