【动态规划】魔法石矿
时间限制: 1 Sec 内存限制: 64 MB
提交: 116 解决: 27
[提交] [状态] [命题人:admin]
题目描述
为了找到回家的路,张琪曼施展魔法,从高维空间召唤出了一种叫作“读者”的生物,据说“读者”这种生物无所不能,他们可以穿越时空的限制,聆听到历史的声音、巨人的呐喊。但这次“读者”却很严肃地警告她们,从远古起就阴魂不散的天顶星人已冲破封印再次降临到了这个空间,她们若不早做准备,不仅她们所在的这个世界将变成修罗场,连“读者”所在的时空也会受到牵连。最后“读者”交给她们一张藏宝图希望她们能收集足够多的魔法石能量以对抗天顶星人的进攻。已知藏宝图上标有若干个排成一条直线的魔法石矿,每个矿里有一定数量的魔法石,如表所示。

同时每个矿中都有一张说明书,说明在挖完此矿的魔法石后还可继续挖哪些矿,如图所示。

挖矿规则为可以从任何一个矿开始,到任何一个矿结束,同时挖完这个矿中的魔法石之后,可以选择它可继续挖的矿之一继续挖,但只能选择一条。如挖完1矿后,可挖2矿,再挖5矿,6矿,……但只可以向右挖,不能回头向左挖。请问如何挖才能挖出最多的魔法石?

输入
第一行为一个整数n,表示有n(n≤1000)个矿。第二行为n个整数,表示这n个矿的魔法石数。随后n行表示每个矿挖完后还能再挖哪些矿。

输出
最多挖出的魔法石数。

样例输入
复制样例数据
3
1 1 1
1 2 3
2 3
3
样例输出
3

解题思路:
我们可以用dp[i]dp[i]dp[i]来表示到达iii号矿坑所能获得的最大矿石数,则:
dp[i]=max(dp[i],dp[j]+num[i])dp[i]=max(dp[i],dp[j]+num[i])dp[i]=max(dp[i],dp[j]+num[i]) jjj代表jjj号矿坑能从iii号矿坑的左部到达iii号矿坑

代码:

//#pragma GCC optimize(3,"Ofast","inline")
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <map>
#include <stack>
#include <queue>
#include <vector>
#include <bitset>
#include <set>
#include <utility>
#include <sstream>
#include <iomanip>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define inf 0x3f3f3f3f
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define lep(i,l,r) for(int i=l;i>=r;i--)
#define ms(arr) memset(arr,0,sizeof(arr))
//priority_queue<int,vector<int> ,greater<int> >q;
const int maxn = (int)1e5 + 5;
const ll mod = 1e9+7;
ll dp[1200];
vector<int> a[1200];
ll num[1200];
int main()
{#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);#endif//freopen("out.txt", "w", stdout);//ios::sync_with_stdio(0),cin.tie(0);int n;scanf("%d",&n);rep(i,1,n) {scanf("%lld",&num[i]);dp[i]=num[i];}char c;int nape=0;int x;for(int i=1;i<=n;i++) {scanf("%d",&x);do{nape=0;while(1) {c=getchar();if(c>='0'&&c<='9') {nape=nape*10+(c-'0');}elsebreak;}if(nape>0&&nape!=i) {a[nape].push_back(i);}}while(c!='\n');}rep(i,1,n) {for(int j=0;j<a[i].size();j++) {dp[i]=max(dp[i],dp[a[i][j]]+num[i]);}}ll ans=0;rep(i,1,n) {ans=max(ans,dp[i]);}printf("%lld\n",ans);return 0;
}

【动态规划】魔法石矿相关推荐

  1. 【动态规划】完全背包问题

    问题 O: [动态规划]完全背包问题 时间限制: 1 Sec  内存限制: 64 MB 提交: 151  解决: 71 [提交] [状态] [讨论版] [命题人:admin] 题目描述 话说张琪曼和李 ...

  2. 【动态规划】多重背包

    问题 Q: [动态规划]多重背包 时间限制: 1 Sec  内存限制: 64 MB 提交: 112  解决: 49 [提交] [状态] [讨论版] [命题人:admin] 题目描述 张琪曼:" ...

  3. 题解:魔法少女(动态规划超简单)

    前些时间虚渊玄的巨献小圆着实火了一把.在黑长直(小炎)往上爬楼去对抗魔女之夜时,她遇到了一个问题想请你帮忙.因为魔女之夜是悬浮在半空的,所以她必须要爬楼,而那座废墟一共有 nn 层,而且每层高度不同, ...

  4. 动态规划--牛客网19校招--魔法深渊

    题目描述 前几个月放映的头号玩家简直火得不能再火了,作为一个探索终极AI的研究人员,月神自然去看了此神剧. 由于太过兴奋,晚上月神做了一个奇怪的梦,月神梦见自己掉入了一个被施放了魔法的深渊,月神想要爬 ...

  5. 魔法宝石(动态规划)

    Bessie 去珠宝商店想要买一些魔法宝石.商店里有 n 个宝石,每个宝石的重量为 wi幸运值为 vi.Bessie 的购物车只能装重量之和不超过 mm 的商品,现在她想知道如何选择宝石,能让购买的幸 ...

  6. 魔法少女 计蒜客 - T1551(动态规划)

    题目链接:魔法少女 前些时间虚渊玄的巨献小圆着实火了一把. 在黑长直(小炎)往上爬楼去对抗魔女之夜时,她遇到了一个问题想请你帮忙. 因为魔女之夜是悬浮在半空的,所以她必须要爬楼,而那座废墟一共有 nn ...

  7. 强化学习70年演进:从精确动态规划到基于模型

    作者 | Nathan Lambert 译者 | 泓礼 编辑 | 夕颜 出品 | AI科技大本营(ID: rgznai100) [导读]这是一份帮你了解强化学习算法本质的资源,无需浏览大量文档,没有一 ...

  8. 【算法】动态规划+“背包九讲”原理超详细讲解+常见dp问题(9种)总结

    目录 一.动态规划(DP) 二.背包九讲 (1)完全背包 P1616 疯狂的采药(完全背包) (2)01背包 滚动数组 一维数组 P1048 采药(01背包) 01背包表格图示 (3)多重背包 整数拆 ...

  9. 洛谷P1095守望者的逃离题解-伪动态规划/贪心

    链接 题目描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很 ...

最新文章

  1. 数据蒋堂 | JOIN延伸 - 维度其它应用
  2. 如何通过“流量线索”进行恶意程序感染分析
  3. 2018 icpc 徐州现场赛G-树上差分+组合数学-大佬的代码
  4. hdu1435 稳定婚姻问题
  5. 使用Spring Boot,JHipster和React构建照片库PWA
  6. 20155207 实验五 网络编程与安全
  7. Behavior Targeting - 技术研究
  8. 自学python顺序-Python学习之调换顺序
  9. 华为OSPF多区域配置实例
  10. 白盒测试的测试用例设计方法
  11. 掌财社昆仑:期货升水和期货贴水是什么意思?
  12. 互联网公司纷纷裁员,大家都在说互联网行业进入了寒冬期,你怎么看待这个说法?
  13. VS2019 配色_OPPO Enco M31颜值太顶了,斩获 A'设计大奖赛金奖,引领时尚潮流|oppo|大奖赛|无线耳机|配色|时尚|卡特...
  14. 游戏服务器背包设计与实现
  15. thinkphp使用ajax、jquery、Mysql实现了简单的客户端通信功能
  16. 程序设计——第七周作业(Floyd:胜负未知场数;dijkstra:猫猫快线最快线路;SPFA:城市收税)
  17. Apache Tomcat安全漏洞列表及整改建议合集
  18. 剑客vs刀客 Java vs .NET
  19. 导航电子地图数据中POI搜索技术原理之二
  20. Jenkins官方社区携手灵雀云成功举办Jenkins Meetup

热门文章

  1. 读取mysql数据到select_MySQL数据库8(十三)高级数据操作之select指令
  2. linux用date指令,Linux中date指令的使用
  3. 已知法向量 求投影_MIT—线性代数笔记15 子空间投影
  4. 防火墙设置导致服务器站点打开,服务器、网站、环境配置全正常网站打不开原来是系统防火墙造成的...
  5. 暗黑2战网服务器爆率修改,暗黑2修改MOD最初级基础
  6. java https soap,Java Https Soap Server(Tomcat-Axis2)
  7. php中 和 的优先级,理解php中的运算符优先级
  8. mysql谓词演算_MySQL基础知识
  9. php 鼠标点击图片放大,css3如何实现鼠标放上图片放大?(附代码)
  10. 如何和后台接触的_后台产品,不只是做支持