- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 poj解题报告——2299
题目本质就是求逆序对,然后用归并排序就可以做了,冒泡也能做,但是超时,O(n^2)的算法相比于O(n*log(n))算法总是要差一点的。 代码如下 #include #include #define MAX 500001 int n,a[MAX],t[MAX]; __int64 sum; void Merge(int l, int m, int r) { int p=
2015-01-11 15:02:59 461
原创 poj解题报告——2388
找中间数么,快排就不错,嗯,对,就是快排 代码如下 #include #include int cmp(const void *a,const void *b) { return *(int *)a-*(int *)b; } void main() { int a[100007],i,n; scanf("%d",&n); for(i=0;
2015-01-10 23:51:34 412
原创 poj解题报告——1936
这题线性扫描一遍不就可以了么。 代码如下 #include #include void main() { int lena,lenb,i,j; char a[100001],b[100001]; while (scanf("%s%s",a,b)!=EOF) { i=j=0; while(b[j])
2015-01-10 23:26:58 456
原创 poj解题报告——3080
题意:求n个字符串的公共最长串。 思路很简单:我们先按字符串的长度由短到长进行快排。枚举第一个字符串的不同长度子串,判断她是否为下面多有的公共子串?如果是的话,那么我们就表明找到,则比较其长度,如果比已经找到的串长,那么就替换结果串 否则按字典序比较。取字典序考前的,就可以。 代码如下 #include #include #define Max 62 char te
2015-01-04 22:04:47 462
原创 poj解题报告——1035
考察字符串匹配,我是选择了线性查找……有大牛上哈希0MS,可怕!Discuss有人使用二分查找加速,即先对给出的字典按长度排序,长度相同的按一般字典序排列。尝试完全匹配的时候就可以用二分查找大大节约时间。不完全匹配依然照常。输出的时候再排序。 代码如下 #include #include #include int Find(int a); int n; int lend[1000
2015-01-04 17:51:06 416
原创 poj解题报告——3253
WA了一天了,不就是一个哈夫曼树么,真的崩溃了。 题意是这样的,比如输入3 8 5 8,相当于8+5+8=21,然后21+5+8=34。 代码如下 #include __int64 sum; int b[20005]; int h,len; int pt(int i) { return i/2; } int lt(int i) {
2015-01-03 18:20:40 411
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人