简要题解如下:

记 \(1\) 到 \(n\) 的路径为关键路径。

  1. 注意到关键路径只有一条是解题的关键,可以思考这张图长什么样子。

  2. 不难发现关键路径上所有边均为桥,因此大致上是关键路径上每个点下面挂了很多个连通块。

  3. 基于这张图的形态涉及一个 \(dp\),令 \(f_{i, S}\) 表示当前只考虑 \(S\) 这个集合,当前在关键路径上走到的点为 \(i\) 留下的最大边权。

  4. 转移有两种,一种是直接考虑在关键路径上往后扩展一个点 \(j\),令一种方式是考虑在 \(i\) 下面挂上一个连通块 \(T\) 此处可以枚举子集。通过预处理等技巧可以做到 \(\mathcal{O(n ^ 2 2 ^ n + n 3 ^ n)}\)

#include <bits/stdc++.h>
using namespace std;
#define rep(i, l, r) for (int i = l; i <= r; ++i)
const int N = 20;
const int M = (1 << 15) + 5;
int n, m, u, v, c, L, all, g[M], w[N][N], f[N][M], dp[N][M];
int main () {
cin >> n >> m, L = (1 << n) - 1;
memset(w, 128, sizeof(w)), memset(dp, 128, sizeof(dp));
rep(i, 1, m) cin >> u >> v >> c, w[u][v] = w[v][u] = c, all += c;
rep(S, 0, L) rep(i, 1, n) rep(j, 1, n) if((1 << (j - 1)) & S) f[i][S] += max(0, w[i][j]);
rep(S, 0, L) {
rep(i, 1, n) rep(j, 1, n) if(((1 << (i - 1)) & S) && ((1 << (j - 1)) & S)) g[S] += max(0, w[i][j]);
g[S] /= 2;
}
dp[1][1] = 0;
rep(S, 0, L) rep(i, 1, n) if(dp[i][S] >= 0) {
rep(j, 1, n)
if(!((1 << (j - 1)) & S) && w[i][j] > 0)
dp[j][S | (1 << (j - 1))] = max(dp[j][S | (1 << (j - 1))], dp[i][S] + w[i][j]);
for (int T = (L ^ S); T; T = ((T - 1) & (L ^ S)))
dp[i][S | T] = max(dp[i][S | T], dp[i][S] + f[i][T] + g[T]);
}
printf("%d", all - dp[n][L]);
return 0;
}

一定要将思路理清,考虑最终状态的时候一定要完全准确,否则可能会出现某些性质没有发现的情况。

最新文章

  1. Mybatis的choose when otherwise
  2. CSS3橙色的星球绕轨道公转动画
  3. 试验添加RAC(ORA10G)节点
  4. 【深入浅出.Net IL】1.一个For循环引发的IL
  5. linux搭建mysql 5.6.28
  6. Palindrome Partitioning II Leetcode java
  7. mongodb windows下的安装
  8. mysql优化案例
  9. YII 小部件实现Area textArea
  10. android开发获取网络状态,wifi,wap,2g,3g.工具类(一)
  11. 【设计优化】-使用缓冲(Buffer)提高程序性能
  12. 网络编程3之TCP/IP协议
  13. java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector
  14. FTP&amp;samba 服务简单部署
  15. 实战UITableview深度优化
  16. python 在一个excel存多个sheet
  17. T-SQL中CTE表 with关键字
  18. MQ问题
  19. 【C++ Primer | 19】控制内存分配
  20. vscode卡死问题

热门文章

  1. 前端性能和加载体验优化实践(附:PWA、离线包、内存优化、预渲染)
  2. MySQL中视图的定义、原理--触发器
  3. Java Web程序设计笔记 • 【第2章 JSP基础】
  4. GDB调试-从入门到实践
  5. Microsoft HoloLens 开发(3): 全息图交互方式 - Gaze
  6. python自动化测试框架的unittest与pytest前后置条件的区别
  7. 学习git&amp;github
  8. Web发送邮件
  9. 关于包装类Integer,Long比较用==和equals的问题
  10. 设计模式-Java版-全-附代码-超生动实例