#include <bits/stdc++.h>
using namespace std;
#define maxn 10000
#define INF 6e8
bool inq[];
int dp[][],v[];
struct re{
int a,b,c;
}a[maxn];
int l,n,m,p,head[],dis[][];
void arr(int x,int y,int z)
{
a[++l].a=head[x];
a[l].b=y;
a[l].c=z;
head[x]=l;
}
void spfa()
{
queue<int> q;
for (int s=;s<=n+m;s++)
{
for (int j=;j<=n+m;j++)
dis[s][j]=INF;
dis[s][s]=;
q.push(s); inq[s]=;
while (!q.empty())
{
int x=q.front(); q.pop();
int u=head[x];
while (u)
{
int v=a[u].b;
if (dis[s][v]>dis[s][x]+a[u].c)
{
dis[s][v]=dis[s][x]+a[u].c;
if (!inq[v])
{
q.push(v); inq[v]=;
}
}
u=a[u].a;
}
inq[x]=;
}
}
}
void get_ans()
{
for (int i=;i<=(<<n)-;i++)
for (int j=;j<=n+m;j++)
dp[i][j]=INF;
for (int i=;i<=n;i++)
dp[<<(i-)][i]=;
for (int i=;i<=(<<n)-;i++)
{
for (int j=;j<=n+m;j++)
{
for (int k=i;k;k=(k-)&i)
if (dp[i][j]>dp[k][j]+dp[i^k][j])
dp[i][j]=dp[k][j]+dp[i^k][j];
} for (int k1=;k1<=n+m;k1++)
for (int k2=;k2<=n+m;k2++)
if (dp[i][k1]>dp[i][k2]+dis[k2][k1])
dp[i][k1]=dp[i][k2]+dis[k2][k1];
} }
int main()
{
freopen("noip.in","r",stdin);
std::ios::sync_with_stdio(false);
while (cin>>n>>m>>p&&n>)
{
l=;memset(head,,sizeof(head));
for (int i=;i<=m+n;i++)
{
cin>>v[i];
arr(i,,v[i]);
}
int c,d,e;
for (int i=;i<=p;i++)
{
cin>>c>>d>>e;
arr(c,d,e); arr(d,c,e);
}
spfa();
get_ans();
cout<<dp[(<<n)-][]<<endl;
}
return ;
}

hdu3311的更多相关文章

  1. 【hdu3311】Dig The Wells(斯坦纳树+dp)

    传送门 题意: 给出\(n\)个重要点,还有其余\(m\)个点,\(p\)条边. 现在要在这\(n+m\)个点中挖几口水井,每个地方的费用为\(w_i\).连接边也有费用. 问使得这\(n\)个地点都 ...

随机推荐

  1. DOM-Element对象

    一. 整体介绍  这里介绍DOM对象中Element对象. 那么何为Element对象呢?Element对象就是HTML元素,Element对象包括:元素节点.文本节点.属性节点. 下面利用一张图来总 ...

  2. 解决iOS10下Meta设置user-scalable=no无效问题

    苹果为了提高Safari中网站的辅助功能,屏蔽了Meta下的user-scalable=no功能 所以在iOS10下面,就算加上user-scalable=no,Safari浏览器也能支持手动缩放 解 ...

  3. linux4.10.8 内核移植(一)---环境搭建及适配单板。

    一.环境搭建 源码包下载:git clone https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.10.8.tar.gz 或者直接去kernel. ...

  4. android 简单文件操作

    1.布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:too ...

  5. 把ui界面加入到工程中

    第一步   from untitled import Ui_Form untitled是ui转化成py的文件名:Ui_Form是转换后的类名 第二步  把Ui_Form做为工程的父类    class ...

  6. python - str和repr方法:

    # python 内置__str__()和__repr__()方法: #显示自定制 # 示例1 # a = 123 # print(a.__str__()) # 示例2 class Test(): d ...

  7. Linux下的换行符\n\r以及txt和word文档的使用

    Linux doc WINDOWS下记事本编写的文档和LINUX下VIM或者GEDIT等编写的文档的不同! 例如WINDOWS下编写的SH脚本,放到LINUX下执行可能会出错. 解决方法: 原因是:W ...

  8. kmalloc vmalloc kzalloc malloc 和 get_free_page()【转】

    转自:http://blog.csdn.net/hbhhww/article/details/7236695 kmalloc vmalloc kzalloc get_free_page()是内核空间申 ...

  9. 用nodejs搭建BS环境

    var http = require('http'); http.createServer(function (req, res) {res.writeHead(200, {'Content-Type ...

  10. jrockit静默安装笔记

    操作系统安装版本:CentOS-6.4-i386-minimal JDK安装版本:jrockit-jdk1.6.0_20-R28.1.0-4.0.1-linux-ia32 1.通过SecureFX工具 ...