#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<cstdio>
#include<vector>
#include<string>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define Maxn 52
#define Maxm 100010
#define LL __int64
#define Abs(x) ((x)>0?(x):(-x))
#define lson(x) (x<<1)
#define rson(x) (x<<1|1)
#define inf 0x3f3f3f3f
#define Mod 1000000007
using namespace std;
int dis[Maxn][Maxn],p[Maxn],t[Maxn],ft[Maxn],dp[<<][Maxn][<<],n,m,k;
LL fast[Maxn];
void init()
{
memset(dis,,sizeof(dis));
memset(fast,,sizeof(fast));
memset(dp,,sizeof(dp));
memset(ft,,sizeof(ft));
}
void floyd()
{
int i,j,k;
for(k=;k<=n;k++){
dis[k][k]=;
for(i=;i<=n;i++){
for(j=;j<=n;j++){
dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
}
}
}
}
int check(int p)
{
int temp=;
for(int i=;i<=k;i++) if(fast[i]&(1LL<<p)) temp|=(<<(i-));
return temp;
}
void Min(int &a,int b)
{
a=a>b?b:a;
}
int solve()
{
int i,j,r,ki,kj,fi,fj,N;
N=(<<k)-;
dp[][][]=;
for(ki=;ki<=N;ki++){
for(fi=;fi<=N;fi++) if((ki&fi)==ki){
for(i=;i<=n;i++)if(dp[ki][i][fi]<inf){
for(kj=;kj<=k;kj++) if((ki&(<<(kj-)))==){
int fast=check(p[kj]);
Min(dp[ki|(<<(kj-))][p[kj]][fast|fi|(<<(kj-))],dp[ki][i][fi]+dis[i][p[kj]]+(((fast|fi)&(<<(kj-)))?ft[kj]:t[kj]));
}
for(j=;j<=n;j++){
int fast=check(j);
if((fast&fi)!=fast)
Min(dp[ki][j][fast|fi],dp[ki][i][fi]+dis[i][j]);
}
}
}
}
int ans=inf;
for(i=;i<=N;i++){
for(j=;j<=n;j++){
ans=min(ans,dp[N][j][i]+dis[j][]);
}
}
return ans;
}
int main()
{
int i,j,u,v,val,x,c,Case=;
int T;
scanf("%d",&T);
while(T--){
init();
scanf("%d%d%d",&n,&m,&k);
for(i=;i<=m;i++){
scanf("%d%d%d",&u,&v,&val);
dis[u][v]=dis[v][u]=min(dis[u][v],val);
}
for(i=;i<=k;i++){
scanf("%d%d%d%d",&p[i],&t[i],&ft[i],&c);
while(c--){
scanf("%d",&x);
fast[i]|=(1LL<<x);
}
}
floyd();
printf("Case #%d: %d\n",++Case,solve());
}
return ;
}

hdu 4144 状态压缩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 4284 状态压缩dp

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

  4. hdu 2167 状态压缩dp

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

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

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

  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. Routed Events【pluralsight】

    Routing Strategies: Direct Bubbling Tunneling WHy use them? Any UIElement can be a listener Common h ...

  2. UI:关于RGB与16进制颜色值的转换

    IOS基本图形绘制 参考 取色对照表 参照 页面背景改为   #5CACEE   的颜色.有两个方法 方法一: 加两个宏 #define UIColorFromHexWithAlpha(hexValu ...

  3. js 格式化数字

    http://www.jb51.net/article/61585.htm 这篇文章主要介绍了JS实现的4种数字千位符格式化方法分享,本文给出了4种千分位格式化方法并对它们的性能做了比较,需要的朋友可 ...

  4. swift 与 指针初级使用

    swift 里面对应C 的基础类型前面加C,CInt.CBool和CChar UnsafePointer<CChar> 对应C的 const char *;常量指针不可变 UnsafeMu ...

  5. Codeforces Round #340 (Div. 2) B. Chocolate 水题

    B. Chocolate 题目连接: http://www.codeforces.com/contest/617/problem/D Descriptionww.co Bob loves everyt ...

  6. 主函数 main WinMain _tmain _tWinMain 的区别

    main是C/C++的标准入口函数名 WinMain是windows API窗体程序的入口函数.(int WINAPI WinMain()) 中 WINAPI是__stdcall宏,在windef.h ...

  7. 死锁相关 变量 与 PURGE 线程停止

    http://www.tuicool.com/articles/NzAFZn https://github.com/percona/percona-server/pull/83/commits/091 ...

  8. 类的__slots__属性

    为什么有"slots"属性? 默认情况下,python对象队象的每个实例(instance)都会有一个字典来存储该实例的属性,这样做的好处在于运行时期每个对象可以任意设置新的属性. ...

  9. iOS本机生成证书请求文件流程

    第一步:苹果机上打开“Finder”,选择“应用程序”,双击打开“实用工具” 第二步:在“实用工具”中,选“择钥匙串访问”,双击打开 第三步: “钥匙串访问”打开,看到如下页面 第四步:选择菜单中“钥 ...

  10. tachyon 命令行接口

    Usage: tachyon COMMAND where COMMAND is one of: format [-s] 格式化Format Tachyon (如果指定 -s 参数,表示在 underf ...