Greedy
基本思想
局部最优叠加-》整体最优
区间贪心
区间不相交问题
问题描述
给出N个开区间(x,y),从中尽可能多得选取开区间,使得这些开区间两两没有交集。
做法
总是先选择左端点较大的区间。
代码实现
#include
#include
using namespace std;
struct Node
{
int x, y;
}Intevals[100];
bool cmp(Node a, Node b)
{
if(a.x != b.x) return a.x > b.x;
else return a.x < b.x;
}
int main()
{
int n;
scanf("%d", &n);
for(int i = 0; i
区间选点问题
问题描述
给出N个闭区间[x,y],求最少需要确定多少个点,才能使每个区间中最少存在一个点。
做法
修改区间不相交问题的代码:
'Intervals[i].y <= X' -> 'Intervals[i].y < X'