题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4284

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std; const int maxn = ;
const int maxm = ;
const int INF = 0x3f3f3f3f; int dp[maxm][<<maxm]; //dp[i][S],当前在i,访问完S中的点还剩的最大money数。最后判断是不是大于等于0.
int dist[maxn][maxn]; //dist[i][j] 表示从i到j,所需的最小花费。
int N,M,Money,H;
int C[maxm],D[maxm];
int Must[maxm]; int main()
{
//freopen("E:\\acm\\input.txt","r",stdin);
int T;
cin>>T;
while(T--){
cin>>N>>M>>Money; for(int i=;i<=N;i++)
for(int j=;j<=N;j++)
dist[i][j] = INF;
for(int i=;i<=N;i++) dist[i][i] = ;
for(int i=;i<=M;i++){
int u,v,w;
scanf("%d %d %d",&u,&v,&w);
if(dist[u][v] > w)
dist[u][v] = dist[v][u] = w; //这个地方没考虑。
} cin>>H;
for(int i=;i<H;i++)
scanf("%d %d %d",&Must[i],&C[i],&D[i]); for(int k=;k<=N;k++)
for(int i=;i<=N;i++)
if(dist[i][k] < INF){
for(int j=;j<=N;j++){
if(dist[k][j] < INF){
dist[i][j] = min(dist[i][j],dist[i][k]+dist[k][j]);
}
}
} memset(dp,-0x3f,sizeof(dp));
for(int i=;i<H;i++){
if(Money -dist[][Must[i]]- D[i]>=)
dp[i][<<i] = Money - dist[][Must[i]] - D[i] + C[i];
} int All = (<<H) - ; //这个地方WA
for(int S=;S<=All;S++){ //理解偏差;
for(int i=;i<H;i++){
if(!((<<i)&S) || dp[i][S] < ) continue; for(int j=;j<H;j++){
if(((<<j)&S) || i == j ) continue;
if(dp[i][S] - dist[Must[i]][Must[j]]- D[j] >= ){
dp[j][<<j|S] = max(dp[j][<<j|S] , dp[i][S] - dist[Must[i]][Must[j]] - D[j] + C[j]);
}
}
}
} bool flag = false;
for(int i=;i<H;i++){
if(dp[i][All] - dist[Must[i]][] >= ){
flag = true; break;
}
} if(flag) printf("YES\n");
else printf("NO\n");
}
}

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

  1. hdu 4284 状态压缩dp

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

  2. HDU 1074 (状态压缩DP)

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

  3. hdu 4739(状态压缩)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4739 思路:状态压缩. #include<iostream> #include<cs ...

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

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

  5. hdu 2167(状态压缩基础题)

    题意:给你一个矩阵,让你在矩阵中找一些元素使它们加起来和最大,但是当你使用某一个元素时,那么这个元素周围的其它八个元素都不能取! 分析:这是一道比较基础的状态压缩题,也是我做的第三道状态压缩的题,但是 ...

  6. hdu 1565(状态压缩基础题)

    题意:容易理解. 分析:这是我做的状态压缩第二题,一开始超内存了,因为数组开大了,后来超时了,因为能够成立的状态就那么多,所以你应该先把它抽出来!!总的来说还是比较简单的!! 代码实现: #inclu ...

  7. HDU 2553 状态压缩

    N皇后问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  8. hdu 3006(状态压缩)

    The Number of set Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  9. hdu 2489(状态压缩+最小生成树)

    Minimal Ratio Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

随机推荐

  1. linux下安装多个mysql实例(摘自国外:How to create multiple mysql instance in CentOS 6.4 and Red Hat 6.4)

    How to create multiple mysql instance in CentOS 6.4 and Red Hat 6.4 from:http://sharadchhetri.com/20 ...

  2. Java环境变量批处理文件

    缘由 公司需要配置大量的虚机,每个上面都要求安装 JAVA,配置环境变量,所以要求写一个批处理,一键配置环境变量 方式 网上找到了3中方式, 第一种是使用 set设置环境 变量,但是这样设置的只是临时 ...

  3. 给分类(Category)添加属性

    遇到一个问题,写了一个分类,但原先类的属性不够用.添加一个属性,调用的时候崩溃了,说是找不到getter.setter方法.查了下文档发现,OC的分类允许给分类添加属性,但不会自动生成getter.s ...

  4. CSV文件规则

    CSV文件规则 1 开头是不留空,以行为单位.2 可含或不含列名,含列名则居文件第一行.3 一行数据不跨行,无空行.4 以半角逗号(即,)作分隔符,列为空也要表达其存在.5 列内容如存在半角逗号(即, ...

  5. windows phone 之手势识别(Manipulation)

    在Windows Phone 7的多触摸屏上可以检测到至少四根同时存在的手指,并且一起操作使触摸屏充分发挥效果. 在silverlight开发中通过事件来实现触屏事件的检测,包括低级别的和高级别的接口 ...

  6. Windows下的 mysql 5.5主从同步配置

    环境说明:   Master:127.0.0.1 3306 Slave:127.0.0.1 3307     MySQL 的 Master 配置:   配置my.ini:   [mysqld]   # ...

  7. 关于Html无宽度居中

    代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title ...

  8. [C#学习]在多线程中如何调用Winform[转]

    问题的产生: 我的WinForm程序中有一个用于更新主窗口的工作线程(worker thread),但文档中却提示我不能在多线程中调用这个form(为什么?),而事实上我在调用时程序常常会崩掉.请问如 ...

  9. 【转】oracle数据库NUMBER数据类型

    原文:http://www.jb51.net/article/37633.htm NUMBER ( precision, scale)a)  precision表示数字中的有效位;如果没有指定prec ...

  10. windows下配置wnmp

    最近尝试windows下配置nginx+php+mysql,在这里总结一下. 1.下载windows版本的nginx,官网​下载地址:http://nginx.org/en/download.htm, ...