IT民工
加油!
摘要: 线段树求一个点所处区间的最大连续长度,用lsum记录区间的左连续长度,rsum记录区间的右连续长度,查询时判断p点处于左子树还是右子树,然后计算左子树的右连续长度+右子树的左连续长度的和。#include<stdio.h>#include<string.h>#include<stdlib.h>#include<algorithm>using namespace std;#define lson l, mid, rt << 1#define rson mid + 1, r, rt << 1 | 1const int MAXN 阅读全文
posted @ 2012-08-24 17:19 找回失去的 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 这个题看了题解之后才会写的,每头牛最多有k个属性,用给出数字的对应二进制位表示,0为没有这种属性,1为具有这种属性。要求的是最长的一个牛的序列,使得每种属性出现的次数相同。参考网上的hash函数ret=((ret<<2)+(a[i]>>4))^(a[i]<<10);用sum[i][j]表示前i头牛的第j种属性出现的次数。用c[i][j]存储sum[i][j]-sum[i][0]的值,代表前i头牛第j种属性出现次数与第0种属性出现次数的差值。如果存在i1和i2,使得c[i1][j]=c[i2][j]0<j<k,i1到i2这一段就是符合要求的一个解。 阅读全文
posted @ 2012-08-24 15:27 找回失去的 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 给出n个点,求出用这n个点可构成的正方形的个数。可以枚举两个点,求出正方形的另两个点。然后判断这两个是否存在。我的hash公式写得比较烂,跑了1s多。下面是求正方形剩下两点的公式:已知:(x1,y1)(x2,y2)则:x3=x1+(y1-y2)y3=y1-(x1-x2)x4=x2+(y1-y2)y4=y2-(x1-x2)或x3=x1-(y1-y2)y3=y1+(x1-x2)x4=x2-(y1-y2)y4=y2+(x1-x2)/*Accepted 1724K 1047MS C++ 1713B 2012-08-24 11:46:05*/#include<stdio.h... 阅读全文
posted @ 2012-08-24 11:59 找回失去的 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 判断n朵雪花中,是否有完全一样的雪花。一道比较简单的hash,我们将雪花的六个边的权值加起来,记为sum,将sum相等的雪花归为一类,再在这里面根据题意找完全相同的,在同类中找到一个角相同的,然后判断顺时针或者逆时针的所有角是否一模一样。/*Accepted 3828K 3204MS C++ 1675B 2012-08-24 10:44:15*/#include<stdio.h>#include<stdlib.h>#include<vector>using namespace std;const int prime = 19999;const int MAX 阅读全文
posted @ 2012-08-24 10:55 找回失去的 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 并查集确定昆虫的关系,题意有点BT...用一个数组rel代表与其父节点的关系,为0则代表相同,为1代表不同。如果两者不在一个集合中则合并,在一个集合中则判断种类是否相同,相同则存在同性恋的虫子。/*Accepted 164K 766MS C++ 1224B 2012-08-24 09:28:15*/#include<stdio.h>#include<string.h>#include<stdlib.h>const int MAXN = 1 << 11;int p[MAXN], rel[MAXN];int find_set(int x){ int 阅读全文
posted @ 2012-08-24 09:45 找回失去的 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 进行m次操作,Mxy将包含x的集合移动到y上面,Cx,计算x下面有几个元素。用p[x]表示x的根结点,cnt[x]表示x所在集合的元素个数,top[x]表示x上面有几个元素。每次进行路径压缩时,top[x]都要加上top[p[x]],cnt和p的操作就是并查集的基本操作。最后计算结果是用x所在集合元素的个数-在它之上的个数-它本身。/*Accepted 500K 297MS C++ 1147B 2012-08-24 08:41:18*/#include<stdio.h>#include<string.h>#include<stdlib.h>const int 阅读全文
posted @ 2012-08-24 08:56 找回失去的 阅读(663) 评论(0) 推荐(1) 编辑