传送门

好神的状压dp啊

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

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

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

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

代码:

  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<cstring>
  4. #include<iostream>
  5. #include<vector>
  6. using namespace std;
  7. void read(int &x){
  8. char ch;bool ok;
  9. for(ok=0,ch=getchar();!isdigit(ch);ch=getchar())if(ch=='-')ok=1;
  10. for(x=0;isdigit(ch);x=x*10+ch-'0',ch=getchar());if(ok)x=-x;
  11. }
  12. #define rg register
  13. const int maxn=1<<16;
  14. int n,m,v[20][20];
  15. long long ans,in[maxn],f[maxn][20];
  16. vector<int>d[20];
  17. int main(){
  18. read(n),read(m);
  19. for(rg int i=1,x,y,z;i<=m;i++){
  20. read(x),read(y),read(z),v[x][y]=v[y][x]=z;
  21. ans+=z;
  22. d[x].push_back(y),d[y].push_back(x);
  23. }
  24. int tot=1<<n;
  25. for(rg int i=0;i<tot;i++){
  26. for(rg int j=1;j<=n;j++)
  27. if(!(i&(1<<(j-1)))&&!in[i|(1<<(j-1))]){
  28. int w=d[j].size(),sum=in[i];
  29. for(rg int k=0;k<w;k++)
  30. if(i&(1<<(d[j][k]-1)))sum+=v[j][d[j][k]];
  31. in[i|(1<<(j-1))]=sum;
  32. }
  33. }
  34. memset(f,-1,sizeof f);
  35. f[1][1]=0;
  36. for(rg int i=0;i<tot;i++)
  37. for(rg int k=1;k<=n;k++){
  38. if(f[i][k]==-1)continue;
  39. if(i&(1<<(k-1))){
  40. for(rg int j=1;j<=n;j++)
  41. if(!(i&(1<<(j-1)))&&v[k][j])
  42. f[i|(1<<(j-1))][j]=max(f[i][k]+v[k][j],f[i|(1<<(j-1))][j]);
  43. int now=((tot-1)^i)|(1<<(k-1));
  44. for(rg int j=now;j;j=(j-1)&now)
  45. if(j&(1<<(k-1)))f[i|j][k]=max(f[i][k]+in[j],f[i|j][k]);
  46. }
  47. }
  48. printf("%lld\n",ans-f[tot-1][n]);
  49. }

AT2657 Mole and Abandoned Mine的更多相关文章

  1. Mole and Abandoned Mine

    Mole and Abandoned Mine n点m条边的无向图,删除第i条边花费c[i],问1到n只有一条路径时所需要的最小花费? \(2\le n\le 15\) . 我又A掉了一道zzs的题啦 ...

  2. AT2657 [ARC078D] Mole and Abandoned Mine

    简要题解如下: 记 \(1\) 到 \(n\) 的路径为关键路径. 注意到关键路径只有一条是解题的关键,可以思考这张图长什么样子. 不难发现关键路径上所有边均为桥,因此大致上是关键路径上每个点下面挂了 ...

  3. 题解-AtCoder ARC-078F Mole and Abandoned Mine

    problem ATC-arc078F 题意概要:给定一个 \(n\) 点 \(m\) 边简单无向图(无自环无重边),边有费用,现切去若干条边,使得从 \(1\) 到 \(n\) 有且仅有一条简单路径 ...

  4. AtCoder arc078_d Mole and Abandoned Mine

    洛谷题目页面传送门 & AtCoder题目页面传送门 给定一个无向连通带权图\(G=(V,E),|V|=n,|E|=m\)(节点从\(0\)开始编号),要删掉一些边使得节点\(0\)到\(n- ...

  5. [atARC078F]Mole and Abandoned Mine

    注意到最终图的样子可以看作一条从1到$n$的路径,以及删去这条路径上的边后,路径上的每一个点所对应的一个连通块 考虑dp,令$f_{S,i}$表示当前1到$n$路径上的最后一个点以及之前点(包括$i$ ...

  6. 【做题】arc078_f-Mole and Abandoned Mine——状压dp

    题意:给出一个\(n\)个结点的联通无向图,每条边都有边权.令删去一条边的费用为这条边的边权.求最小的费用以删去某些边使得结点\(1\)至结点\(n\)有且只有一条路径. \(n \leq 15\) ...

  7. AtCoder Regular Contest 078

    我好菜啊,ARC注定出不了F系列.要是出了说不定就橙了. C - Splitting Pile 题意:把序列分成左右两部分,使得两边和之差最小. #include<cstdio> #inc ...

  8. 【AtCoder】ARC078

    C - Splitting Pile 枚举从哪里开始分的即可 #include <bits/stdc++.h> #define fi first #define se second #de ...

  9. AtCoder刷题记录

    构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和 ...

随机推荐

  1. 51nod1428 活动安排问题 (贪心加暴力)

    1428 活动安排问题 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动 ...

  2. docker 安装过程

  3. linux 在后台运行数据库导入导出命令

    nohup imp dbusername/password@orcl file=/home/20170928.dmp ignore=y log=/home/oracle/20170928.log fu ...

  4. Gym - 100570B :ShortestPath Query(SPFA及其优化)

    题意:给定N点M边的有向图,每条边有距离和颜色,一条有效路径上不能有相邻的边颜色相同.现在给定起点S,多次讯问S到点X的最短有效距离. TLE思路:用二维状态dis(u,c)表示起点到u,最后一条边的 ...

  5. Gym 101142C :CodeCoder vs TopForces(强连通算法)

    题意:N个人,每个人有a属性和b属性,如果一个人的a或者b大于另外一个人,我们说这个人可以打败那个人.且这种关系可以传递.对于每个人,输出他可以打败多少人.(保证每个a不相同,保证每个b不相同. 思路 ...

  6. HDU5446 Unknown Treasure(组合数膜合数-->Lucas+中国剩余定理)

    >On the way to the next secret treasure hiding place, the mathematician discovered a cave unknown ...

  7. Codeforces Round #402 (Div. 2) 阵亡记

    好长时间没有打Codeforces了,今天被ysf拉过去打了一场. lrd也来参(nian)加(ya)比(zhong)赛(sheng) Problem A: 我去,这不SB题吗.. 用桶统计一下每个数 ...

  8. 逐步改用 IronPython 开发你的 ASP.NET 应用程序

    IronPython for ASP.NET 的 CTP 已经发布有一段时间了,我们在看了官方提供的范例之后,相信对一个 ASP.NET 应用程序中完全使用 IronPython 开发还是有一些担心的 ...

  9. 办公软件-Excel:Microsoft Office Excel 2003百科

    ylbtech-办公软件-Excel:Microsoft Office Excel 2003百科 Microsoft® Office Excel 2003 是一种电子表格程序,可提供对于 XML 的支 ...

  10. Velocity常用标签的讲解

    Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象. 当Veloci ...