赞
踩
这几周通过课上的学习和课下的训练,总结一下对贪心算法问题的分析和使
用。
(1)先读懂题,英语阅读理解max,搞清输入输出的具体要求;
(2)模拟,用最基本的的思路思考整个问题;
(3)优化算法:用算法的思想简化优化;
(4)多角度灵活思考:正难反易、复杂问题=简单问题+限定条件;
(5)参考经典例题,回归经典例题;
(6)一些数学归纳方法也很重要;
1.万能头文件:
怎么省事怎么来
(1)#include <bits/stdc++.h>
(2)
#include
#include <string.h>
#include <stdio.h>
#include
#include
1.博弈问题,两种最优
题意:学生给学生会主席提出n个提案,筛选通过p个,这P个提案主席可接受k个拒绝p-k个。每个提案都有相应的“劳累值”和“拒绝后的领导不满意度”。
学生:优先选择劳累度最大的提案,劳累度相同选择拒绝后的领导不满意度最高的提案;
主席:优先拒绝拒绝后的领导不满意度最小的提案,拒绝后的领导不满意度最小相同拒绝劳累度最高的提案;
要求:提出p个方案,使让学生会主席劳累值最大,而且他拒绝的p-k个提案使领导不满意度最大。
分析:
现将主席最希望接受的n-p个提案排除,再选出k个对己方最有利的提案,最后选出p-k个主席不得不拒绝的提案。
1)先按照“满意度”升序,“满意度”一致的情况下,按照“劳累值”降序,前n-p个提案主席一定会拒绝,所以我们不选。
2)在已经通过的p个里面,选出一定通过的k个方案。还先按照“劳累值”降序,再让相同“劳累值”下“满意度”降序。
3)剩下的p-k个提案选不满意度最大的,保证主席一定拒绝。
2.区间选择:
题意: xoy平面上,x轴的上方是岛屿,x轴上有雷达,给出岛屿坐标,能够把所有岛检测到而且需要最少数量的雷达,求这个最小数量。
分析:
这个题重在转化,记忆深刻:
1)以每一个岛屿为圆心以输入r为半径做圆,设其与x轴交点为x1,x2(x1<x2),找到区间,在这个范围内必然存在一个雷达可以检测到这个岛;
2)同样的方法找出所有区间,并按照x2升序,若x2相等则x1升序的规则将所有区间排序;
3)定位、前后比较;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。