状压搜索轻轻松松就过了……考场上代码太丑了T了几个点

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int n, m, uu, vv, ww, w[15][15], dis[15], dp[100005], ans;
const int oo=0x3f3f3f3f;
void dfs(int x){
for(int i=1; i<=n; i++)
if(x&(1<<(i-1)))
for(int j=1; j<=n; j++)
if(!(x&(1<<(j-1))) && w[i][j]<oo)
if(dp[x|(1<<(j-1))]>dp[x]+dis[i]*w[i][j]){
int t=dis[j];
dis[j] = dis[i] + 1;
dp[x|(1<<(j-1))] = dp[x] + dis[i] * w[i][j];
dfs(x|(1<<(j-1)));
dis[j] = t;
}
}
int main(){
cin>>n>>m;
ans = oo;
memset(w, 0x3f, sizeof(w));
for(int i=1; i<=m; i++){
scanf("%d %d %d", &uu, &vv, &ww);
w[uu][vv] = w[vv][uu] = min(w[vv][uu], ww);
}
for(int i=1; i<=n; i++){
memset(dis, 0x3f, sizeof(dis));
memset(dp, 0x3f, sizeof(dp));
dp[1<<(i-1)] = 0;
dis[i] = 1;
dfs(1<<(i-1));
ans = min(ans, dp[(1<<n)-1]);
}
cout<<ans;
return 0;
}

luogu3959 宝藏的更多相关文章

  1. luogu3959 宝藏 搜索+剪枝

    题目大意 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的 m 条道路和它们的长度. 小明决心亲自前往挖掘所有宝藏屋中的宝藏.但是 ...

  2. NOIp2017D2T2(luogu3959) 宝藏 (状压dp)

    时隔多年终于把这道题锅过了 数据范围显然用搜索剪枝状压dp. 可以记还有哪些点没到(或者已到了哪些点).我们最深已到的是哪些点.这些点的深度是多少,然后一层一层地往下推. 但其实是没必要记最深的那一层 ...

  3. Luogu3959 NOIP2017 宝藏 状压DP

    题目传送门:https://www.luogu.org/problemnew/show/P3959 题意:给出一个有$N$个点的图,求其中的一个生成树(指定一个点为根),使得$\sum\limits_ ...

  4. Luogu3959 NOIP2017宝藏(状压dp)

    按层dp,f[i][j]表示已扩展i子集的节点当前在第j层的最小代价,预处理点集间距离即可. #include<iostream> #include<cstdio> #incl ...

  5. 算法:poj1066 宝藏猎人问题。

    package practice; import java.util.Scanner; public class TreasureHunt { public static void main(Stri ...

  6. 【BZOJ-1924】所驼门王的宝藏 Tarjan缩点(+拓扑排序) + 拓扑图DP

    1924: [Sdoi2010]所驼门王的宝藏 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 787  Solved: 318[Submit][Stat ...

  7. zzulioj 1907小火山的宝藏交易(dfs记忆化搜索)

    #include <stdio.h> #include <algorithm> #include <string.h> #include <vector> ...

  8. codevs3196 黄金宝藏

    题目描述 Description 小毛终于到达宝藏点,他意外地发现有一个外星人(名叫Pluto).宝藏是一些太空黄金,有n堆排成一行,每堆中有xi颗黄金.小毛和Pluto决定轮流从中取出黄金,规则是每 ...

  9. bzoj 1924 [Sdoi2010]所驼门王的宝藏(构图,SCC,DP)

    Description Input 第一行给出三个正整数 N, R, C. 以下 N 行,每行给出一扇传送门的信息,包含三个正整数xi, yi, Ti,表示该传送门设在位于第 xi行第yi列的藏宝宫室 ...

随机推荐

  1. 洛谷1387(基础二维dp)

    题目很简单,数据也很小,但是思路不妨借鉴:dp[i][j]代表以(i,j)为右下角的最长正方形边长. 类比一维里面设“以XX为结尾的最XXX(所求)”. 另外define不要乱用!尤其这种min套mi ...

  2. Educational Codeforces Round 19 B

    Description You are given sequence a1, a2, ..., an of integer numbers of length n. Your task is to f ...

  3. Sereja and Brackets(括号匹配)

    Description Sereja has a bracket sequence s1, s2, ..., sn, or, in other words, a string s of length  ...

  4. 【转载】(0, eval)(‘this’)

    var window = this || (0, eval)('this') 在avalon源码中有这么一行代码,var window = this很容易理解 这里复习一下Global Object: ...

  5. hihocoder1133 二分·二分查找之k小数

    思路: 类似于快排的分治算法. 实现: #include <iostream> #include <cstdio> #include <algorithm> #in ...

  6. ES-Apache Lucene

    前言 在介绍Lucene之前,我们来了解相关的历史. 有必要了解的Apache Apache软件基金会(也就是Apache Software Foundation,简称为ASF)是专门为运作一个开源软 ...

  7. Android开发精品收藏贴

    各种下拉刷新效果: https://github.com/scwang90/SmartRefreshLayout

  8. 07/29/2013 02:10:02 AM - CMDPHP: Poller[0] Host[6] DS[10] WARNING: Result from SNMP not valid. Partial Result: U

    snmpwalk -c public -v2c  客户端ip地址  自定义的oid  能取到数据,但是服务器端就是图片一片空白 rrdtool fetch 文件名.rrd 查看到的全都是nan cac ...

  9. Linux安装技巧--安装Uuntu与windows8/10共存

    1.准备安装双系统所需工具. 系统: Linux有众多的衍生版本,选择一个自己喜欢的版本下载,建议新手上ubuntu吧,中文教程较多,出了问题容易解决,等到熟悉了再用其他的也行,新手的话ubuntu也 ...

  10. JavaScript 在线测试

    <iframe src="http://www.it1352.com/Onlinetools/OnlineCompileCommon/17?c_height=100&r_hei ...