Codeforces 1175E Minimal Segment Cover
2024-09-01 14:27:49
题意:
有\(n\)条线段,区间为\([l_i, r_i]\),每次询问\([x_i, y_i]\),问要被覆盖最少要用多少条线段。
思路:
\(f[i][j]\)表示以\(i\)为左端点,用了\(2^j\)条线段,最远到哪里。
然后从大到小贪心即可,类似于倍增找LCA的过程。
代码:
#include <bits/stdc++.h>
using namespace std;
#define N 200010
#define M 500010
#define D 20
int n, q;
int l[N], r[N];
int f[M][D];
int work(int x, int y) {
int ans = 0;
for (int i = D - 1; i >= 0; --i) {
if (f[x][i] < y) {
x = f[x][i];
ans |= (1 << i);
}
}
x = f[x][0]; ++ans;
if (x < y) ans = -1;
return ans;
}
int main() {
while (scanf("%d%d", &n, &q) != EOF) {
for (int i = 1; i <= n; ++i) {
scanf("%d%d", l + i, r + i);
++l[i], ++r[i];
}
memset(f, 0, sizeof f);
for (int i = 1; i <= n; ++i) {
f[l[i]][0] = max(f[l[i]][0], r[i]);
}
for (int i = 1; i < M; ++i) {
f[i][0] = max(f[i][0], max(i, f[i - 1][0]));
for (int j = 1; j < D; ++j) {
f[i][j] = max(f[i][j], max(f[i][j - 1], f[i - 1][j]));
}
}
for (int j = 1; j < D; ++j) {
for (int i = 1; i < M; ++i) {
f[i][j] = max(f[i][j], f[f[i][j - 1]][j - 1]);
}
}
int x, y;
while (q--) {
scanf("%d%d", &x, &y);
++x, ++y;
printf("%d\n", work(x, y));
}
}
return 0;
}
最新文章
- [ASP.NET Core] Static File Middleware
- How can i use iptables save on centos 7?
- 字符串正则替换replace第二个参数是函数的问题
- 0002 Oracle账户相关的几个语句
- [LintCode] Coins in a Line II 一条线上的硬币之二
- 正则表达式匹配完整img标签php实现
- android里TextView加下划线的几种方式
- 正在连接...ORA-12541: TNS: 无监听程序
- Python文件处理之文件读取方式(二)
- Jquery:Jquery中的DOM操作<;二>;
- [DeeplearningAI笔记]改善深层神经网络_优化算法2.3_2.5_带修正偏差的指数加权平均
- Effective STL 为包含指针的关联容器指定比较类型
- Invalid tld file: ";/WEB-INF/tags/xxxt.tld";, see JSP 2.2 specification section 7.3.1 for more details
- 2017-9-24模拟赛T1 个人卫生综合征(school.*)
- 深度学习(一)——CNN算法流程
- java基础(5)内部类
- 慕学在线网0.3_四个model
- python第九十一天----第十六周作业
- java计算今天是今年的第几天
- linux write/wall 1
热门文章
- javascript移动端 电子书 翻页效果
- CentOS7.5 安装MySql教程
- hdu 6216 A Cubic number and A Cubic Number
- hdu 4745 two Rabits
- Docker启动Mongo报警告WARNING: /sys/kernel/mm/transparent_hugepage/enabled is &#39;always&#39;.
- Unable to open nested entry &#39;********.jar&#39; 问题解决
- Ubuntu安装rpm
- 从ABAP Netweaver的SICF到SAP Kyma的Lambda Function
- centos搭建集群
- SmartBinding实现DataSet与ListView的绑定及同步显示