[最短路] 3.2.6 Sweet Butter
来源:互联网 发布:二战法国投降 知乎 编辑:程序博客网 时间:2024/06/15 00:51
Sweet Butter
香甜的黄油
译 by kd
农夫John发现做出全威斯康辛州最甜的黄油的方法: 糖。把糖放在一片牧场上,他知道N(1<=N<=500)只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。当然,他将付出额外的费用在 奶牛上。
农夫John很狡猾。像以前的Pavlov,他知道他可以训练这些奶牛,让它们在听到铃声时去一个特定的牧场。他打算将糖放在那里然后下午发出铃声,以至他可以在晚上挤奶。
农夫John知道每只奶牛都在各自喜欢的牧场(一个牧场不一定只有一头牛)。给出各头牛在的牧场和牧场间的路线,找出使所有牛到达的路程和最短的牧场(他 将把糖放在那)
PROGRAM NAME: butter
INPUT FORMAT
第一行: 三个数:奶牛数N,牧场数(2<=P<=800),牧场间道路数C(1<=C<=1450)
第二行到第N+1行: 1到N头奶牛所在的牧场号
第N+2行到第N+C+1行: 每行有三个数:相连的牧场A、B,两牧场间距离D(1<=D<=255),当然,连接是双向的
SAMPLE INPUT (file butter.in)
3 4 5
2
3
4
1 2 1
1 3 5
2 3 7
2 4 3
3 4 5
{样例图形
P2 P1 @--1--@ C1\ |\\ | \5 7 3\ | \\| \ C3C2 @--5--@P3 P4}
OUTPUT FORMAT
一行 输出奶牛必须行走的最小的距离和SAMPLE OUTPUT (file butter.out)
8
{说明:
放在4号牧场最优
}
枚举每个牧场k,求出其余所有牧场到此牧场的最短路径。
每次可以得到一个值tot,为各个牧场的奶牛数*该牧场到s最短路径。
取所有tot 最小的即可。
求最短路径用spfa+链式前向星
var i,n,p,c,dd,d1,d2,d3,ans:longint; num,d:array[1..800]of longint; h:array[1..20000]of longint; v:array[1..800]of boolean; w,next,e,head:array[1..3000]of longint;procedure insert(a,b,s,i:longint);begin next[i]:=head[a]; e[i]:=b; w[i]:=s; head[a]:=i;end;procedure spfa(k:longint);var i,hea,tail,s,tot,kk:longint;begin fillchar(h,sizeof(h),0); fillchar(v,sizeof(v),false); for i:=1 to p do d[i]:=maxlongint; d[k]:=0;hea:=1;tail:=1;h[1]:=k;v[k]:=true; while hea<=tail do begin s:=h[hea]; kk:=head[s]; while kk<>0 do begin if (w[kk]+d[s]<d[e[kk]]) then begin d[e[kk]]:=w[kk]+d[s]; if (v[e[kk]]<>true) then begin inc(tail); h[tail]:=e[kk]; v[e[kk]]:=true; end; end; kk:=next[kk]; end; v[s]:=false; inc(hea); end; tot:=0; for i:=1 to p do if num[i]<>0 then tot:=tot+num[i]*d[i]; if ans>tot then ans:=tot;end;begin fillchar(head,sizeof(head),0); fillchar(next,sizeof(next),0); readln(n,p,c);ans:=maxlongint; for i:=1 to n do begin read(dd); inc(num[dd]); end; for i:=1 to c do begin readln(d1,d2,d3); insert(d1,d2,d3,i*2); insert(d2,d1,d3,i*2+1); end; for i:=1 to p do spfa(i); writeln(ans);end.
- [最短路] 3.2.6 Sweet Butter
- USACO-Section 3.2 Sweet Butter(最短路[Dijkstra])
- USACO 3.2.6 sweet butter
- USACO 3.2 Sweet Butter (butter)
- [U]3.2.6 Sweet Butter 枚举+SPFA
- uscao 3.2 Sweet Butter
- USACO 3.2 Sweet Butter
- dijkstra+堆优化 USACO 3.2.6 Sweet Butter
- [Usaco-3.2.6] Sweet Butter香甜的黄油
- 【USACO题库】3.2.6 Sweet Butter香甜的黄油
- JZOJ1287.【USACO题库】3.2.6 Sweet Butter香甜的黄油
- 【USACO题库】3.2.6 Sweet Butter香甜的黄油
- Sweet Butter
- usaco Chapter 3 section 3.2 Sweet Butter
- USACO section 3.2 Sweet Butter(SPFA)
- USACO3.2.6 Sweet Butter (butter)
- USACO3.2.6 Sweet Butter (butter)
- USACO - 3.2.6 Sweet Butter 香甜的黄油 Dijkstra(迪杰斯特拉算法)+枚举
- 末末的6个8
- 在XP系统上 安装 AMG算法
- ASP.NET一般处理文件Handler.ashx属性IsReusable详解
- poj Drainage Ditches
- Android 4.1 for Developers
- [最短路] 3.2.6 Sweet Butter
- Math.Net入门笔记
- weblogic配置数据库连接池以及事务处理
- linux vi vim 配置 用于写c语言
- cnpack多国语言控件帮助
- 'Could not convert variant of type (Array Byte) into type (Integer)
- 排列组合
- cxGrid使用技巧
- FFmpeg的C++封装:FFmpegWrapper