@贪心算法–OJ Accepted
区间覆盖
题目描述:
给出n个区间的起点和终点,求最少使用其中多少个区间可以将所有区间所在的区域完全覆盖。
输入:第一行输入一个整数n,表示n个区间;
第二行开始输入n行,每行两个整数,表示一个区间范围
输出:满足条件的区间
贪心算法体现:
最优子选择:每次记录的区间都为满足条件下范围最大(即最优)的区间
贪心选择:每次选择的区间覆盖范围最大
【Accepted】 OJ代码
#include<iostream>
#include<algorithm>
#include<Windows.h>
using namespace std;
int n;
struct a
{
int x, y;
}aa[1000];
void sort() //升序,先按照x大小,相等时按照y大小
{
for (int i = 0; i < n-1; i++)
for (int j = i + 1; j < n; j++)
if (aa[i].x > aa[j].x) //按照x升序
{
a b = aa[i]; //交换
aa[i] = aa[j];
aa[j] = b;
}
else if (aa[i].x == aa[j].x) //x相等时按照y大小升序
{
if (aa[i].y > aa[j]