| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 贪心算法题解即相应的证明 -> 正文阅读 |
|
[数据结构与算法]贪心算法题解即相应的证明 |
905.区间选点 解法:按终点排序,每次选尽可能靠右的,某项不符合,则需要选它。 908.最大不相交区间数量 解法:按终点排序,扫描所有线段,能选就选。 906.区间分组 输出最小组数。 解法:按起点从小到大排序,然后能放就放,没地方放就准备一个新组。 907.区间覆盖 解法:按起点从小到大,每次在可选的范围中选延伸最远的即可。 148.合并果子 经典问题,首先对于任意一种合并形态,都可以理解为一个二叉树的合并过程,且最小的两个点必定为最深点,且可以为兄弟。通过反证法:如果不为最深即可替换,必定更优,如果不为兄弟必可替换,必定答案不变。故最优答案的第一步必定为最小的两个合并,接下来变为N-1个合并,注意这里不能直接继续推这个结论。对于N-1个合并的任意一种方案,设代价为F(N-1),即F(N)的对应方案为F(n-1)+cost,任意一种方案都可以转换为这样,都加上了cost,即要让F(N)最小,即要让F(n-1)最小,重复这个问题即可。 913.排队打水 解法:把时间按从低到高排序,依次处理即可。 104.货仓选址 解法:中位数即可,如果为奇数,则为中间,如果为偶数,则中间两个之间都可以。 125.耍杂技的牛 解法:按w[i]+s[i]从小到大排序即可。 1080 [NOIP2012 提高组] 国王游戏 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 11:26:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |