本题的关键是从可选择方法中选择哪一类最优化 答案是结束时间最早的一类 源代码 #include<iostream>#include<algorithm>#include<cstdio>#define maxn 100100using namespace std;struct w{ int endd, ...
分类:
其他好文 时间:
2020-05-29 13:27:58
阅读次数:
55
问题主题:区间调度问题 问题描述: 有n项工作,每项工作分别在si开始,ti结束。对每项工作,你都可以选择参加或不参加,但选择了参加某项工作就必须至始至终参加全程参与,即参与工作的时间段不能有重叠(即使开始的时间和结束的时间重叠都不行)。 限制条件: 1<=n<=100000 1<=si<=ti,= ...
分类:
其他好文 时间:
2020-02-01 10:18:58
阅读次数:
136
1,看起来就难里难气的。 2,关键是思想吧,在可选的工作中每次都选择结束时间最早的工作。 3,对了还要再独立写一遍才算。 #include<utility> #include<algorithm> using namespace std; int n,S[1005],T[1005]; pair<in ...
分类:
其他好文 时间:
2019-12-31 14:36:26
阅读次数:
89
[TOC] 题目地址 "hdu2037" 题干 代码和解释 本题使用贪心。有三种贪心策略:开始时间最早,结束时间最早,用时最短。第二种是正确的策略,因为结束得越早,后面就可以有越多节目被看。 我使用了优先队列进行排序,以结束时间数值小的为高优先级。 c++代码如下: 参考 贪心法思想: 走一步看一步 ...
分类:
其他好文 时间:
2019-09-03 22:31:25
阅读次数:
114
当我们考虑一个信息问题,特别是一个贪心问题的时候,其实就是通过题设的少量条件来寻找规律从而破题。 比如下面这道题,就是通过分析已知数据的可能组合来寻找正确解法。 区间调度问题 Problem 有n项工作,每项工作分别在si开始,ti结束。对每项工作,你都可以选择参加或不参加,但选择了参加某项工作就必 ...
分类:
其他好文 时间:
2019-07-03 00:46:28
阅读次数:
105
题目: 有n项工作,每项工作分别在si时间开始,在ti时间结束。对于每项工作,你都可以选择参与与否。如果选择了参与,那么自始至终都必须全程参与。此外,参与工作的时间段不能重复(即使是开始的瞬间和结束的瞬间的重叠也是不允许的)。你的目标是参与尽可能多的工作,那么最多能参与多少项工作呢? 1≤n≤100 ...
分类:
编程语言 时间:
2019-02-08 19:50:37
阅读次数:
178
Meetings 系列一 Meetings 系列一 Time Limit: 2000/1000ms (Java/Others) Time Limit: 2000/1000ms (Java/Others) Problem Description: 多年之后的广财ACM编协如日中天,下系多个部门,且编协 ...
分类:
其他好文 时间:
2018-05-09 14:49:04
阅读次数:
160
一、动态规划算法的定义: 为了着手开发一个动态规划算法,我们需要一组从初始问题导出的满足某些基本性质的子问题。 二、带权区间调度问题: 我们有N个需求,标记为1,2,3,......,N,每个需求指定一个开始时间si,结束时间fi ,每个需求i有一个权值vi,如果两个需求不重叠,那么他们是相容的。 ...
分类:
其他好文 时间:
2018-03-03 18:21:12
阅读次数:
196
一、贪心算法 定义:一个算法是贪心算法,如果它是通过一些小的步骤来一个求解,并且在每一步根据局部情况选择一个决定,使得某些主要的指标得到优化。 二、区间调度问题 1. 问题:我们有一组需求{1,2,3,......,N},第i个需求与一个开始时间s(i),结束时间f(i)相对应。如果没有两个需求在时 ...
分类:
编程语言 时间:
2018-03-03 12:28:24
阅读次数:
295
一. 简答题的基本内容(30分) 记号O、W、 的意义; 分治法的基本步骤; 1、将原问题分解成k个规模较小的子问题,这些子问题相互独立且与原问题的形式相同。 2、递归地求解这些子问题,当问题足够小时直接求解。 3、把子问题的解进行合并。 动态规划算法的两个基本要素; 1、具有最优子结构 2、子问题 ...
分类:
编程语言 时间:
2018-01-02 23:29:18
阅读次数:
260