汤姆斯的天堂梦(par)
来源:互联网 发布:淘宝客退款也能拿佣金 编辑:程序博客网 时间:2024/04/28 21:18
汤姆斯的天堂梦(par)
【问题描述】
汤姆斯生活在一个等级为0的星球上。那里的环境极其恶劣,每天12小时的工作和成堆的垃圾让人忍无可忍。他向往着等级为N的星球上天堂般的生活。
有一些航班将人从低等级的星球送上高一级的星球,有时需要向驾驶员支付一定金额的费用,有时却又可以得到一定的金钱。
汤姆斯预先知道了从0等级星球去N等级星球所有的航线和需要支付(或者可以得到)的金钱,他想寻找一条价格最低(甚至获得金钱最多)的航线。
【输入】
第一行一个正整数N(N≤100),接下来的数据可分为N个段落每段的第一行一个整数Ki(Ki≤100),表示等级为i的星球有Ki个。
接下来的Ki中第Tij行依次表示与等级为i,编号为i的星球相连的等级为i-l的星球的编号和此航线需要的费用(正数表示支出,负数表示收益,费用的绝对值不超过1000)。
每行以0结束,每行的航线数≤100。
【输出】
输出所需(或所得)费用。正数表示支出,负数表示收益。
【输入样例】
3
2
1 15 0
1 5 0
3
1 -5 2 10 0
1 3 0
2 40 0
2
1 1 2 5 3 -5 0
2 -19 3 -20 0
【输出样例】
-1
【数据范围】
对于100%的数据N≤100 Ki≤100。
【样例解释】
如右图
=================================
可能有双边...三边....四边...n边...这个要判断...
=======================
{ID:jie19952PROG:LANG:PASCAL}var n:longint; map:array[0..100,0..100,0..100]of longint; bool_map:array[0..100,0..100,0..100]of boolean; map_num:array[0..100]of longint; //表示每层有多少个.. f:array[0..100,0..100]of longint;procedure init;begin assign(input,'par.in'); assign(output,'par.out'); reset(input); rewrite(output);end;procedure terminate;begin close(input); close(output); halt;end;procedure main;var i,j,k:longint; x,t:longint; ans:longint;begin readln(n); fillchar(bool_map,sizeof(bool_map),false); map_num[0]:=1; for i:=1 to n do begin readln(map_num[i]); //表示第i层有多少个.. for j:=1 to map_num[i] do begin read(x); while x<>0 do begin read(t); //表示第i层的第j个与i-1层的第x个 if bool_map[i,j,x] then begin if t<map[i,j,x] then map[i,j,x]:=t; end else map[i,j,x]:=t; bool_map[i,j,x]:=true; read(x); end; end; end; f[0,1]:=0; for i:=1 to n do begin for j:=1 to map_num[i] do begin f[i,j]:=maxlongint; for k:=1 to map_num[i-1] do if bool_map[i,j,k] then begin if f[i,j]>f[i-1,k]+map[i,j,k] then f[i,j]:=f[i-1,k]+map[i,j,k]; end; end; end; ans:=maxlongint; for i:=1 to map_num[n] do if f[n,i]<ans then ans:=f[n,i]; writeln(ans);end;begin init; main; terminate;end.
- 汤姆斯的天堂梦(par)
- 洛谷 P1796 汤姆斯的天堂梦_NOI导刊2010提高(05)
- 汤姆大叔的博客
- 汤姆大叔的博客
- SAR PAR DAR的区别
- SAR,PAR,DAR的理解
- bzoj1199: [HNOI2005]汤姆的游戏
- 最近的天堂
- 我的天堂
- 天堂里的沙漠
- 天堂的孩子们!
- 送给天堂的孩子
- 我的梦想天堂
- 我的天堂
- 程序里的天堂
- 最美的天堂
- 来自天堂的祝福
- 来自天堂的祝福
- 养生
- linux 命令记录
- C#中利用winapi获取IE地址栏URL
- Java基础知识的三十个经典问答
- List<T> 转化为DataTable,使用Array.ForEach()
- 汤姆斯的天堂梦(par)
- Oracle 查询并删除重复记录的SQL语句
- Android:快速修改ramdisk.img脚本
- 记录一下
- 一大堆Web OS网址
- 玩转CVSNT+TortoiseCVS 版本控制系统(图解)(上)
- iptables 简单的学习知识
- 八皇后
- 玩转CVSNT+TortoiseCVS 版本控制系统(图解)(下)