#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. Neural Networks and Deep Learning(week4)Deep Neural Network - Application(图像分类)

    Deep Neural Network for Image Classification: Application 预先实现的代码,保存在本地 dnn_app_utils_v3.py import n ...

  2. PHP7 学习笔记(六)403 Forbidden - WAMP Server 2.5

    今天在wamp目录下有一个项目:comment 我在我的Windows 7机器上安装了WAMP版本2.5. 当浏览器浏览到本地主机时,WAMP服务器页面是可见的. 但是当我浏览到我的本地主机在我的移动 ...

  3. android measure的时候报空指针

    1.使用listview的时候,在代码中动态设置其高度,在android低版本中,这个低版本是以4.4为界,会报measure的空指针,原因是低版本relativelayout有个bug,使用list ...

  4. 【转】基于VSM的命名实体识别、歧义消解和指代消解

    原文地址:http://blog.csdn.net/eastmount/article/details/48566671 版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步 ...

  5. SLT 优先队列 哈弗曼树最小带权路径

    与普通的队列不同,普通的队列是先进先出的,而优先队列出队的顺序不是先进先出,而是大(或者小)元素先出队,需要#include <queue> 成员函数 成员函数 作用 empty() 判断 ...

  6. MySQL Load Data InFile 数据导入数据库

    常用如下: Load Data InFile 'C:/Data.txt' Into Table `TableTest` Lines Terminated By '\r\n'; 这个语句,字段默认用制表 ...

  7. Service的线程、工作线程、权限及系统Service

    Service组件和其他组件一样,都是运行于应用的主线程当中,它们都运行于同一个单一的线程中. 可以把Service简单的理解成一个没有界面显示的Activity(这个比喻其实并不准确,因为Servi ...

  8. Qt5.7 无法输入中文问题

    把libfcitxplatforminputcontextplugin.so复制到安装的Qt目录下的两个文件夹中 sudo apt install fcitx-frontend-qt5 sudo cp ...

  9. ubuntu14.04 boost 1.58.0 安裝

    1.首先下载安装包,然后解压, 切换目录 wget -o boost_1_58_0.gar.gz http://sourceforge.net/projects/boost/files/boost/1 ...

  10. Linux用户组相关指令

    ⒈增加用户组 ①groupadd 用户组名 ⒉删除用户组 ①groupdel 用户组名 ⒊修改用户所在的用户组 ①usermod -g 用户组 用户名 ★用户和用户组的相关文件 ①/etc/passw ...