不难发现每条边都有交通中心 所以对每个交通中心跑一次spfa就好

求答案的时候就枚举是先到哪个交通中心,取个最优值。

#include<cmath>
#include<queue>
#include<cstdio>
#include<vector>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#define me(a,x) memset(a,x,sizeof a)
using namespace std;
typedef long long LL;
const int N=20010,K=205;
const int inf=1000000007;
inline LL read()
{LL x=0,f=1; char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1; ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();}return x*f;
}
struct node{int y,c,next;}a[N]; int first[N],len;
void ins(int x,int y,int c)
{a[++len].y=y,a[len].c=c,a[len].next=first[x],first[x]=len;
}
queue<int>q;
int f[K][N]; bool v[N];
int p[N];
void spfa(int st)
{q.push(st); me(v,0);v[st]=1,f[p[st]][st]=0;while(!q.empty()){int x=q.front();for(int k=first[x];k;k=a[k].next){int y=a[k].y;if(f[p[st]][y]>f[p[st]][x]+a[k].c){f[p[st]][y]=f[p[st]][x]+a[k].c;if(!v[y]){v[y]=1; q.push(y);}}}q.pop();v[x]=0;}
}
int main()
{int k=read(),m=read(),n=read(),q=read();int x,y,c,i;for(i=1;i<=m;i++){x=read(),y=read(),c=read();ins(x,y,c);}me(f,63);for(i=1;i<=n;i++){x=read();p[x]=i; spfa(x);}LL ans=0; int s=0;while(q--){x=read(),y=read();LL g=inf;if(!p[x])for(i=first[x];i;i=a[i].next)g=min(g,(LL)a[i].c+f[p[a[i].y]][y]);else g=f[p[x]][y];if(g<inf)s++,ans+=g;}printf("%d\n%lld\n",s,ans);return 0;
}


BZOJ 4093: [Usaco2013 Dec]Vacation Planning相关推荐

  1. bzoj 4094: [Usaco2013 Dec]Optimal Milking

    4094: [Usaco2013 Dec]Optimal Milking Description Farmer John最近购买了N(1 <= N <= 40000)台挤奶机,编号为1 . ...

  2. bzoj 4094: [Usaco2013 Dec]Optimal Milking 线段树

    →题目链接← [想说的话] 再次手误... [题解] 对于每个区间维护四种最大值 1.选左端点不选右端点 2.选右端点不选左端点 3.两个端点都选 4.两个端点都不选 然后用线段树搞一搞就好了 注意下 ...

  3. 【BZOJ4094】[Usaco2013 Dec]Optimal Milking 线段树

    [BZOJ4094][Usaco2013 Dec]Optimal Milking Description Farmer John最近购买了N(1 <= N <= 40000)台挤奶机,编号 ...

  4. [bzoj4094][Usaco2013 Dec]Optimal Milking 线段树

    4094: [Usaco2013 Dec]Optimal Milking Time Limit: 10 Sec  Memory Limit: 128 MB [Submit][Status][Discu ...

  5. BZOJ 1692: [Usaco2007 Dec]队列变换( 贪心 )

    数据 n <= 30000 , 然后 O( n² ) 的贪心也过了..... USACO 数据是有多弱啊 = = ( ps : BZOJ 1640 和此题一模一样 , 双倍经验 ) ------ ...

  6. bzoj 1606 [Usaco2008 Dec]Hay For Sale 购买干草(01背包)

    1606: [Usaco2008 Dec]Hay For Sale 购买干草 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1300  Solved:  ...

  7. [BZOJ] 1606: [Usaco2008 Dec]Hay For Sale 购买干草

    1606: [Usaco2008 Dec]Hay For Sale 购买干草 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1335  Solved:  ...

  8. BZOJ 1691: [Usaco2007 Dec]挑剔的美食家( 平衡树 )

    按鲜嫩程度排个序, 从大到小处理, 用平衡树维护价值 ---------------------------------------------------------------------- #i ...

  9. BZOJ 1606: [Usaco2008 Dec]Hay For Sale 购买干草

    1606: [Usaco2008 Dec]Hay For Sale 购买干草 Description     约翰遭受了重大的损失:蟑螂吃掉了他所有的干草,留下一群饥饿的牛.他乘着容量为C(1≤C≤5 ...

  10. bzoj 3388: [Usaco2004 Dec]Cow Ski Area雪场缆车(Tarjan)

    3388: [Usaco2004 Dec]Cow Ski Area雪场缆车 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 108  Solved: 4 ...

最新文章

  1. Nacos 1.3.0 发布, 全新内核构建
  2. (转)全文检索技术学习(一)——Lucene的介绍
  3. RSA加密解密及数字签名Java实现--转
  4. 刷题一个4ms的程序,代码如何优化到3ms再到2ms?
  5. PHP、Node、Ruby和Python应用,漏洞修复
  6. reentrantlock非公平锁不会随机挂起线程?_【原创】Java并发编程系列16 | 公平锁与非公平锁...
  7. php 猴子选大王,php猴子选大王
  8. python3-开发进阶-RESTful 软件架构风格
  9. 大型网站技术架构:核心原理与案例分析 mobi_大数据技术经典学习路线
  10. Android 获取联系人的公司,android-如何从设备的联系人列表中获取用户...
  11. 华为MDC调试工具使用介绍
  12. 嵌入式开发日记(3)——利用Python接收并处理JY61传感器数据
  13. 今有物不知其数,三三数只剩其二,五五数只剩其三,七七数只剩其二
  14. css引用 svg图标库,svg 图标文件引入小技巧
  15. Linux中删除文件,磁盘空间未释放问题追踪
  16. 国产Linux系统再添一员猛将,颜值完全不输苹果!
  17. Python图像处理库PIL中图像格式转换(一)
  18. 手把手教你批量制作MV连播视频
  19. IPGUARD申请解密流程说明
  20. USACO 1.2.4_beads

热门文章

  1. 常用计算机病毒防治办法,常见的计算机病毒防治措施有哪些
  2. linux 修改文件日期,Linux系统如何修改文件的时间
  3. 培训Java程序员技术真的差吗?
  4. 酒店管理系统--C语言版
  5. 如何在MacBook中录制iphone模式的视频?macbook屏幕模糊如何解决?
  6. 无刷直流电动机及其控制
  7. 计算机专业毕业论文结尾,计算机毕业论文最后的总结.docx
  8. openSUSE 11.2 上试动Mono
  9. win10c盘扩容_Win10中无损分区扩容调整大小
  10. 分享五个免费图片/视频资源网站