摘要: 题意:在一条线段上选出尽量少的点,使得和所有给出的n个点距离不超过D。分别计算出每个点在线段的满足条件的区间,然后就转化成了区间选点的问题了,按照右端点排序,相同时按照左端点排序,按照之前的排序一定保证了包含这个点的区间是连续的。贪心,每次选右边的端点,维护一个当前选择点的位置,每遇到区间就判断一下... 阅读全文
posted @ 2015-08-05 23:51 陈瑞宇 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 因为每增加一个订单,时间是会增加的,所以先按截止时间d排序,这样的话无论是删除一个订单,或者增加订单,都不会影响已经选好的订单。然后维护一个已经选好的订单的大根堆(优先队列),如果当前无法选择的话,那么尝试和之前花费时间最长的交换。如果qiusing namespace std;const int ... 阅读全文
posted @ 2015-08-05 23:42 陈瑞宇 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 如果直接模拟水向周围流会TLE,因为某些个结点被重复扩展了多次,科学做法是topo排序,每次只把入度为0的点放入队列,这样就严格保证了每个结点只被扩展一次。#includeusing namespace std;#define eps 1e-9#define bug(x) cout son[maxn... 阅读全文
posted @ 2015-08-05 09:45 陈瑞宇 阅读(341) 评论(0) 推荐(0) 编辑