NDK 1408 佳佳的魔法药水(Magic Syrup)

阅读: 评论:0

NDK 1408 佳佳的魔法药水(Magic Syrup)

NDK 1408 佳佳的魔法药水(Magic Syrup)

问题描述:

 得到一种药水有两种方法:可以按照魔法书上的指导自己配置,也可以到魔法商店里去买  ——那里对于每种药水都有供应,虽然有可能价格很贵。在魔法书上有很多这样的记载:1  份A药水混合1份B药水就可以得到1份C药水。(至于为什么1+1=1,因为……这是魔法世  界)好了,现在你知道了需要得到某种药水,还知道所有可能涉及到的药水的价格以及魔法  书上所有的配置方法,现在要问的就是:1.最少花多少钱可以配制成功这种珍贵的药水;2.  共有多少种不同的花费最少的方案(两种可行的配置方案如果有任何一个步骤不同则视为不  同的)。假定初始时你手中并没有任何可以用的药水。

数据输入:

 第一行有一个整数N,表示一共涉及到的药水总数。药水从0~N-1顺序编号,0号药水就是最  终要配制的药水。

 第二行有N个整数,分别表示从0~N-1顺序编号的所有药水在魔法商店的价格(都表示1份的  价格)。

 第三行开始,每行有3个整数A、B、C,表示1份A药水混合1份B药水就可以得到1份C药  水。注意,某两种特定的药水搭配如果能配成新药水的话,那么结果是唯一的。也就是说不  会出现某两行的A、B相同但C不同的情况。

 输入以一个空行结束。

结果输出:

 输出两个用空格隔开的整数,分别表示得到0号药水的最小花费以及花费最少的方案的个  数。

样例:

 7

 10 5 6 3 2 2 3

 1 2 0

 4 5 1

 3 6 2

 10 3

核心思想:

 很汗颜,很惊人,竟然是图论还是最短路。Dijkstra,每次更新能配制的且花费最小的

vard,g:array[0..1010]of longint;a:array[0..1010,0..1010]of longint;b:array[0..1010]of boolean;n:longint;
//==================================================
procedure init;
vari,j,x,y,z:longint;
beginreadln(n);fori:=1 to n do read(d[i]);readln;while not eof dobeginreadln(x,y,z);inc(x);inc(y);inc(z);a[x,y]:=z;a[y,x]:=z;end;
end;
//=============================================
procedure dijkstra;
vari,j,p,min:longint;
beginfillchar(b,sizeof(b),false);fori:=1 to n do g[i]:=1;fori:=1 to n dobeginmin:=maxlongint;for j:=1 to n doif (not b[j])and(d[j]<min) thenbeginmin:=d[j];p:=j;end;ifmin>d[1] then continue;b[p]:=true;for j:=1 to n doif (b[j])and(a[p,j]>0) then{<一个是枚举的最小的,一个是确定的,配出来的将为确定的>}if d[p]+d[j]<d[a[p,j]] thenbegind[a[p,j]]:=d[p]+d[j];g[a[p,j]]:=g[p]*g[j];endelseif d[p]+d[j]=d[a[p,j]] then g[a[p,j]]:=g[a[p,j]]+g[p]*g[j];end;writeln(d[1],' ',g[1]);
end;
//=============================================
beginassign(input,'p1408.in');reset(input);assign(output,'p1408.out');rewrite(output);init;dijkstra;close(output);close(output);
end.
题目来源:NDK 1408

本文发布于:2024-02-05 02:36:01,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170722057862241.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:药水   魔法   NDK   Magic   Syrup
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23