摘要: 首先声明,本人不是高手,就是没有成为高手,所以总结自己失败的原因,写下这些。只是想让那些还没成为高手的人吸取一些教训,共同学习。说得不好,欢迎拍砖。说说我理解的高手,不是指某一方面的技术好手,也不是多年经验的编程老手,我衡量的一个标准是对于编程技术上,你在同年人当中,公认是那么几个当中的其一佼佼者。所以,你出来工作几年了,你比我厉害,这没什么好说的;你专研了十几年了,你比我牛B,这是肯定的;你专门搞这个技术,我没有了解过,你比我菜是不可能的。但是大家花同样的时间学,你学得比我好,比我快,这说明起码对于我来说,你是高手。第一步:主动学习关键在于主动,而不是学习,我强调的是态度。首先花同样的时间去 阅读全文
posted @ 2011-04-03 00:47 VRS 阅读(970) 评论(1) 推荐(1) 编辑
摘要: //7983483 vrs 2227 Accepted 1120K 235MS C++ 2852B 2010-12-08 20:02:00//POJ 2227 凹凸坑装水 优先队列(堆)+floodfill(bfs)//黑书中的一道题 先分析边界点,弄为障碍物,把他们放到堆里,然后从最小的开始,进行一次floodfill(木桶原理)//一直循环直到堆为空,每次floodfill是使用队列做一次广搜#includestdio.h#includequeueusing namespace std;#define bool int#define MAXNUM 90005typedef stru 阅读全文
posted @ 2010-12-08 20:50 VRS 阅读(510) 评论(0) 推荐(0) 编辑
摘要: //7977992 vrs 1442 Accepted 516K 125MS C 1930B 2010-12-07 13:26:53//1142 黑盒数字 优先队列(大根堆+小根堆)//这题看了别人的解题报告才弄出来的,感觉这里两个堆操作很巧妙//维护两个优先队列,大根堆,小根堆,大根堆保存当前最小的i-1个数,并把i到u[p]个数放到小跟堆里,那么//小根堆的最小值就是当前状态的第i小元素//注意到一点,c不支持函数的按引用调用 &#includestdio.h#define bool int#define MAXNUM 30005long minqu[MAXNUM];long maxq 阅读全文
posted @ 2010-12-08 20:49 VRS 阅读(638) 评论(0) 推荐(0) 编辑
摘要: //7976667 vrs 3253 Accepted 228K 47MS C 1334B 2010-12-06 23:03:13//3253 锯木板 贪心+堆优先队列//遇到一个问题,变量声明要放在最前面,不然POJ编译不通过#includestdio.h#define bool int#define MAXNUM 20005unsigned int n;unsigned int wood[MAXNUM];void swap(int i,int j){ wood[0]=wood[i]; wood[i]=wood[j]; wood[j]=wood[0];}void Insert(unsi 阅读全文
posted @ 2010-12-08 20:48 VRS 阅读(434) 评论(0) 推荐(0) 编辑
摘要: //2365768 2010-12-06 16:41:01 Accepted 2724 C 280 1332 VRS//2724 模拟消息队列 用堆实现的优先队列//练堆的基础题#includestdio.h#includestring.h#define MAXNUM 60005#define bool inttypedef struct _MESSGAE{ char name[10]; int para; int key;}MESSAGE;MESSAGE process[MAXNUM];void swap(int x,int y){ strcpy(process[0]. 阅读全文
posted @ 2010-12-08 20:47 VRS 阅读(377) 评论(0) 推荐(0) 编辑
摘要: //7968286 vrs 1182 Accepted 548K 219MS C 1078B 2010-12-04 21:33:24//1182 食物链 利用向量偏移的并查集////每个集合都有三类动物,用rank表示,0——同类;1——食物;2——天敌,初始时都以自己为根节点,且rank为0//只需对每一句话,判断x,y是否同一集合内,如果是就判断语句真假,否则就合并集合//根据公式知道x-y=d-1,主要想出几个推导公式://1: rank[x]=(rank[x]+rank[temp])%3 // 这个最好设一两个例子验证一下,由于每次都是两集合的根合并,且只有根更改rank,所以每个x的 阅读全文
posted @ 2010-12-08 20:46 VRS 阅读(498) 评论(0) 推荐(0) 编辑
摘要: //2364907 2010-12-05 00:06:08 Accepted 1268 C 0 416 VRS//1268 Is it a Tree? 并查集//利用并查集,一直合并,直到输入结束//注意几点:1.空树也是树;2.森林不是树;3.重复输入会当成环,也不行;4.结点自身指向自身也算是环#includestdio.h#define bool int #define MAXNUM 32767int father[MAXNUM];int differentTreeNode[MAXNUM];int Find(int x){ if(father[x]==x) retur 阅读全文
posted @ 2010-12-08 20:46 VRS 阅读(218) 评论(0) 推荐(0) 编辑
摘要: //2363500 2010-12-02 21:50:28 Accepted 1789 C 10 392 VRS//1789 SARS隔离 并查集#include<stdio.h>#include<string.h>int setFather[30005];int setCount[30005];int Find(int x){ int root=x; whi... 阅读全文
posted @ 2010-12-04 14:39 VRS 阅读(356) 评论(0) 推荐(0) 编辑
摘要: //7956395 vrs 2524 Accepted 536K 344MS C 1280B 2010-12-02 17:33:55//POJ 2524 学生宗教 并查集基础题#include<stdio.h>unsigned int setFarther[50005];unsigned int setLevel[50005];void MakeSet(unsigned int n){... 阅读全文
posted @ 2010-12-04 14:38 VRS 阅读(304) 评论(0) 推荐(0) 编辑
摘要: //7966044 vrs 3984 Accepted 376K 0MS GCC 2108B 2010-12-04 13:38:57//POJ 3984 第二届顶嵌杯决赛B题//走迷宫 广搜//要用GCC编译,没得用STL。郁闷,只能自己写个队列操作#include<stdio.h>#include<stdlib.h>#include<string.h>#def... 阅读全文
posted @ 2010-12-04 14:36 VRS 阅读(468) 评论(0) 推荐(0) 编辑