最近审题老是一错再错,Orz题目中说求一个Hamming值总和最小的字符串,而不是从所给字符中找一个最小的这样的话,我们逐列处理,所求字符串当前位置的字符应该是该列中出现次数最多其次ASCII值最小的代码有点挫了,if语句太多了 1 //#define LOCAL 2 #include 3 #in....
分类:
其他好文 时间:
2014-08-28 19:30:05
阅读次数:
234
第一题:题目大意:和day1一样,给出m个小于n的数,求出出现次数大于mdiv 2的数。数据范围加大,1<=n<=2^31 1<=m<=3000000解题过程:1.一开始写了个数组模拟链表hash,按mod指数p分类,用一个数组记录每一类的个数,如果每一类个数全部都小于等于一半,那么无解,如果有一个...
分类:
其他好文 时间:
2014-08-22 22:26:49
阅读次数:
228
【问题】
题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。
【分析】
解法1:
先排序,排序后数组中间的那个元素就是要找的那个数字。时间复杂度O(n*logn)。
解法2:
既要缩小总的时间复杂度,那么可以用查找时间复杂度为O(1)的hash表,即以空间换时间。哈希表的键值(Key)为数组中的数字,值(Value)为该数字对应的次数。然后直接遍历整个hash表,...
分类:
其他好文 时间:
2014-08-22 21:13:09
阅读次数:
265
后缀数组搞一下就可以了喵~其实这道题的第一个想法是 SAM ,建完后缀自动机后拓扑排序跑一遍统计下每个子串的出现次数就 O(N) 就妥妥过掉了后缀树也是 O(N) 的,统计一下每个节点对应的子树中有多少个叶子节点即可可是看了一下数据范围,欸呦你妹啊,字符数1000000+1 是什么心态啊!居然把我的...
分类:
其他好文 时间:
2014-08-22 19:35:39
阅读次数:
253
第一题:题目大意:给出m个小于n的数,求出出现次数大于mdiv 2的数。1pre),其次这个分数不能比当前剩下待拆分的值(a/b)大,即 1/x x>b/a最后如果当前还能拆dep个分数,由于这个分数必定比剩下的那些要大,所以dep/x> a/b --> x < (b*dep)/a;3.第一次写的....
分类:
其他好文 时间:
2014-08-22 19:30:49
阅读次数:
214
UVA 11855 - Buzzwords
题目链接
题意:给定一个文本,求出长度为1, 2, 3, 4, 5....的字符串最大出现次数,一直找到出现次数不大于1为止
思路:后缀数组,把空格去掉得到一个字符串,构造height数组,然后就是后缀数组的简单应用了,找连续一段最长的段并且都大于当前正在查找的长度
代码:
#include
#include
#incl...
分类:
其他好文 时间:
2014-08-22 16:23:29
阅读次数:
196
题意:找出现次数不同于其他数的数。
超时了一次,后来知道了位运算。。。长见识了
0^0 =0
0^1=1
1^0=1
1^1=0
0^1^1 = 0
可以发现 任何数异或0还是他本身。
一个数异或另一个数偶数次还是他本身。
代码(位运算都600+ms):
#include
#include
int main()
{
int a, b...
分类:
其他好文 时间:
2014-08-21 11:34:14
阅读次数:
173
sum[i][j] 表示从第1到第i头cow属性j的出现次数
所以题目要求等价为:
求满足
sum[i][0]-sum[j][0]=sum[i][1]-sum[j][1]=.....=sum[i][k-1]-sum[j][k-1] (j
中最大的i-j
将上式变换可得到
sum[i][1]-sum[i][0] = sum[j][1]-sum[j][0]
sum[i][2]-sum...
分类:
其他好文 时间:
2014-08-19 16:38:24
阅读次数:
247
UVA 12206 - Stammering Aliens
题目链接
题意:给定一个序列,求出出现次数大于m,长度最长的子串的最大下标
思路:后缀数组,搞出height数组后,利用二分去查找即可
这题之前还写过hash的写法也能过,不过写后缀数组的时候,犯了一个傻逼错误,把none输出成node还一直找不到。。。这是刷题来第二次碰到这种逗比错误了,还是得注意。。
代码...
分类:
其他好文 时间:
2014-08-18 23:38:03
阅读次数:
282
给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。输入格式: 输入在第1行中给出正整数N(int main(){ int n,j; int num[10]={0}; scanf("%d"...
分类:
其他好文 时间:
2014-08-17 22:35:03
阅读次数:
241