问题描述

【题目背景】

小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿石交易市场,以便为飞船升级无限非概率引擎。

【问题描述】

现在有m+1个星球,从左到右标号为0到m,小奇最初在0号星球。

有n处矿体,第i处矿体有ai单位原矿,在第bi个星球上。

由于飞船使用的是老式的跳跃引擎,每次它只能从第x号星球移动到第x+4号星球或x+7号星球。每到一个星球,小奇会采走该星球上所有的原矿,求小奇能采到的最大原矿数量。

注意,小奇不必最终到达m号星球。

输入格式

第一行2个整数n,m。

接下来n行,每行2个整数ai,bi。

输出格式

输出一行一个整数,表示要求的结果。

样例输入

3 13
100 4
10 7
1 11

样例输出

101

提示

样例解释】

第一次从0到4,第二次从4到11,总共采到101单位原矿。

【数据范围】

对于20%的数据 n=1,m<=10^5

对于40%的数据 n<=15,m<=10^5

对于60%的数据 m<=10^5

对于100%的数据 n<=10^5,m<=10^9,1<=ai<=10^4,1<=bi<=m

分析
阶段:按编号由小到大讨论
状态:f[i]:前i个星球中能得到的最大收益
决策:前4或前7
方程:f[i]=max{f[i-4],f[i-7]}+a[i]
时间复杂度o(m) 
显然又过不了
优化:
显然两星球之间的距离要能表示为4a+7b
打表后可知18以后的距离都可到达,所以将距离大于18的情况,全部改于18。(离散化)
此时时间复杂度o(18n)
可过
下面是zi_ye ak ioi 的代码
//
#include<stdio.h>
#include<bits/stdc++.h>
using namespace std;
struct zyaknoip
{int zi_yezhengdeakioi,zi_yezhengdeaknoip;
};
zyaknoip zi_ye[1000005];
bool akioi(zyaknoip azi_ye,zyaknoip bzi_ye)
{return azi_ye.zi_yezhengdeakioi<bzi_ye.zi_yezhengdeakioi;
}
int f[1000005],ff[1000005];
bool zi_yeakioi[20]={1,0,0,0,1,0,0,1,1,0,0,1,1,0,1,1,1,0,1};
int n,m,ans;
int main()
{cin>>n>>m;for(int i=1;i<=n;i++)cin>>zi_ye[i].zi_yezhengdeaknoip>>zi_ye[i].zi_yezhengdeakioi;sort(zi_ye+1,zi_ye+2+n,akioi);for(int i=2;i<=n+1;i++){f[i]=-999999999;int j=i-1;while(j>0&&(zi_ye[i].zi_yezhengdeakioi-zi_ye[j].zi_yezhengdeakioi<=18)){if(zi_yeakioi[zi_ye[i].zi_yezhengdeakioi-zi_ye[j].zi_yezhengdeakioi])f[i]=max(f[i],f[j]+zi_ye[i].zi_yezhengdeaknoip);j--;}if(zi_ye[i].zi_yezhengdeakioi-zi_ye[j].zi_yezhengdeakioi>18)f[i]=max(f[i],ff[j]+zi_ye[i].zi_yezhengdeaknoip);ff[i]=max(ff[i-1],f[i]);ans=max(ans,f[i]);}cout<<ans;
}

 

转载于:https://www.cnblogs.com/CXYscxy/p/11028136.html

状态规划P4270小奇挖矿2相关推荐

  1. bzoj 4711 小奇挖矿 ——“承诺”类树形dp

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4711 对"承诺"有了更深的了解. 向外和向内要区分,所以 f [ i ] ...

  2. 小奇遐想 树状数组实现+容斥思想

    问题 M: 小奇遐想 时间限制: 1 Sec  内存限制: 128 MB 提交: 165  解决: 21 [提交] [状态] [讨论版] [命题人:admin] 题目描述 撷来一缕清风飘渺 方知今日书 ...

  3. 小奇的矩阵(动态规划

    [题目 背景] 小奇总是在数学课上思考奇怪的问题. [问题描述] 给定一个 n*m 的矩阵, 矩阵中的每个元素 aij 为正整数. 接下来规定 1. 合法的路径初始从矩阵左上角出发, 每次只能向右或向 ...

  4. 小奇画画(线段树+map)(水题)

    5725: 小奇画画 时间限制: 1 Sec  内存限制: 128 MB 提交: 632  解决: 140 [提交] [状态] [讨论版] [命题人:admin] 题目描述 红莲清泪两行欲吐半点却无 ...

  5. [usOJ5528]小奇的旅行计划

    题目 传送门 题目描述 小奇所在的国家一共由nnn个城市和mmm条连接这些城市的双向道路组成. 小奇非常喜欢骑自行车,它常常骑着自行车从一个城市,沿着某些双向道路到达另一个城市. 现在,这个国家要关闭 ...

  6. Bzoj 4548: 小奇的糖果(双向链表+排序+树状数组)

    以下内容来自ShallWe's Blog 题目 4548: 小奇的糖果 Description 有\(N\)个彩色糖果在平面上.小奇想在平面上取一条水平的线段,并拾起它上方或下方的所有糖果.求出最多能 ...

  7. 【bzoj4550】小奇的博弈 博弈论+dp

    题目描述 这个游戏是在一个1*n的棋盘上进行的,棋盘上有k个棋子,一半是黑色,一半是白色.最左边是白色棋子,最右边 是黑色棋子,相邻的棋子颜色不同. 小奇可以移动白色棋子,提比可以移动黑色的棋子,它们 ...

  8. bzoj 2281: [Sdoi2011]黑白棋 bzoj 4550: 小奇的博弈(Nimk博弈+DP)

    4550: 小奇的博弈 Time Limit: 2 Sec  Memory Limit: 256 MB Submit: 68  Solved: 42 [Submit][Status][Discuss] ...

  9. [usOJ5529]小奇探险

    题目 传送门 to usOJ 题目描述 小奇去遗迹探险,遗迹里有 NNN 个宝箱,有的装满了珠宝,有的装着废品. 小奇有地图,所以它知道每一个宝箱的价值,但是它不喜欢走回头路,所以要按顺序拿这 NNN ...

最新文章

  1. 20155229实验三 《Java面向对象程序设计实验三 敏捷开发与XP实践 》实验报告
  2. JDK 1.5 环境变量的配置
  3. jsp的jstl的foreach标签
  4. Linux(CentOS)中常用软件安装,使用及异常——Zookeeper, Kafka
  5. centos 7 安装openstack kilo in three node
  6. 2021年计算机应用基础统考题库,2021年计算机应用基础统考题库试卷全-20210515145621.doc-原创力文档...
  7. 图像处理之简化色彩(含OpenCV代码)
  8. Oracle Hint(提示)与常用方法
  9. SpringBoot-拦截器、过滤器、监听器
  10. iis 支持html执行php输出
  11. redhat和ubuntu系统下挂载ntfs文件系统的方法(转载)
  12. 从今天开始 好好规划自己
  13. eclipse安装STS插件失败解决办法
  14. AxureShare太慢,自己搭建产品原型分享系统
  15. Python PDF转image方法小结
  16. 联想计算机怎么开启网络共享,联想笔记本开启Wi-Fi共享图文教程
  17. bzoj 4518: [Sdoi2016]征途
  18. 又一家初创公司获得数千万融资进军边缘计算赛道!
  19. 如何确定论文研究方向,看了很多论文还是没有头绪?
  20. APP试玩应用如何赚钱?今天它来了!新手教程【建议收藏】

热门文章

  1. (01)C++之设计模式演变
  2. 深度学习(01)——安装anaconda
  3. c语言错误spawning,C语言一直出现Error spawning cl.exe的解决办法
  4. 搜索接口php,【微信公众平台开发】百度周边搜索接口php封装
  5. python groupby agg_Python数据分析:探索性分析
  6. python 计算时间、日期差值类
  7. 破解sourceInsight4
  8. 关于python的元组类型以下选项中描述错误的是_关于Python的元组类型,以下选项中描述错误的是【】...
  9. android曲线水波纹录音动画,Android-贝塞尔曲线实现水波纹动画
  10. 兔子mq框架_春天兔子MQ