news 2026/4/16 15:45:55

P14971 『GTOI - 2B』DDoS题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
P14971 『GTOI - 2B』DDoS题解

P14971 『GTOI - 2B』DDoS

题目描述

现在有n nn个人提交代码给洛谷,其中第i ii个人提交代码的时间是第l i l_ili秒至第r i r_iri(包括第l i , r i l_i,r_ili,ri秒)

小 H 可以进行若干次操作,每次操作选择两个正整数x , y x,yx,y满足x ≤ y x\le yxy,用y − x + 1 y-x+1yx+1的代价在区间[ x , y ] [x,y][x,y]所对应的时间,即第x xx秒到第y yy秒内(包括第x , y x,yx,y秒)向洛谷发起 DDoS 攻击。小 H 可使用的总代价为m mm

小 H 希望所有的n nn个人在提交代码时都全程受到 DDoS 攻击。

我们认为第i ii个人提交代码时全程受到 DDoS 攻击,当且仅当对于∀ j ∈ [ l i , r i ] \forall j\in[l_i,r_i]j[li,ri],第j jj秒有 DDoS 攻击。

由于小 H 讨厌不连续的攻击,所以他问你,他至少要进行几次操作,才能使得这n nn个人提交代码时都全程受到 DDoS 攻击。

如果无论如何都不能使得这n nn个人提交代码时都全程受到 DDoS 攻击,输出− 1 -11

输入格式

第一行,两个正整数n , m n,mn,m

接下来n nn行,每行两个正整数l i , r i l_i,r_ili,ri

输出格式

一个整数,表示最小的操作次数,无解输出-1 \text{-1}-1

输入输出样例 #1

输入 #1

5 12 2 4 11 12 6 8 1 3 10 13

输出 #1

2

输入输出样例 #2

输入 #2

5 12 1 3 6 9 4 5 2 4 10 12

输出 #2

1

输入输出样例 #3

输入 #3

2 14 1 10 2 15

输出 #3

-1

说明/提示

【数据范围】

本题采用捆绑测试。

对于100 % 100\%100%的数据,保证1 ≤ n ≤ 10 6 , 1 ≤ m , l i , r i ≤ 10 9 1 \le n \le 10^6,1 \le m,l_i,r_i \le 10^91n106,1m,li,ri109

Subtask \text{Subtask}Subtaskn nnm , l i , r i m,l_i,r_im,li,ri分值
1 11≤ 10 \le1010≤ 10 6 \le10^610620 2020
2 22≤ 10 5 \le10^5105≤ 10 6 \le10^610630 3030
3 33≤ 10 6 \le10^6106≤ 10 9 \le10^910950 5050

思路

直接暴力。

代码见下

#include<bits/stdc++.h>usingnamespacestd;longlongn,m,dl=1,db=0,op=0,b[1000006],de=0,fk=0;structone{longlongl,r;}a[1000006];boolcmp(one a1,one b1){returna1.l<b1.l;}map<longlong,longlong>mp;intmain(){cin>>n>>m;for(inti=1;i<=n;i++){cin>>a[i].l>>a[i].r;}sort(a+1,a+n+1,cmp);for(inti=1;i<=n;i++){if(db<=a[i].l-2){op+=(db-dl+1);if(i!=1)b[++de]=(a[i].l-db-1);dl=a[i].l;db=a[i].r;fk++;}else{db=max(db,a[i].r);}}op+=(db-dl+1);//fk++;if(m<=op-1){cout<<-1<<endl;}else{sort(b+1,b+de+1);for(inti=1;i<=de;i++){if(op+b[i]<=m){op+=b[i];fk--;}// else{// break;// }}cout<<fk<<endl;}return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 15:03:59

Qwen-Image-Layered使用踩坑记录,这些错误别再犯

Qwen-Image-Layered使用踩坑记录&#xff0c;这些错误别再犯 Qwen-Image-Layered不是一款“生成图”的模型&#xff0c;而是一款“拆解图”的工具——它不创造画面&#xff0c;却赋予每张图像可编辑的生命力。当你把一张普通PNG丢进去&#xff0c;它返回的不是新图&#xff0c…

作者头像 李华
网站建设 2026/4/13 14:45:24

Windows环境下rs232串口调试工具深度剖析

以下是对您提供的博文内容进行 深度润色与专业重构后的版本 。我以一位深耕嵌入式系统多年、常年在Windows平台调试各类MCU/工业设备的工程师视角&#xff0c;将原文中略显“教科书式”的技术陈述&#xff0c;转化为更具现场感、逻辑更紧凑、语言更凝练、经验更真实的 工程级…

作者头像 李华
网站建设 2026/4/13 15:46:26

Multisim下载安装超详细版:从零开始学电路仿真

以下是对您提供的博文内容进行 深度润色与专业重构后的版本 。全文已彻底去除AI生成痕迹&#xff0c;采用真实工程师口吻、教学博主叙事节奏与工程实践逻辑展开&#xff0c;语言更自然流畅、结构更具沉浸感和引导性&#xff0c;同时严格保留所有技术细节、关键参数、代码示例…

作者头像 李华
网站建设 2026/4/16 12:14:50

一键部署ChatGLM3-6B:内网环境也能用的AI对话神器

一键部署ChatGLM3-6B&#xff1a;内网环境也能用的AI对话神器 1. 为什么你需要一个“能离线运行”的本地AI助手&#xff1f; 你有没有过这样的经历&#xff1a; 正在写一份技术方案&#xff0c;突然卡在某个算法逻辑上&#xff0c;想快速查一下实现细节&#xff1b; 或者手头…

作者头像 李华