题意: 有N 个点的无向图,要去其中 h个地点做事,做事需要先办理护照,之后可以挣一定数量的钱,知道了一开始有的总钱数,和 一些城市之间

          道路的花费,问可不可以在 指定的 h 个城市打完工,并回到起点 1.

链接:点我

是个好题!!!

状态转移方程dp[s][i]=max(dp[s][i],dp[s'][j]-maps[j][i]-d[i]+c[i]);

dp[s][i]表示当在状态s的时候最后再i城市打工的最多剩余钱数。

2
4 5 10  //4个点,5个道路,10单位的钱
1 2 1
2 3 2
1 3 2
1 4 1
3 4 2
3    //3个必去的
1 8 5  //编号,消耗,赚的
2 5 2
3 10 1
2 1 100
1 2 10000
1
2 100000 1
YES
NO
 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define INF 99999999
typedef long long LL;
using namespace std; const int MAX=(<<)+;
int n,m,val,h;
int s[],c[],d[];
int dp[MAX][],dist[][]; void Init(int num){
for(int i=;i<=num;++i){
for(int j=i+;j<=num;++j)dist[i][j]=dist[j][i]=INF;
}
} void floyd(){
for(int k=;k<=n;++k){
for(int i=;i<=n;++i){
for(int j=;j<=n;++j){
dist[i][j]=min(dist[i][j],dist[i][k]+dist[k][j]);
}
}
}
} void DP(){
int bit=<<(h+);
memset(dp,-,sizeof dp);
dp[][]=val;
for(int i=;i<bit;++i){
for(int j=;j<=h;++j){
if(dp[i][j] == -)continue;
for(int k=;k<=h;++k){
if(dp[i][j]<dist[s[j]][s[k]]+d[k])continue;
int p=<<k,w=c[k]-d[k]; //可以去
if(i&p)continue; //已经去过
dp[i|p][k]=max(dp[i|p][k],dp[i][j]-dist[s[j]][s[k]]+w);
}
}
}
bool flag=false;
for(int i=;i<=h;++i)if(dp[bit-][i]-dist[s[i]][]>=)flag=true; //没返回过1
if(flag)printf("YES\n");
else printf("NO\n");
} int main(){
int t,u,v,w;
scanf("%d",&t);
while(t--){
scanf("%d%d%d",&n,&m,&val);
Init(n);
for(int i=;i<m;++i){
scanf("%d%d%d",&u,&v,&w);
dist[u][v]=dist[v][u]=min(dist[u][v],w);
}
scanf("%d",&h);
for(int i=;i<=h;++i){
scanf("%d%d%d",&s[i],&c[i],&d[i]);
}
floyd();
s[]=,c[]=d[]=;
DP();
}
return ;
}

hdu 4284 状态压缩dp的更多相关文章

  1. HDU 1074 (状态压缩DP)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题目大意:有N个作业(N<=15),每个作业需耗时,有一个截止期限.超期多少天就要扣多少 ...

  2. HDU 3341 状态压缩DP+AC自动机

    题目大意: 调整基因的顺序,希望使得最后得到的基因包含有最多的匹配串基因,使得所能达到的智商最高 这里很明显要用状态压缩当前AC自动机上点使用了基因的情况所能达到的最优状态 我最开始对于状态的保存是, ...

  3. hdu 2167 状态压缩dp

    /* 状态转移方程:dp[i][j]=Max(dp[i][j],dp[i-1][k]+sum[i][j]); */ #include<stdio.h> #include<string ...

  4. HDU 4856 (状态压缩DP+TSP)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4856 题目大意:有一个迷宫.迷宫里有些隧道,每个隧道有起点和终点,在隧道里不耗时.出隧道就耗时,你的 ...

  5. hdu 4284 状态压缩

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4284 #include<cstdio> #include<cstring> # ...

  6. HDU 4640 状态压缩DP 未写完

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4640 解题思路: 首先用一个简单的2^n*n的dp可以求出一个人访问一个给定状态的最小花费,因为这i个 ...

  7. 2016"百度之星" - 初赛(Astar Round2A)1002 / HDU 5691 状态压缩DP

    Sitting in Line Problem Description   度度熊是他同时代中最伟大的数学家,一切数字都要听命于他.现在,又到了度度熊和他的数字仆人们玩排排坐游戏的时候了.游戏的规则十 ...

  8. HDU 5067 (状态压缩DP+TSP)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5067 题目大意:蓝翔挖掘机挖石子.把地图上所有石子都运回起点,问最少耗时. 解题思路: 首先得YY出 ...

  9. hdu 4539(状态压缩dp)

    题意:曼哈顿距离是指:|x1-x2|+|y1-y2|,只要知道这个概念题意就懂了. 分析:这道题与前面做的几道题有所不同,因为当前行不仅与前一行有关,而且与前两行有关,所以我们开数组的时候还要记录前两 ...

随机推荐

  1. css各种姿势的水平居中

    首先是最常用的,利用margin属性的auto来进行水平居中 margin: 0 auto; 其中0是指上下的margin,auto是左右的margin,margin这个属性的简写是按顺时针走的,也就 ...

  2. c++树,知道前序和中序求后序遍历

    经常有面试题就是知道一棵树的前序遍历和中序遍历让你写出后序遍历,这个慢慢画是能画出来的,但是要很快的弄出来还是要懂原理. 首先说一下三种遍历:所谓的前序后序和中序都是遍历时遍历根节点的顺序.子树的话依 ...

  3. 自定义li项目符号

    使用background-image属性 先清除ul的默认list-style ul{ list-style:none } li{ background-image:url('./image/symb ...

  4. 判断Selenium加载完成

    How do you make Selenium 2.0 wait for the page to load? You can also check pageloaded using followin ...

  5. [转载]Windows服务编写原理及探讨(1)

    有那么一类应用程序,是能够为各种用户(包括本地用户和远程用户)所用的,拥有用户授权级进行管理的能力,并且不论用户是否物理的与正在运行该应用程序的计算机相连都能正常执行,这就是所谓的服务了. (一)服务 ...

  6. Vim的分屏功能

    本篇文章主要教你如何使用 Vim 分屏功能. 分屏启动Vim 使用大写的O参数来垂直分屏. vim -On file1 file2 ... 使用小写的o参数来水平分屏. vim -on file1 f ...

  7. 中高级JAVA面试知识点(个人整理)

    JVM运行时数据区域 方法区: 用 于存储虚拟机加载的类信息,常量,静态变量,JIT编译后的代码,所有线程共享 堆:所有线程共享,用来存储实例对象. 虚拟机栈:线程私有,生命周期与线程相同,每个方法被 ...

  8. 【转】Python OCR识别图片验证码

    转载自:博客 对于某些网站登录的时候,往往需要输入验证码才能实现登录.如果要爬虫这类网站,往往总会比这个验证码导致无法爬取数据.以下介绍一种比较折中的方法,也是比较可行的方法: 实现思想: 1.通过截 ...

  9. 如何修改WP文章字体格式、字号大小、字体颜色

    在使用wordpress编辑文章的时候,很多朋友会像小编一样,发现它并没有像word文档一样有修改字体样式.字体大小.字体颜色.分页符等功能按钮,对我们写文章极为不便,原因是wordpress默认使用 ...

  10. [翻译]HLS实践

    最近公司项目没事做,课余实践研究一下技术,算是积累,也可以用到项目里,从零开始记录 HLS:Http Live Streaming 官方文档 https://developer.apple.com/s ...