题目描述

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

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

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

输入输出格式

输入格式:

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

接下来的Ki行中第Tij个依次表示与等级为i,编号为j的星球相连的等级为i-1的星球的编号和此航线需要的费用(正数表示支出,负数表示收益,费用的绝对值不超过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。

样例解释:

简单dp

用spfa也可以

// 去吧!皮卡丘! 把AC带回来!
//      へ     /|
//   /\7    ∠_/
//   / │   / /
//  │ Z _,< /   /`ヽ
//  │     ヽ   /  〉
//  Y     `  /  /
//  イ● 、 ●  ⊂⊃〈  /
//  ()  へ    | \〈
//   >ー 、_  ィ  │ //
//   / へ   / ノ<| \\
//   ヽ_ノ  (_/  │//
//    7       |/
//    >―r ̄ ̄`ー―_
//**************************************
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define inf 2147483647
const ll INF = 0x3f3f3f3f3f3f3f3fll;
#define ri register int
template <class T> inline T min(T a, T b, T c) { return min(min(a, b), c); }
template <class T> inline T max(T a, T b, T c) { return max(max(a, b), c); }
template <class T> inline T min(T a, T b, T c, T d) {return min(min(a, b), min(c, d));
}
template <class T> inline T max(T a, T b, T c, T d) {return max(max(a, b), max(c, d));
}
#define scanf1(x) scanf("%d", &x)
#define scanf2(x, y) scanf("%d%d", &x, &y)
#define scanf3(x, y, z) scanf("%d%d%d", &x, &y, &z)
#define scanf4(x, y, z, X) scanf("%d%d%d%d", &x, &y, &z, &X)
#define pi acos(-1)
#define me(x, y) memset(x, y, sizeof(x));
#define For(i, a, b) for (int i = a; i <= b; i++)
#define FFor(i, a, b) for (int i = a; i >= b; i--)
#define bug printf("***********\n");
#define mp make_pair
#define pb push_back
const int maxn = 3e5 + 10;
const int maxx = 1e6 + 10;
// name*******************************
int dp[105][105];
int n;
int ans = inf;
// function******************************//***************************************
int main() {// ios::sync_with_stdio(0); cin.tie(0);// freopen("test.txt", "r", stdin);//  freopen("outout.txt","w",stdout);cin >> n;int x;For(i, 1, n) {cin >> x;For(j, 1, x) {dp[i][j] = inf - 1000;int a, b;cin >> a;while (a) {cin >> b;dp[i][j] = min(dp[i][j], dp[i - 1][a] + b);cin >> a;}}}For(i, 1, x) { ans = min(ans, dp[n][i]); }cout << ans;return 0;
}

转载于:https://www.cnblogs.com/planche/p/8594328.html

P1796 汤姆斯的天堂梦相关推荐

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

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

  2. 洛谷P1796 汤姆斯的天堂梦

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

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

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

  4. P1796 汤姆斯的天堂梦(动态规划)

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

  5. 洛谷P1796 汤姆斯的天堂梦【DP-数字三角形模型】【橙】

    Date:2022.01.11 题意:从第0层到第N层最短路径,注意边权有负数. 思路:关于SPFA它已经死了. f[i][j]f[i][j]f[i][j]:从第000行第111个点 ~ 第iii行第 ...

  6. DP专题--P1796 汤姆斯的天堂梦

     这道题输入的时候要注意判断a是不是0 f [ i ] [ j ] 表示第i等级的第j号星球    存的是最小路费 这个状态如何得到呢 只要遍历上一个等级 也就是 i - 1 级的所有星球  将到达i ...

  7. 汤姆斯的天堂梦(par)

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

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

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

  9. 【t100】汤姆斯的天堂梦

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 汤姆斯生活在一个等级为0的星球上.那里的环境极其恶劣,每天12小时的工作和成堆的垃圾让人忍无可忍.他向 ...

最新文章

  1. 孙琦:大数据思维助力我探究能源颗粒机理 | 提升之路系列(四)
  2. 分享产品发布的10条经验
  3. 将Excel文件转换为Html
  4. c#资源管理器【转】
  5. C++中 *(指针引用)与*(指针)的区别
  6. kafka 服务端消费者和生产者的配置
  7. 工作137:map函数
  8. C语言/C++基础知识代码整理
  9. spring思想分析
  10. mysqlplus 批量插入_解决SpringBoot+Druid+Mybatis Plus 执行MySQL批量插入,更新 报错的问题...
  11. wifi 小米pro 驱动 黑苹果_【黑果小兵】小米Pro macOS High Sierra 10.13黑苹果安装教程...
  12. chrome插件开发基础以及如何防止劫持
  13. hpm1005能扫描不能打印_「惠普m1005怎么扫描」HP惠普M1005打印机不能扫描文件该怎么办? - seo实验室...
  14. Yate for Mac(音乐标签管理工具)
  15. 渗透安全学习记录笔记
  16. android进程通信6,[Android]你不知道的Android进程化(6)--进程通信Andromeda框架
  17. ascii art c语言,ASCII art (简体中文)
  18. 汇编———标志(flag)寄存器
  19. 论计算机的维修策略论文,论计算机的维护维修策略(论文).doc
  20. Instruments相关

热门文章

  1. 用matlab画图像,用MATLAB画出图像的幅度和方向角的图像并画出它们的直方图
  2. Linux文件及日志内容
  3. D3.js的v5版本入门教程(第一章)—— 如何在项目中使用D3.js
  4. 二进制部署Prometheus及监控服务
  5. (C语言)学生管理系统
  6. 云服务器liunx系统怎么安装,云服务器怎么安装linux系统
  7. unity3d 摄像机跟随角色时 画面抽搐问题
  8. 解决ERROR 1109 (42S02): Unknown table 'xxx' in MULTI DELETE
  9. android 严振杰权限管理,MyAndroidFrameWork
  10. MVC3中_ViewStart.cshtml的一些事