传送门

好神的状压dp啊

首先考虑一个性质,删掉之后的图一定是个联通图

并且每个点最多只与保留下来的那条路径上的一个点有边相连

然后设状态:\(f[s][t]\)代表当前联通块的点的状态为\(s\)和路径结尾的点\(t\)

然后考虑转移,要么拓展一个点作为路径,要么挂一个联通块到当前路径结尾的点上

代码:

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<vector>
using namespace std;
void read(int &x){
char ch;bool ok;
for(ok=0,ch=getchar();!isdigit(ch);ch=getchar())if(ch=='-')ok=1;
for(x=0;isdigit(ch);x=x*10+ch-'0',ch=getchar());if(ok)x=-x;
}
#define rg register
const int maxn=1<<16;
int n,m,v[20][20];
long long ans,in[maxn],f[maxn][20];
vector<int>d[20];
int main(){
read(n),read(m);
for(rg int i=1,x,y,z;i<=m;i++){
read(x),read(y),read(z),v[x][y]=v[y][x]=z;
ans+=z;
d[x].push_back(y),d[y].push_back(x);
}
int tot=1<<n;
for(rg int i=0;i<tot;i++){
for(rg int j=1;j<=n;j++)
if(!(i&(1<<(j-1)))&&!in[i|(1<<(j-1))]){
int w=d[j].size(),sum=in[i];
for(rg int k=0;k<w;k++)
if(i&(1<<(d[j][k]-1)))sum+=v[j][d[j][k]];
in[i|(1<<(j-1))]=sum;
}
}
memset(f,-1,sizeof f);
f[1][1]=0;
for(rg int i=0;i<tot;i++)
for(rg int k=1;k<=n;k++){
if(f[i][k]==-1)continue;
if(i&(1<<(k-1))){
for(rg int j=1;j<=n;j++)
if(!(i&(1<<(j-1)))&&v[k][j])
f[i|(1<<(j-1))][j]=max(f[i][k]+v[k][j],f[i|(1<<(j-1))][j]);
int now=((tot-1)^i)|(1<<(k-1));
for(rg int j=now;j;j=(j-1)&now)
if(j&(1<<(k-1)))f[i|j][k]=max(f[i][k]+in[j],f[i|j][k]);
}
}
printf("%lld\n",ans-f[tot-1][n]);
}

最新文章

  1. 多线程锁--怎么理解Condition
  2. ASP.NET MVC 中实现View与Controller分离
  3. opencv 2.4.9+pcl 1.6+vs2010+win7 32开发环境配置
  4. 5个让人激动的Java项目
  5. values of type NSInteger should not be used as format arguments; 关于Xcode中烦人的32位与64位警告处理方法.
  6. make makefile
  7. 不相交集python实现
  8. js 创建类和继承的几种方法
  9. LigerUI权限系统之菜单管理
  10. OC中的私有变量和私有方法
  11. 使用MBROSTool 工具制作本地硬盘多启动盘的方法总结
  12. sorted函数返回一个新的列表就安全了吗?
  13. Android 实战美女拼图游戏 你能坚持到第几关
  14. rem自适应js
  15. Visual Studio Installer 使用案例
  16. systemverilog的高亮显示
  17. css段落(后盾)
  18. C#编译时,提示缺少NuGet包
  19. bip39
  20. Working routine CodeForces - 706E (链表)

热门文章

  1. STL stl_alloc.h
  2. Android之SharedPreferences权限
  3. 【leetcode刷题笔记】ZigZag Conversion
  4. POJ1904 King&#39;s Quest
  5. ACM学习历程—BZOJ 2115 Xor(dfs &amp;&amp; 独立回路 &amp;&amp; xor高斯消元)
  6. uoj problem 14 DZY Loves Graph
  7. 【ML】关于神经网络优化问题的随笔记
  8. POJ2513(字典树+图的连通性判断)
  9. Excel特殊格式的列
  10. FATFS 文件系统