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

【DS思想+堆贪心】CF595div3 D2

Problem - D2 - Codeforces

题意:

 

 思路:

大家都说这是典,但是我不懂怎么个典法,可能堆贪心都是这样做的吗,不懂

首先肯定要贪心,对于一个坏点,优先删除覆盖别的点多的

考虑nlogn做法,先去枚举点,然后把覆盖该点的所有区间扔进优先队列里,优先删除右端点靠右的

那怎么看是不是坏点,还得维护一个差分数组,边枚举边维护

感觉突破点就是堆贪心

Code:

#include <bits/stdc++.h>#define int long longusing i64 = long long;constexpr int N = 2e5 + 10;
constexpr int M = 1e6 + 10;
constexpr int P = 2600;
constexpr i64 Inf = 1e18;
constexpr int mod = 998244353;
constexpr double eps = 1e-6;struct ty {int l, r;int id;bool operator < (const ty & a) const {return a.r > r;}
}p[N];std::priority_queue<ty> q;int n, k;
int sum[N];
int ans[N];bool cmp(ty x, ty y) {if (x.l == y.l) return x.r < y.r;return x.l < y.l;
}
void solve() {std::cin >> n >> k;for (int i = 1; i <= n; i ++) {std::cin >> p[i].l >> p[i].r;p[i].id = i;sum[p[i].l] ++;sum[p[i].r + 1] --;}std::sort(p + 1, p + 1 + n, cmp);int j = 1;int len = 0;for (int i = 1; i < N; i ++) {while (j <= n && p[j].l <= i) q.push(p[j ++]);sum[i] += sum[i - 1];while (sum[i] > k) {auto u = q.top();q.pop();ans[++len] = u.id;sum[i] --;sum[u.r + 1] ++;}}std::cout << len << "\n";for (int i = 1; i <= len; i ++) std::cout << ans[i] << " \n" [i == len];
}
signed main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t = 1;while (t--) {solve();}return 0;
}

http://www.lryc.cn/news/159689.html

相关文章:

  • 2023-09-08 LeetCode每日一题(计算列车到站时间)
  • 软考-高级-信息系统项目管理第四版(完整24章全笔记)
  • 华为Mate 60和iPhone 15选哪个?
  • 嵌入式Linux驱动开发(同步与互斥专题)(二)
  • Docker安装部署Nexus3作为内网镜像代理缓存容器镜像
  • SpringBoot工具库:解决SpringBoot2.*版本跨域问题
  • docker安装开发常用软件MySQL,Redis,rabbitMQ
  • C# Unity FSM 状态机
  • pytorch搭建squeezenet网络的整套工程,及其转tensorrt进行cuda加速
  • 【精读Uboot】SPL阶段的board_init_r详细分析
  • canvas绘制渐变色三角形金字塔
  • 企业电子招标采购系统源码Spring Boot + Mybatis + Redis + Layui + 前后端分离 构建企业电子招采平台之立项流程图
  • Debain JDK8 安装
  • Python序列操作指南:列表、字符串和元组的基本用法和操作
  • 【已更新代码图表】2023数学建模国赛E题python代码--黄河水沙监测数据分析
  • 【前端】CSS-Grid网格布局
  • 计算机竞赛 基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别
  • 2023-9-8 求组合数(二)
  • k8s service的一些特性
  • C++中std::enable_if和SFINAE介绍
  • 华为OD机考算法题:数字加减游戏
  • WPF命令
  • Unity中Shader的屏幕抓取 GrabPass
  • 手撕 队列
  • 【autodl/linux配环境心得:conda/本地配cuda,cudnn及pytorch心得】-未完成
  • macOS Ventura 13.5.2(22G91)发布,附黑/白苹果镜像下载地址
  • vue 子组件向父组件传递参数 子传父
  • 自然语言处理学习笔记(八)———— 准确率
  • Matlab 如何选择窗函数和 FFT 的长度
  • node.js下载安装环境配置以及快速使用