![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心
文章平均质量分 57
宋紫恒
这个作者很懒,什么都没留下…
展开
-
2697: 特技飞行
贪心。 其实只需要考虑每个活动执行两次。 显然大的放首尾。 #include #include using namespace std; int c[100000]; int main() { int n,k,ans=0; cin>>n>>k; for(int i=1;i<=k;i++) cin>>c[i]; sort(c+1,c+k+1);原创 2013-12-07 15:33:40 · 733 阅读 · 0 评论 -
Wikioi 1258 & Vijos 1150 关路灯
一道经典的DP。。。。。 比较详细的DP题解抄下来了=。= 分析:上次我是DFS+剪枝AC的,但是教材说这题的正解是DP,所以我就思考了一下DP的思路,现在说一下思路吧:老张每次只有两种决策,关掉当前最左边没有关掉的灯或关掉最右边没有关掉的灯,也就是说老张关灯的状态一定是一条直线(“直线”这个词这个可能不太好理解),我举个例子吧: 比如当前的街道上有n盏路灯,用0表示当前路灯开着,1表示当前原创 2014-02-02 13:09:39 · 752 阅读 · 0 评论 -
Uva 1511 Soju
题目大意:已知两个点集,从每个点集中各选出一个点,是的原创 2014-08-26 22:21:48 · 457 阅读 · 0 评论 -
Vijos P1741 观光公交
NOIP 2011 day2 观光公交 问题描述 风景迷人的小城 Y 市,拥有n 个美丽的景点。由于慕名而来的游客越来越多,Y 市特 意安排了一辆观光公交车,为游客提供更便捷的交通服务。观光公交车在第0 分钟出现在1 号景点,随后依次前往2、3、4……n 号景点。从第i 号景点开到第i+1 号景点需要Di 分钟。 任意时刻,公交车只能往前开,或在景点处等待。转载 2014-03-08 23:30:09 · 1211 阅读 · 1 评论 -
Vijos P1615 旅行
很好的一道贪心题目。。。 /* 考虑相邻的三个数a,b,c(b>a>c) 因为消耗的体力是差的绝对值,所以 考虑要修改b,此时应该把b修改成a 体力是b-a+c-a若修改成c的话 体力是b-c+a-c由不等式可以得到,这个时候应该 修改成较高的那一个,对于山谷,同理可得。 */ #include #include using namespace std; int a[10原创 2014-02-20 15:50:25 · 537 阅读 · 0 评论 -
Vijos 1471 教主的游乐场
首先仔细观察发现一些性质 比如最多向左跳一次,而且必须第一次就跳。 这样只要每次让跳到的新的i+a[i]尽量的大就可以了。(60分做法) 把握住让i+a[i]尽量大,考虑将每一个装置的可以向后跳到的区间按照右端点从小到大排序(因为左边随便跳),倒序枚举,从问题的最后一步向前推,首先确定一个区间的右端点j,使得j在能用k步跳出的区间的最左端,若当前区间右端点>j,显然ans=k,同时我们要记录原创 2014-03-02 17:12:19 · 674 阅读 · 0 评论 -
Vijos P1763 Wormhole
贪心题目。 显然可以发现一个性质。。。 接下来就是二分判断。。 首先二分一个最大路径,然后枚举虫洞的位置,考虑冲突时决策的调整。 先将虫洞的位置设在第一个到1距离>mid的点,然后继续向后扫描, 发现一个点j到i的距离也大于mid,这样就将j-1设成虫洞,然后看后面的点到j-1的距离是否符合要求。 这样做一定是最优的。(因为要想满足全部条件,首先局部必须满足,否则就无法满足全部条件,因原创 2014-03-02 11:37:30 · 563 阅读 · 0 评论 -
Vijos 1513 紧急救援
经典贪心 先按h小到大排 然后搞个极大堆 把所有伤员的t一个一个加进堆中 如果 堆总和+现在伤员的t 否则如果 现在伤员的t 最后堆元素数就是答案了 #include #include #include using namespace std; struct ntype { int h,t; }; ntype a[50010]; p原创 2014-02-05 21:19:22 · 713 阅读 · 0 评论 -
Vijos P1055 奶牛浴场
详见(《用极大化思想解决最大子矩阵问题》论文)(这算个毛。。。。) #include #include using namespace std; struct newtype {int x,y;}; newtype a[6000]; bool cmp(const newtype &p,const newtype &q) {return(p.x<q.x);} int main() {原创 2014-01-28 19:42:17 · 805 阅读 · 0 评论 -
Uva 10714
/* Name: Copyright: Author: Date: 17/08/14 22:13 Description: 注意到蚂蚁碰撞后跟碰撞前其实是相当于直接穿过去,对结果并没有产生影响,只是蚂蚁的编号有所变化,所以忽略碰撞即可。 */ #include #include using namespace std; int main() { int casenu原创 2014-08-17 22:11:36 · 449 阅读 · 0 评论