特地拎出来的总结

news/2025/10/4 20:10:22/文章来源:https://www.cnblogs.com/tony0530/p/19125880

这篇总结不太一样,为了纪念和我爸喋喋不休吵了近3h的时间和教训,用Deepseek共同完成 :

题目

T674176 T2-任务task

题目描述

时间限制: 2.0 秒

空间限制: 512 MiB

\(n\) 个任务,第 \(i\) 个任务需要占据 \([l_i,r_i]\) 的时间,每个任务都会在瞬间结束,不会干扰到之后的任务。

你需要保证只使用 \(k\) 条并行线路完成任务,具体来说:

在选择任务后,你有 \(k\) 个流水线,第 \(t\) 流水线能分配若干任务 \([l_{t,i},r_{t,i}]\)
合法方案需要满足 \(l_{t,i+1}\ge r_{t,i}\),即结束时间不能超过下一个开始时间,且所有任务都分配进去。
也就是说:

  • 对于区间 \([1,2],[2,3]\),可以分配到一条流水线上;
  • 对于全部是 \([1,1]\) 区间的任务,都可以将其安排在一条流水线上;
  • 但是如果是 \([2,2]\)\([1,3]\) 两个区间就无法安排在一条流水线上。

输入格式

从标准输入读入数据。

第一行两个正整数 \(n,k\),表示任务的数量和同时最多能做的任务数。
接下来 \(n\) 行,第 \(i+1\) 行两个整数表示 \(l_i,r_i\)

输出格式

输出到标准输出。

输出一行一个整数,表示最多能完成的任务数。

输入输出样例 #1

输入 #1

3 1
1 2
2 3
1 3

输出 #1

2

说明/提示

补充样例0输入

3 1

1 1

1 1

1 1

样例0输出

3
样例1解释

做任务 \(1\) 和任务 \(2\)。注意任务 \(1\) 结束的那一刻不算正在做任务 \(1\),可以立即开始任务 \(2\)

对于所有的数据,1 ≤ k ≤n ≤ 10⁶, 0 ≤ lᵢ ≤ rᵢ ≤ n

子任务

测试点编号 \(n\leq\) 特殊性质
\(1\sim 3\) \(17\) \(k=1\)
\(4\sim 6\) \(17\) \(l_i\leq l_{i+1}\)\(r_i\leq r_{i+1}\)
\(7\sim 13\) \(17\) 无特殊性质
\(14\sim 16\) \(10^2\) \(k=1\)
\(17\sim 19\) \(10^2\) \(l_i\leq l_{i+1}\)\(r_i\leq r_{i+1}\)
\(20\sim 25\) \(10^2\) 无特殊性质
\(26\sim 28\) \(5\times 10^3\) \(k=1\)
\(29\sim 30\) \(5\times 10^3\) \(l_i\leq l_{i+1}\)\(r_i\leq r_{i+1}\)
\(31\sim 41\) \(5\times 10^3\) 无特殊性质
\(42\sim 43\) \(5\times 10^4\) \(k=1\)
\(44\sim 46\) \(5\times 10^4\) \(l_i\leq l_{i+1}\)\(r_i\leq r_{i+1}\)
\(47\sim 55\) \(5\times 10^4\) 无特殊性质
\(56\sim 58\) \(10^5\) \(k=1\)
\(59\sim 64\) \(10^5\) \(l_i\leq l_{i+1}\)\(r_i\leq r_{i+1}\)
\(65\sim 76\) \(10^5\) \(r_i-l_i<10\)
\(77\sim 83\) \(10^5\) 无特殊性质
\(84\sim 90\) \(10^6\) \(r_i-l_i<10\)
\(91\sim 92\) \(10^6\) \(k=1\)
\(93\sim 94\) \(10^6\) \(l_i\leq l_{i+1}\)\(r_i\leq r_{i+1}\)
\(95\sim 100\) \(10^6\) 无特殊性质

题目关键点

  • 问题本质:选择尽可能多的任务,使得在任何时刻最多有 ( k ) 个任务同时进行(任务在结束时刻不计入进行中)。
  • 核心约束:任务的时间区间 ([l_i, r_i]) 不能重叠超过 ( k ) 个,但允许任务在结束时刻立即开始下一个任务(即区间端点不重叠不计入冲突)。
  • 数据规模:( n \leq 10^6 ),需要高效算法。

正解思路

题解中提到的正确解决方案是:

  1. 排序策略:将任务按照结束时间 ( r_i ) 从早到晚排序。这有助于优先安排结束早的任务,为后续任务留出空间。
  2. 贪心选择:依次考虑每个任务,如果加入后不违反“任何时刻最多 ( k ) 个任务”的约束,则选择该任务。
  3. 约束检查:检查加入任务后,任务区间 ([l_i, r_i]) 内的同时任务数是否超过 ( k )。这需要动态维护每个时间点的任务数。
  4. 数据结构优化:使用线段树或堆来高效查询区间最大值和更新任务数。具体来说:
    • 线段树:维护时间轴上的任务数,支持区间查询最大值和区间加操作(当加入任务时,将 ([l_i, r_i]) 的任务数加1)。
    • 堆优化:由于只需要检查后缀最大值,可以用堆来维护当前进行中的任务结束时间,每次检查时弹出已结束的任务。

正解的时间复杂度为 ( O(n \log n) ) 或 ( O(n \log C) )(其中 ( C ) 是时间范围),能够处理 ( n \leq 10^6 ) 的数据。

做题情况分析

  • 暴力解法:最初实现了 ( O(n^2) ) 的暴力解法,即枚举任务组合并检查约束。这种方法在 ( n ) 较大时(如 ( n > 10^4 ))会超时,无法通过所有测试点。
  • 问题根源:对 ( k ) 的特殊性不敏感,没有意识到 ( k ) 可以作为优化关键。在暴力解法中,未能将问题转化为贪心选择与数据结构维护,导致无法优化到正解。
  • 具体不足
    • 没有使用排序策略来简化问题。
    • 没有利用数据结构高效检查区间任务数,而是每次重新计算,造成高复杂度。
    • 忽略了题解中提到的“结束时间排序”和“区间查询”的提示。

改进建议

  1. 转换思路:对于区间选择问题,优先考虑按结束时间排序的贪心策略,这常用于解决区间不重叠或资源限制问题。
  2. 利用 k 值:当 ( k ) 较小时,可以考虑更简单的优化;但即使 ( k ) 较大,也应使用数据结构维护全局约束。
  3. 掌握数据结构:熟练运用线段树、堆等数据结构处理区间查询和更新,这是解决大规模数据问题的关键。
  4. 代码实践:在实现正解时,注意离散化时间点以降低空间复杂度,并小心处理区间端点(如结束时刻不计入)。

通过本题,应加强贪心算法与数据结构的结合应用,避免陷入暴力枚举的思维定式。在类似问题中,及时分析约束条件并选择高效算法是得分的关键。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在线做漫画的网站wordpress多用户评论

文献计量学是指用数学和统计学的方法&#xff0c;定量地分析一切知识载体的交叉科学。它是集数学、统计学、文献学为一体&#xff0c;注重量化的综合性知识体系。特别是&#xff0c;信息可视化技术手段和方法的运用&#xff0c;可直观的展示主题的研究发展历程、研究现状、研究…

漏洞赏金计划的困境:i915漏洞与ChromeOS、Intel赏金项目剖析

本文深入探讨了漏洞赏金计划存在的系统性问题,通过作者亲身经历的i915驱动漏洞案例,揭示了Google和Intel在处理安全漏洞报告过程中的沟通不畅、缺乏透明度等问题,并分析了漏洞赏金计划中权力失衡的根本原因。漏洞赏…

wordpress站名在哪改项目协同管理平台

在 Unix 环境下&#xff0c;" 寄存器需要 xterm-clipboard feature 的 VIM 软件才能使用&#xff0c;具有这个 feature 的 VIM 可以安装 vim-gtk&#xff08;包含gvim和vim&#xff09;&#xff0c;使用 gvim 可以正常调用 " 寄存器。

2025异型件厂家推荐:邯郸市烁燊紧固件,广泛应用于建筑、桥梁、机械、电力、交通等诸多领域

在现代工业体系中,异型件作为关键基础零部件,广泛应用于建筑、桥梁、机械、电力、交通等诸多领域。随着各行业的快速发展,对异型件的质量、性能和精度等方面提出了更高的要求。在这样的背景下,邯郸市烁燊紧固件有限…

C++设计模式之行为型模式:解释器模式(Interpreter) - 详解

C++设计模式之行为型模式:解释器模式(Interpreter) - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

免费的小程序模板网站做网站服务公司

一、 搜索算法 深度优先搜索和广度优先搜索是最暴力的图的搜索算法。算法的目标是&#xff0c;给定一张图&#xff0c;一对初始和终止节点&#xff0c;找到两节点之间的节点路径。&#xff08;代码均是找到两个节点之间的路径&#xff09; 广度优先搜索是一层一层搜索&#xf…

中国最大网站建设商网站生成器怎么做

python绑定项目 官方未提供python的封装绑定&#xff0c;直接调用执行文件 https://github.com/stlukey/whispercpp.py提供了源码和Cpython结合的绑定 https://github.com/zhujun1980/whispercpp_py提供了ctype方式的绑定&#xff0c;需要先make libwhisper.so Pybind11 bi…

dede视频网站宣城市住房和城乡建设局网站首页

关注公号【逆向通信猿】更精彩!!! 1. 构造编码器对象 采用MATLAB内置的comm.LDPCEncoder构造编码器对象,其中使用默认的校验矩阵,信息位长32400比特,码长64800比特,该校验矩阵中除第一行中1的个数为6个外,其余行中1的个数均为7;前12960列中1的个数为8,后32400列构成…

如何备份一个网站广西住建局

1. C/C++ IDE 安装Clion Nova和VsCode 2. 编译器 2.1 g++ 当程序比较小时,安装g++编译器进行编译,常用命令如下: // 安装g++ sudo apt-get install g++ // 默认生成a.out的可执行文件 g++ main.cpp // 生成其他名字的可执行文件 g++ main.cpp -o exe_name2.2 cmake 当…

网站开发一次性费用网站建设公司发展方向及趋势

2020年9月10日&#xff0c;亚马逊通技术服务&#xff08;北京&#xff09;有限公司&#xff08;AWS中国&#xff09;与毕马威企业咨询&#xff08;中国&#xff09;有限公司&#xff08;毕马威中国&#xff09;宣布已签署战略合作协议。 双方将充分利用各自的全球品牌影响力和资…

深入解析:PostgreSQL向量检索:pgvector入门指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网贷之家网站建设你访问的网站正在建设

以上问题在编译器中出现可以在编译器中最上面加入&#xff1a; #define_CRT_SECURE_NO_WARNINGS 或者将scanf修改为scanf_s 一定要在最上端&#xff01;&#xff01;&#xff01;最上端&#xff01;&#xff01;&#xff01;最上端加入&#xff01;&#xff01;&#xff01; 虽…

Allow or block media autoplay in Firefox

https://support.mozilla.org/en-US/kb/block-autoplay

寺庙网站开发文案wordpress免费主题插件下载

前文&#xff1a;最近跟着DataWhale组队学习这一期“Sora原理与技术实战”&#xff0c;本篇博客主要是基于DataWhale成员、厦门大学平潭研究院杨知铮研究员分享的Sora技术原理详解课件内容以及参考网上一些博客资料整理而来&#xff08;详见文末参考文献&#xff09;&#xff0…

[WC2018] 即时战略

[WC2018] 即时战略分享一下全局平衡二叉树的做法。 先讲下部分分。 \(n\le 100,T\le 10000\) 从 \(1\) 开始 DFS,对于当前 \(u\),枚举点 \(v\),如果 \(\text{explore}(u,v)\) 不为 \(fa_u\),则 \(v\) 为 \(u\) 子结…

商城网站源码大全微网站建站

怎么解决java导出excel时文件名乱码发布时间&#xff1a;2020-06-19 16:59:00来源&#xff1a;亿速云阅读&#xff1a;137作者&#xff1a;元一java解决导出Excel时文件名乱码的方法示例&#xff1a;String agent request.getHeader("USER-AGENT").toLowerCase();re…

实用指南:Unity学习之C#的反射机制

实用指南:Unity学习之C#的反射机制pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco…

电子政务网站建设参考文献wdcp 网站打不开

一金融机构在近期发生了一起数据泄露事件。 经过调查&#xff0c;发现是由于一名员工将包含客户敏感信息的文件通过电子邮件发送给了未经授权的第三方。 这一事件导致客户数据泄露&#xff0c;给该机构带来了严重的声誉损失和信任危机。 这一案例凸显了数据防泄漏系统的重要性…

网站开发 数据库深圳制作网站

1、背景介绍 重装win10系统&#xff0c;重装Python。在坑出现之前&#xff0c;已经完成了Python的安装&#xff08;D盘&#xff09;&#xff0c;并且在系统中添加了环境变量。由于平时需要用到Python2.7和Python3.6&#xff0c;这里将对应的解释器分别改名为Python2和Python3。…

HDF5文件 ——之三

H5G、H5L、H5O 是 HDF5 C API 的分组接口,在 HDF.PInvoke.NETStandard(C# 的 HDF5 封装包)里,它们分别代表 HDF5 底层 对象层(Object layer)、组层(Group layer) 和 链接层(Link layer) 的操作模块。🧱 一…