洛谷P1868 饥饿的奶牛 题解

题目链接:P1868 饥饿的奶牛

题意

有一条奶牛冲出了围栏,来到了一处圣地(对于奶牛来说),上面用牛语写着一段文字。

现用汉语翻译为:

有 NNN 个区间,每个区间 x,yx,yx,y 表示提供的 x∼yx\sim yx∼y 共 y−x+1y-x+1y−x+1 堆优质牧草。你可以选择任意区间但不能有重复的部分。

对于奶牛来说,自然是吃的越多越好,然而奶牛智商有限,现在请你帮助他。

1≤n≤1.5×1051 \leq n \leq 1.5 \times 10^51≤n≤1.5×105,0≤x≤y≤3×1060 \leq x \leq y \leq 3 \times 10^60≤x≤y≤3×106。

设 fif_ifi​ 表示只考虑前 iii 个位置能吃到的最多牧草
fi=max⁡j∈Edge(i){fj−1+i−j+1}f_i = \max_{j \in \text{Edge}(i)}\left\{f_{j-1} + i-j+1\right\} fi​=j∈Edge(i)max​{fj−1​+i−j+1}
这里的 Edge(i)\text{Edge}(i)Edge(i) 表示以 iii 结尾的所有区间组成的集合

对于每个区间 [x,y][x,y][x,y] ,我们建一条 y→xy \to xy→x 的边

这样就可以枚举 jjj 了

时间复杂度 O(m)O(m)O(m)

代码:

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <iomanip>
#include <random>
using namespace std;
// #define int long long
// #define INF 0x3f3f3f3f3f3f3f3f
#define N (int)(1.5e5+15)
#define M (int)(3e6+15)
struct Edge{int u,v,next;}e[N];
int n,l,pos=1,f[M],head[M];
void addEdge(int u,int v)
{e[++pos]={u,v,head[u]};head[u]=pos;
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// freopen("check.in","r",stdin);// freopen("check.out","w",stdout);cin >> n;for(int i=1,u,v; i<=n; i++){cin >> u >> v;addEdge(v,u);l=max(l,v);}for(int u=1; u<=l; u++){f[u]=f[u-1];for(int i=head[u]; i; i=e[i].next){int v=e[i].v;f[u]=max(f[u],f[(!v)?0:v-1]+(u-v+1));}}cout << f[l] << '\n';return 0;
}

转载请说明出处

洛谷P1868 饥饿的奶牛 题解相关推荐

  1. 洛谷P1868 饥饿的奶牛

    题目描述 有一条奶牛冲出了围栏,来到了一处圣地(对于奶牛来说),上面用牛语写着一段文字. 现用汉语翻译为: 有N个区间,每个区间x,y表示提供的x~y共y-x+1堆优质牧草.你可以选择任意区间但不能有 ...

  2. 洛谷P1129 [ZJOI2007] 矩阵游戏 题解

    洛谷P1129 [ZJOI2007] 矩阵游戏 题解 题目链接:P1129 [ZJOI2007] 矩阵游戏 题意:给定一张有黑白棋子的正方形棋盘,问存不存在解法使得经过若干次交换行或列的操作后,左上角 ...

  3. 洛谷P3336 [ZJOI2013]话旧 题解

    洛谷P3336 [ZJOI2013]话旧 题解 题目链接:P3336 [ZJOI2013]话旧 题意:小林跟着银河队选手去了一趟宇宙比赛,耳濡目染,变得学术起来.回来后,他发现世界大变样了.比丘兽究级 ...

  4. 洛谷P4683 [IOI2008] Type Printer 题解

    洛谷P4683 [IOI2008] Type Printer 题解 题目链接:P4683 [IOI2008] Type Printer 题意: 你需要利用一台可移动的打印机打印出NNN个单词.这种可移 ...

  5. 洛谷P3647 [APIO2014] 连珠线 题解

    洛谷P3647 [APIO2014] 连珠线 题解 题目链接:P3647 [APIO2014] 连珠线 题意: 在达芬奇时代,有一个流行的儿童游戏称为连珠线.当然,这个游戏是关于珠子和线的.线是红色或 ...

  6. 洛谷P4170 [CQOI2007]涂色 题解

    洛谷P4170 [CQOI2007]涂色 题解 题目链接:P4170 [CQOI2007]涂色 题意: 假设你有一条长度为 555 的木板,初始时没有涂过任何颜色.你希望把它的 555 个单位长度分别 ...

  7. 洛谷P1462 通往奥格瑞玛的道路 题解

    洛谷P1462 通往奥格瑞玛的道路 题解 题目链接:P1462 通往奥格瑞玛的道路 题意:在艾泽拉斯,有 nnn 个城市.编号为 1,2,3,-,n1,2,3,\ldots,n1,2,3,-,n . ...

  8. 洛谷 P2015 二叉苹果树 题解

    洛谷 P2015 二叉苹果树 题解 洛谷 P2015 题目 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有NNN个结点(叶子点或者树枝分叉点),编号为1-NNN ...

  9. 洛谷P3879 [TJOI2010] 阅读理解 题解

    洛谷P3879 [TJOI2010] 阅读理解 题解 题目链接:P3879 [TJOI2010] 阅读理解 题意: 英语老师留了 NNN 篇阅读理解作业,但是每篇英文短文都有很多生词需要查字典,为了节 ...

最新文章

  1. Django 错误汇总
  2. 在.net中使用强类型来读取配置信息
  3. influxdb 客户端工具_性能工具之Jmeter小白入门系列之六
  4. qt运行C语言后无显示,qt designer启动后不显示界面问题的原因与解决办法-站长资讯中心...
  5. 等保2.0标准发布一周年,行业用户如何有效落实合规建设
  6. 田字格怎么用C语言编写程序,怎么写算法设计
  7. [RK3399][Android7.1] HDMI Debug
  8. python37安装失败怎么搞_Linux 安装Python37
  9. POJ - 1384 Piggy-Bank(完全背包)
  10. c++学习————VC报错解决方案(vc2013)
  11. STM32H7+LAN8720A之ETH与LWIP配置问题(End)
  12. 边框虚线html代码是,网页虚线代码/表格边框虚线代码大全
  13. 双随机软件java_随机抽检|双随机一公开 1.0 正式版下载_太平洋下载中心
  14. python条形图的间距_如何减少堆积条形图中条形图之间的间距?
  15. star法则简历Android,优秀简历坚持STAR原则
  16. Android之QQ登录
  17. 机器视觉——远心镜头(1)
  18. Android笔记(三)按键动态渐变
  19. (8.2)利用Newton-Euler公式求解二连杆的动力学方程:
  20. 什么样的护眼灯适合孩子用?真正适合孩子的护眼台灯

热门文章

  1. 20套各种风格影视动画公司响应式企业模电影上映影讯网站模板电影软件网页CSS模板html5网页静态模板Bootstrap扁平化网站源码css3手机seo自适响应
  2. Ascent代码分析4-World之地图管理及实现结构
  3. u8信息服务器,U8开启服务器
  4. 用友U8打开系统管理报错481
  5. 大数据Hadoop之HDFS和MapReduce_02_01
  6. 使用 hugegraph-studio 插入电影数据并查询
  7. 美国眼镜行业零售商Costco正式采购三井化学高折射率镜片单体MRTM
  8. 《基础微积分教材中译版》--序言
  9. javascript判断元素是否已经focus
  10. MATLAB中cla函数