贪心
magnte
这个作者很懒,什么都没留下…
展开
-
区间分组
今年暑假不AC 区间分组指使得区间内不交叉的线段最多的分组方法。 做法:用贪心的思维,将各区间按结束时间从小到大排序,只要不与前一个相交即可加入分组。 代码: #include<bits/stdc++.h> using namespace std; const int N = 110; struct stu { int l,r; } a[N]; bool cmp(stu q,stu e) { return q.r < e.r; } int main() {原创 2021-08-24 09:05:44 · 321 阅读 · 0 评论 -
几类区间覆盖
区间覆盖:给定区间,和n的线段,要求选择最少的线段使给定区间完全覆盖。 做法:贪心,先根据左端点从小到大排序,先确定一个答案区间,然后在没有选择的线段中选择一个左端点在答案区间中,右端点最大的加入答案区间。 poj-2376 模板题,但这题是整数覆盖,所以有一个地方不同,具体见代码。 #include<iostream> #include<algorithm> using namespace std; const int N = 25010; int n,t; struc原创 2021-08-23 11:05:58 · 410 阅读 · 0 评论 -
poj-1328(区间选点)
题目 题目的意思就是给你一个坐标轴,雷达在x轴上,岛屿分布在x轴上方,给你岛屿的坐标以及雷达的最大扫描面积,求最少用几个雷达可以将所有的岛屿覆盖! 以每个点为圆形,d为半径做圆,圆与x轴的两个交点分出一个区间,雷达在区间内可以辐射到该点,转化为每个区间内至少有一个雷达的区间选点问题。 利用贪心的思想,将区间以右端点排序,从小到大循环,如果该区间没有雷达则在区间右端点安放雷达。 证明可参考csdn #include<iostream> #include<cmath> #incl原创 2021-08-20 10:01:41 · 132 阅读 · 0 评论