
ACM_hash
Rotepad
语言表述能力不行,在前面解释的不清,但是在代码中基本上每一个难懂的语句都在旁边有注释进行解释。
因为个人习惯带着代码去看题解,所以习惯把题解切入代码中,所以希望大家不要看到没什么解释就不看了,实际上后面的代码写的很详细
展开
-
Gym - 101466E -Text Editor(hash+二分)
题目:Gym - 101466E题意:两个字符串a,b,一个整数n。要求在b中找前缀,其中该前缀在字符串a中至少出现过n次,求最长前缀是多少题解:对于前缀的长度我们可以二分答案(仔细想想),当前前缀长度mid可以,那么l=mid+1,ans=mid,如果不可以则r=mid-1,从而找到该长度,但是对于每一个mid我都需要找当前mid长度的前缀出现多少次,那么肯定会T,那么这里就需要一个字符...原创 2019-08-12 23:46:27 · 248 阅读 · 0 评论 -
Gym - 101466C - Planet Communcation(向量法+gcd+(hash or map) )
题目:Gym - 101466C题意:给定一个标准点坐标跟其他n-1个点的坐标,问从标准点最少射多少条线能把所有点都通过一遍题解:用向量,找三个数的gcd:,然后除以gcd得到类似一个单位向量的,然后再hash判断当前的hash对应有多少个,本来想用set的,结果不会搞,后来发现map,vector可以直接判重:vector<pair<pair<double,do...原创 2019-08-13 00:13:25 · 287 阅读 · 0 评论 -
POJ - 3349 - Snowflake Snow Snowflakes(hash算法)
题目:POJ-3349题意:在n (n<100000)个雪花中判断是否存在两片完全相同的雪花,每片雪花有6个角,每个角的长度限制为1000000两片雪花相等的条件:雪花6个角的长度按顺序相等(这个顺序即可以是顺时针的也可以是逆时针的)题解:这里采用的累加除余求hash的方法。注意一下,这里是可以逆时针转,也可以顺时针转的,这里学到了,不过数组得以0为下标起点代码:...原创 2019-09-18 08:34:13 · 414 阅读 · 0 评论 -
POJ - 3274 - Gold Balanced Lineup (hash)
题解:POJ - 3274 题意:题解:手推公式:num[i][1]+...+num[j][1]=num[i][2]+....+num[j][2]=num[i][k]+...+num[j][k];①num[i][1]+...+num[j][1]=num[i][k]+...+num[j][k];②sum[i][k]=sum[i-1][k]+num[i][k];①,②=...原创 2019-09-18 09:07:01 · 198 阅读 · 0 评论 -
POJ - 2002 - Squares (hash算法)
题目:poj-2002题意:给一些点的坐标,问最多可以构成多少个正方形。直接四个点四个点地枚举肯定超时的,不可取。普遍的做法是:先枚举两个点,通过数学公式得到另外2个点,使得这四个点能够成正方形。然后检查散点集中是否存在计算出来的那两个点,若存在,说明有一个正方形。但这种做法会使同一个正方形按照不同的顺序被枚举了四次,因此最后的结果要除以4.题解:已知: (x1,y1) ...原创 2019-09-18 09:24:58 · 360 阅读 · 0 评论 -
POJ - 2503 - Babelfish(hash算法水题)
题目:POJ-2503题意:字典中的单词对于不同的类别,求给定的单词的类别题解:直接hash,但是输入真的很毒瘤。。。。代码:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<string>#includ...原创 2019-09-18 09:32:32 · 729 阅读 · 0 评论