
poj
xykaiku
PPPPPPPPPPPPPPPPPPPPPPPPP
展开
-
POJ 2376 贪心
贪心l为第一关键字,r为第二关键字排序每次选择当前l合法的有最远的r的区间很多,很多注意事项 1. 区间不需要覆盖,…, r] [r+1, … 就合法 2. 数据给的最远r可能大于T 3. 数据给的最近l可能大于1 4. 可能存在[1, 1] [1, 2] [1, 3] …. 这种情况,所以不要直接先把第一个区间取了,特判到死第一版代码又臭又长,我也不知道为什么过这么久没写代码会用while原创 2017-03-26 11:53:13 · 229 阅读 · 0 评论 -
POJ 1328 3190 贪心 优先队列
微软题目没思路。。。。再推推吧。。。二维的区间覆盖,雷达固定在x轴上,问最少雷达数观测到所有小岛最开始想着直接按照x轴或者y轴排序贪心,但是发现并不能,很容易就能找到反例,单单按照一个轴的方向排序并不能满足最优性。考虑把一个点转化为一个区间,这个区间代表需要覆盖到这个点雷达可放置区间其实和2376差不多,类似这种某个东西覆盖一些点的题目都是把数据转化为轴上可行的区间再操作。转化为区间之后,将区间按l原创 2017-04-03 20:59:01 · 262 阅读 · 0 评论 -
POJ 3253 贪心 优先队列
POJ 3253 贪心 优先队列每次取优先队列当中最短的两根合并起来计算代价直到优先队列中只有一个完整的fence优先队列在O(logN)的复杂度下维护一组按某个优先权为序的元素 A priority queue is a container adaptor that provides constant time lookup of the largest (by default) elemen原创 2017-03-17 09:43:32 · 344 阅读 · 0 评论 -
POJ 3617 3069 贪心
POJ 3617 3069 贪心两个都是贪心对于3617,每次比较从左看以及从右看的字典序,字典序小的那边直接弹出输出 然后需要注意的是输出格式每行80个字符#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#define Maxn 2000using namespace std;int N原创 2017-03-17 08:38:13 · 365 阅读 · 0 评论 -
POJ 2718 贪心
做了一上午的2718,差点爆炸做法一: 用到了STL中的next_permutation产生所有的全排列 要使生成的两个数差最小,两个数的位数差肯定小于等于1,产生一个排列之后在中间分开就可以什么时候详细写一下STL里面产生全排列的写法/* next_permutation*/#include <cstdio>#include <cstdlib>#include <iostrea原创 2017-03-25 13:10:23 · 354 阅读 · 0 评论 -
POJ 1979 3669 DFS BFS
一道DFS一道BFS 1979: DFS无脑扫就可以了#include <cstdio>#include <cstdlib>#include <iostream>#include <cstring>#define MaxW 20using namespace std;int W, H, ans;char input;bool sign[MaxW + 10][MaxW + 10];原创 2017-03-23 15:08:05 · 226 阅读 · 0 评论 -
POJ 2393 贪心
贪心每个星期可以制作无限数量的酸奶,每个星期有一个客户酸奶需求量Yi和单位酸奶制作花费Ci,酸奶可以以每个星期每单位S的花费无限储存。问如何花费最少满足所有客户需求量。第i个星期若采用前面第j个星期时制作的酸奶,需满足式子 Ci * Yi > Cj * Yi + S * Yi * (i - j) ↓ Ci - Si > Cj - Sj维护一个nowleast为当前星期前Cx原创 2017-04-04 11:57:13 · 329 阅读 · 0 评论 -
POJ 1017 贪心
装箱问题究极特判,直接看代码#include <cstdio>#include <cstdlib>#include <iostream>#include <cmath>using namespace std;int s1, s2, s3, s4, s5, s6;int main() { while(scanf("%d%d%d%d%d%d", &s1, &s2, &s3, &s4, &原创 2017-04-05 12:06:11 · 245 阅读 · 0 评论