排序哈希
plusplus7
萌系大学生一枚。。。。
展开
-
POJ 2388 Who's in the Middle
给你一列数,问你这些数中间的那个数是多少。 #include #include #include #include using namespace std; int a[10000]; int main() { int n,i; scanf("%d",&n); for (i=0; i<n; i++) scanf("%d"原创 2012-11-17 02:04:11 · 394 阅读 · 0 评论 -
POJ 3007 Organize Your Train part II
这题题意转化一下,给一个字符串,然后从任意位置把这个串分成两个子串(都不是空串),然后两个串a,b得到他们的反串c,d。最后得到8种组合ab,ad,cb,cd,ba,da,bc,cd。问最终可以得到多少种字符串。 用STL神马的会超时,所以用hash。于是写了个静态链表,1Y~ #include #include #include using namespa原创 2013-01-14 11:56:38 · 956 阅读 · 0 评论 -
BNUOJ 14362 Election Time
排序水题。 第一次排序要求把a值前k大的提取出来。 第二次排序要求把这k个里面b值最大的提取出来,并输出序号。 #include #include #include #include using namespace std; struct T { int n; int a; int b; }; T ab[51000]; bool cmp1(T a,T b) {原创 2013-01-13 11:06:06 · 378 阅读 · 0 评论 -
POJ 3087 Shuffle'm Up
这题应该不是搜索,勉强算个hash把。其实是个水模拟。。。 判断-1的方法就是,看是否是得到了以前出现过的字符串,所以用set或者map都可以。 这里用的是set。 #include #include #include #include using namespace std; set st; int n; char *shuffle(char *str2,char *原创 2012-11-24 00:33:03 · 377 阅读 · 0 评论 -
POJ 1840 Eqs
给出一个5元3次方程,输入其5个系数,求它的解的个数 把方程变个形,然后左右对拍。 注意,map需要记录值出现的次数,因为若x1 =a, x2=b ,x3=c ,x4=d,x5=e时,与 x1=b, x2=a ,x3=c ,x4 =d, x5=e 代入方程后都得到值0,那么他们视为不同的解。 #include #include #include #include #include原创 2012-11-21 09:56:13 · 426 阅读 · 0 评论 -
POJ 2503 Babelfish
map水题= = 我发现我有点太依赖map了。。 #include #include #include #include using namespace std; map mp; int main() { int n; char str[50],s1[20],s2[20]; mp.clear(); while (1) { gets原创 2012-11-21 13:28:43 · 370 阅读 · 0 评论 -
POJ 2002 Squares
给你1000个点,让你在这些点中,找到4个点,使其成为一个正方形的顶点。问有多少对这种点。 选两个点,看剩下的两个点是否是给出来的,用hash过之,我用的map,差不多。 #include #include #include #include #include using namespace std; map mp; long long cnt; struct point{原创 2012-11-21 13:10:37 · 384 阅读 · 0 评论 -
POJ 3274 Gold Balance Lineup
抽象一下,此题给你10W个数,让你求一个[i,j],使得a[i]到a[j]的数的二进制每一位上的1出现的次数相等,并使j-i+1最大。 解法: 我们把每个数化为二进制把每一位对应地保存在一个长为k的数组l,l[i][j]的值就表示第i个数的第j位是1还是0。 令p[i][j]表示把前i项的第j位累加起来的值,即p[i][j]=l[i][j]+l[i-1][j]+...原创 2012-11-19 19:46:23 · 688 阅读 · 0 评论 -
POJ 3349 Snowflake Snow Snowflakes
本题有各种各样的hash方法。 本菜用的是“把6个数加起来,mod 100001,如果有冲突就放进链表,方便以后比较”。 注意:mod的数最好是一个质数,为什么呢? 看对话 本菜 2012-11-17 10:11:09 为什么那些hash求key的时候,都要mod一个大质数唉? aikilis大神 2012-11-17 10:11:31 你mod其他数也行 ai原创 2012-11-17 10:20:28 · 454 阅读 · 0 评论 -
POJ 2299 Ultra-QuickSort
求快排的交换次数,也就是逆序数 写个归并排序来算就ok了,注意逆序数会超int #include #include #include #include using namespace std; long long a[500100],b[500100]; long long MergeSort(long long s,long long e) { long lo原创 2012-11-17 02:45:06 · 450 阅读 · 0 评论 -
【博客搬家】本博客已全面停止更新,新博客地址 plusplus7.com
新博客地址:http://www.plusplus7.com原创 2013-11-23 21:24:40 · 1380 阅读 · 0 评论