当前位置: 首页 > ai >正文

ABC 377

D. Many Segments 2

 

        这也是一道采用倒序求解的题,但为什么会想到倒序做呢?先来看这道题。

        首先思考到,对于枚举的 i(作为答案区间的左端点),需要找到所有左端点在 i 右边的区间中,右端点的最小值。

        如果正序做,i 从 1 开始,那在最开始的时候就会有很多区间的左端点在 i 的右边。随着 i 增大,符合条件的区间越来越少。

        如果倒序做,i 从 n 开始,最开始没有区间符合条件,没有左端点在 i 右边的区间,随着 i 不断减小,会有越来越多的区间要被纳入 i 的右侧,有可能会被全覆盖。

        由此观之,发现正序是从多到少,递减的过程,一开始就会有很多变量符合条件。倒序是从少到多,递增的过程,不断有变量开始符合条件。

        是因为要过程递增,所以要去考虑倒序求解。

        对于一个区间的左右端点固定的情况,map 直接去映射左端点对应的右端点。i 向左移的时候,一旦有新的区间的左端点在 i 右边(包括 i),就去看所有右端点的最小值是否能更新。

 

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2e5 + 5, INF = 1e18;int T, n, m, cnt, ans;
map<int, int> mp;signed main()
{cin >> n >> m;int t = 0;for (int i = 1; i <= n; i ++){int l, r;cin >> l >> r;if (mp.count(l) == 0)mp[l] = r;elsemp[l] = min(mp[l], r);}int R = m;for (int L = m; L >= 1; L --){if (mp.count(L) != 0)R = min(R, mp[L] - 1);ans += max(R - L + 1, t);}cout << ans;return 0;
}
http://www.xdnf.cn/news/9378.html

相关文章:

  • 互联网医疗问诊APP原型设计:12个实战案例解析
  • Workflow
  • 如何合理选择智能外呼机器人:多维评估
  • SAP-ABAP:SAP的DMS根据物料号获取附件详解
  • 网络通信的基石:深入理解帧与报文
  • [BUG记录]0X10 会话切换服务响应NRC 0x10
  • <<运算符重载 和 c_str() 的区别和联系
  • TF 卡和 NM 卡有何区别?
  • openinstall支持豆瓣广告监测,赋能品牌深挖社交流量
  • Baklib知识中台体系构建与应用解析
  • 比较转录组-油料作物-文献精读133
  • Jenkins实践(10):pipeline构建历史展示包名和各阶段间传递参数
  • 【深度学习新浪潮】智能眼镜关键技术拆解(简要版)
  • 什么是 BOM 表,如何通过 BOM 表做好生产管理
  • git 删除某次commit并 推送到 origin
  • 安装 LCMS-8060 三重四级杆配件的详细步骤和要点
  • JavaSE核心知识点04工具04-03(Maven)
  • 简单产品图生成器v1(自己写的)
  • 散货拼柜业务有哪些管理难题?易境通散货拼柜系统如何协同化管理?
  • IPsec协议
  • Codeforces Round 1027 (Div. 3)
  • 使用硬件调试器认识arm64的四大特权级
  • 防火墙虚拟系统
  • 【深度学习新浪潮】以图搜地点是如何实现的?(含大模型方案)
  • AI编译器战争:MLIR vs. OpenAI Triton的算子优化哲学对比 ——从矩阵乘法案例看两种范式的设计差异
  • redis五种数据结构底层实现
  • python调用langchain实现RAG
  • c/c++编译工具在win环境下的配置
  • 超大规模模型训练中的 ZeRO 优化器与混合精度通信压缩技术
  • Nginx监控技术、技巧与最佳实践