题目描述

汤姆斯生活在一个等级为0的星球上。那里的环境极其恶劣,每天12小时的工作和成堆的垃圾让人忍无可忍。他向往着等级为N的星球上天堂般的生活。

有一些航班将人从低等级的星球送上高一级的星球,有时需要向驾驶员支付一定金额的费用,有时却又可以得到一定的金钱。

汤姆斯预先知道了从0等级星球去N等级星球所有的航线和需要支付(或者可以得到)的金钱,他想寻找一条价格最低(甚至获得金钱最多)的航线。

输入输出格式

输入格式:

第一行一个正整数N(N≤100),接下来的数据可分为N个段落每段的第一行一个整数Ki(Ki≤100),表示等级为i的星球有Ki个。

接下来的Ki中第Tij行依次表示与等级为i,编号为i的星球相连的等级为i-l的星球的编号和此航线需要的费用(正数表示支出,负数表示收益,费用的绝对值不超过1000)。

每行以0结束,每行的航线数≤100。

输出格式:

输出所需(或所得)费用。正数表示支出,负数表示收益。

输入输出样例

输入样例#1:

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:

-1

说明

对于100%的数据N≤100 Ki≤100。

样例解释:

用t数组表示上一层的状态,用d数组表示本层的状态

转移方程d[i]=min(d[i],t[k]+m)

然后再把t数组替换为d数组

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<queue>
 6 using namespace std;
 7 void read(int &n)
 8 {
 9     char c='+';int x=0;bool flag=0;
10     while(c<'0'||c>'9')
11     {c=getchar();if(c=='-')flag=1;}
12     while(c>='0'&&c<='9')
13     {x=x*10+(c-48);c=getchar();}
14     flag==1?n=-x:n=x;
15 }
16 int n,m;
17 int a[10001];
18 int dp[10001][31];
19 int l,d[110],t[110];
20 int main()
21 {
22     int i,j,k;
23     read(n);
24     for (i=1;i<=n;i++)
25     {
26         read(k);
27         for (j=1;j<=k;j++)
28         {
29             d[j]=0x7ffff;        //将d[j]初始化
30             read(l);
31             while (l!=0)
32             {
33                 read(m);
34                 if (d[j]>t[l]+m) d[j]=t[l]+m;
35                 read(l);
36             }
37         }
38         for (j=1;j<=k;j++)
39             t[j]=d[j];
40     }
41     int ans=1000000;
42     for (i=1;i<=k;i++){
43         if (ans>d[i]) ans=d[i];
44     }
45     printf("%d",ans);
46     return 0;
47 }

P1796 汤姆斯的天堂梦_NOI导刊2010提高(05)相关推荐

  1. 洛谷 P1796 汤姆斯的天堂梦_NOI导刊2010提高(05)

    P1796 汤姆斯的天堂梦_NOI导刊2010提高(05) 题目描述 汤姆斯生活在一个等级为0的星球上.那里的环境极其恶劣,每天12小时的工作和成堆的垃圾让人忍无可忍.他向往着等级为N的星球上天堂般的 ...

  2. 汤姆斯的天堂梦_NOI导刊2010提高(05)【洛谷P1796】

    题目描述 汤姆斯生活在一个等级为0的星球上.那里的环境极其恶劣,每天12小时的工作和成堆的垃圾让人忍无可忍.他向往着等级为N的星球上天堂般的生活. 有一些航班将人从低等级的星球送上高一级的星球,有时需 ...

  3. P1801 黑匣子_NOI导刊2010提高(06)

    P1801 黑匣子_NOI导刊2010提高(06) 题目描述 Black Box是一种原始的数据库.它可以储存一个整数数组,还有一个特别的变量i.最开始的时候Black Box是空的.而i等于0.这个 ...

  4. P1799 数列_NOI导刊2010提高(06)

    P1799 数列_NOI导刊2010提高(06) f[i][j]表示前i个数删去j个数得到的最大价值. if(i-j==x) f[i][j]=max(f[i][j],f[i-1][j]+1); els ...

  5. 方程的解_NOI导刊2010提高(01) 组合数

    题目描述 佳佳碰到了一个难题,请你来帮忙解决. 对于不定方程a1+a2+-+ak-1+ak=g(x),其中k≥2且k∈N,x是正整数,g(x)=x^x mod 1000(即x^x除以1000的余数), ...

  6. 洛谷 P1795 无穷的序列_NOI导刊2010提高(05)

    P1795 无穷的序列_NOI导刊2010提高(05) 题目描述 有一个无穷序列如下: 110100100010000100000- 请你找出这个无穷序列中指定位置上的数字 输入输出格式 输入格式: ...

  7. 洛谷P1807 最长路_NOI导刊2010提高(07) 求有向无环图的 最长路 图论

    洛谷P1807 最长路_NOI导刊2010提高(07) 图论 求有向无环图的 最长路 首先阐明一点 最长路dijkstra 是不能做 (当然我是不会做的,不过我貌似看到过网上的dalao有用dijst ...

  8. 洛谷——P1775 古代人的难题_NOI导刊2010提高(02) P1936 水晶灯火灵(斐波那契数列)...

    P1775 古代人的难题_NOI导刊2010提高(02) P1936 水晶灯火灵 斐波那契数列 1.x,y∈[1-k],且x,y,k∈Z 2.(x^2-xy-y^2)^2=1 给你一个整数k,求一组满 ...

  9. 洛谷—— P1775 古代人的难题_NOI导刊2010提高(02)

    P1775 古代人的难题_NOI导刊2010提高(02) 题目描述 门打开了,里面果然是个很大的厅堂.但可惜厅堂内除了中央的一张羊皮纸和一支精致的石笔,周围几具骷髅外什么也没有.难道这就是王室的遗产? ...

最新文章

  1. CF498C Array and Operations(数论 + 最大流)
  2. spingboot实现redis的发布订阅
  3. Web 安全开发规范手册 V1.0
  4. Spring IOC BeanDefinition解析
  5. python不完全支持面向对象程序设计_Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】...
  6. JSON与XML的选择
  7. 什么是创新型人才,创新型企业?
  8. 【WC2008】【BZOJ1271】秦腾与教学评估(二分,前缀和,奇偶性乱搞)
  9. putty登录到shell.sourceforge.net方法
  10. 关于keeplive
  11. librdkafka交叉编译
  12. PS 图层的基本操作
  13. 典型概率分布(pdf公式和图示)
  14. PDF提取器:ByteScout PDF Extractor SDK
  15. 加壳与脱壳知识点(持续更新)
  16. 31.Python中verbatim标签使用详解
  17. 后端优化 | VINS-Mono 论文公式推导与代码解析分讲
  18. 【opencv】viz 3D虚拟空间模块编译及使用
  19. C#编程,Lazy(延迟初始化)用法
  20. 天津达内可靠么 老员工揭秘真实的达内教育

热门文章

  1. 1个损坏的数据库情况
  2. 伯努利数简单学习笔记
  3. MyBatis基本工作原理
  4. final37另一种插值方法:在端点处插入相等的值
  5. Java八股文 v2.0
  6. childNodes和children的区别
  7. iOS开发--手把手教你制作音乐播放器
  8. 吞吐量和IOPS测试
  9. tkinter界面设计
  10. Java_集合—Map