随笔分类 -  hash查找

摘要:题目:http://acm.timus.ru/problem.aspx?space=1&num=1613题意:给出N 个数,然后给出询问区间,并给出询问的数,问这个数是不是存在hash还是很好想的,然后如果再能想到优化,就没问题了View Code 1 typedef long long ll; 2 const int N = 100008; 3 const int mod = 100007; 4 struct node 5 { 6 int data; 7 int id; 8 }; 9 vector<node>mark[N];10 int a[N];11 int main( 阅读全文
posted @ 2012-09-08 10:32 AC_Girl 阅读(187) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=3274感觉这都题目好无语,很早就开始看题目,可是看不懂就放下了,后来又看,还是没看懂又放下了。这样来来回回的以至于昨天做,还是看的discuss里面的才知道了怎么回事。这个就是给你n头牛和k个种类,然后会给你n个数字,这n个数字当你把他们转化为2进制数时,他们的数码个数不会超过给的种类个数,比如说样例给的种类 3 ,然后n个数里最大的那个是7,2进制数为111.然后让你找的就是连续的第i头和第j头中,满足这些牛的k种特征个数是一样的这个也许看了还是不大明白,看看下面的转化方式吧111 111 000110 22... 阅读全文
posted @ 2012-03-16 09:20 AC_Girl 阅读(172) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=3349题目的意思就是给你一堆雪人的胳膊长,每个雪人都有六个胳膊,他们给出的顺序是按顺时针,或是逆时针给出的,但是六个里以哪个开头是不确定的。如果里面有任何两个相同,则就输出 “Twin snowflakes found.” 否则输出“No two snowflakes are alike.”。一开始我还以为是让找有多少个snowflakes,我想数据那么大,再怎么弄,也是TLE啊。原来是弄错题意了。悲剧。题意弄懂了,可是还是TLE,去看别人的解题报告,真厉害,这也能想到,而且代码一点不复杂,不过感觉还是很慢,3000多MS呢,呵呵,不过思路 阅读全文
posted @ 2012-03-16 08:57 AC_Girl 阅读(220) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=2002用二维hash数组对输入的点进行标记。对原数组进行排序,然后从前到后任选俩个点,作为一个正方形的边,然后再根据关系求出另外两个点,在hash数组里看是否进行了标记,如果有,这找到了一个正方形。 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 #include<stdlib.h> 5 #include<algorithm> 6 using namespace std; 7 #define N 201 阅读全文
posted @ 2012-03-09 19:03 AC_Girl 阅读(142) 评论(0) 推荐(0)