Wiki_ki

导航

2012年7月19日 #

POJ2823 Sliding Window

摘要: 首先吐槽题目,害的我交了三次错程序上去,题目里面说的清清楚楚,数是integer,integer,呵呵,我一开始最大最小值定义为32768,-32768,最后交了前三次的结果都是Wrong Answer,后来我觉得实在没有什么地方可以改了,就把最大最小值改成long下的值,直接AC,程序效率相当之低,几乎是踩着线过数据的。 题目意思很清楚,背景故事什么的没细看,总之意思就是给你N个数,以及一个K,现在让你求[0,K-1],[1,K],...,[N-k,N-1]这些区间中的最大最小值。 对于区间问题,我首选的还是线段树,正好上次acm校赛线段树的失利历历在目,所以再写一次线段树很有必要。... 阅读全文

posted @ 2012-07-19 17:53 Wiki_ki 阅读(113) 评论(0) 推荐(0) 编辑

POJ 2299 Ultra-QuickSort

摘要: 题目的意思很明确,就是求逆序对,于是直接在归并排序里加上ans+=mid-i+1求解即可 代码如下:#include <iostream>#define MAXN 500003using namespace std;int N;long long ans;int a[MAXN] , t[MAXN];void merge(int l , int r) { int mid = (l+r) >> 1 , i = l , j = mid+1 , s = l; while (s <= r) { if (j > r || (i <= mid && 阅读全文

posted @ 2012-07-19 13:20 Wiki_ki 阅读(132) 评论(0) 推荐(0) 编辑

POJ 1611 The Suspects

摘要: 题目的意思大致是说,同学之间有时会有一些小团体,现在已知0号同学已经感染了sars,那么跟他平时接触多的同学(团体内的所有人),都将被列为感染者,现在给出学生总数N以及团体总数M以及团体内部成员的具体编号,问总共有多少同学为感染者。 经典的并查集问题,运用并查集判断各个元素所处的集合,将于0号元素所处集合相同的元素累计即可得解,数据范围N<=30000,M<=500,故感觉数据规模不是很大,所以并查集部分并没有加上秩,没有加按秩合并的优化,仅仅加上了路径压缩。 代码如下: #include <iostream>using namespace std;#define MA 阅读全文

posted @ 2012-07-19 10:05 Wiki_ki 阅读(127) 评论(0) 推荐(0) 编辑