排序+贪心
PoemK
这个作者很懒,什么都没留下…
展开
-
UVA 1615 Highway 区间选点 经典贪心 (SEERC 2005)
一定要根据右端点从小到大排序,因为为了保证一次扫过满足每个区间,那么被包含区间应该排在包含它的区间前面。#include#include#include#include#include#include#includeusing namespace std;#define all(x) (x).begin(), (x).end()#define for0(a, n)原创 2016-04-15 00:25:49 · 436 阅读 · 0 评论 -
NYOJ 题目12 喷水装置(二) 最小区间覆盖问题
先对喷水器进行筛选,把不合格的去掉,然后将喷水器覆盖问题转化为 最小区间覆盖问题,按照区间左端点从小到大排序,之后进行贪心。喷水装置(二)时间限制:3000 ms | 内存限制:65535 KB难度:4描述有一块草坪,横向长w,纵向长为h,在它的橫向中心线上不同位置处装有n(n<=10000)个点状的喷水装置,每个喷水原创 2016-03-25 17:23:39 · 628 阅读 · 0 评论 -
NYOJ 题目6 喷水装置(一) 水贪心
半径1或者以下的喷水装置毫无用处,因为题目是要求在一个矩形的两条长为20米的边的中位线上装喷水器,而且要求全部覆盖,且宽为2米。按半径大小从大到小排序,之后进行贪心。喷水装置(一)时间限制:3000 ms | 内存限制:65535 KB难度:3描述现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个原创 2016-03-25 16:55:08 · 474 阅读 · 0 评论 -
uva 11134 传说中的车 从简单情形入手
从简单情形入手:考虑只有一列,有n行,现在每个棋子的区域就是一个[le,ri],那么问题就是在n个线段区域内的每个区域选一个点,使得1,2,3,...,n每个格子都被选中恰好一次。不拿发现解法就是贪心,再作进一步考虑:现在有n个区间,n行,n列,所有列都被选中了,现在考虑怎样使每一行都被选中且仅选中一次,无论n个区间是怎样选择使得每一列都被选中,每一区间都必须选原创 2016-02-28 15:13:55 · 1043 阅读 · 0 评论 -
CodeForces 632C The Smallest String Concatenation 排序
解法很简单,排序+输出。bool cmp(string c,string d){ x=c+d; y=d+c; return x<y;}排序方法:#includeusing namespace std;#define all(x) (x).begin(), (x).end()#define for0(a, n) for (int (原创 2016-04-20 23:20:19 · 482 阅读 · 0 评论 -
hdu 4070 Phage War “动中找定” 贪心
Phage WarTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1148 Accepted Submission(s): 629Problem DescriptionPhage War is a li原创 2015-08-27 20:11:20 · 573 阅读 · 0 评论 -
uva 11729 突击战 Commando War 思维
https://uva.onlinejudge.org/external/117/11729.pdf和这个题目实质一样,动中找定:http://blog.csdn.net/yskyskyer123/article/details/48034075要知道,最好的方式肯定是你在不停的下命令,所以你下命令的结束时间就是一定的,那么把执行时间最短的放在最后,依此类推。原创 2015-09-01 11:54:35 · 571 阅读 · 0 评论 -
hdu 4197 Popping Balloons 环状区间选点
题意:给出n个球的圆心坐标和半径大小,从原点扔飞镖,求最小飞镖数使刺破所有球。(飞镖是射线,球可以穿透,没有球包含原点)解法:n个球对应n个角度区间,然后这是一个(-PI,PI]内的环状区间选点问题,要求选最少的点,使之覆盖所有区间。利用2tan()求出圆心的辐角,然后区间的左右端点是圆心的辐角-+两切线夹角的半角(asin()可求,(0,PI/2])环状问题,原创 2016-07-12 08:01:04 · 505 阅读 · 0 评论