
数据结构
文章平均质量分 69
徐州牧
这个作者很懒,什么都没留下…
展开
-
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 · 485 阅读 · 0 评论 -
poj解题报告——2388
找中间数么,快排就不错,嗯,对,就是快排代码如下#include#includeint 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 · 432 阅读 · 0 评论 -
poj解题报告——2299
题目本质就是求逆序对,然后用归并排序就可以做了,冒泡也能做,但是超时,O(n^2)的算法相比于O(n*log(n))算法总是要差一点的。代码如下#include#include#define MAX 500001int n,a[MAX],t[MAX];__int64 sum;void Merge(int l, int m, int r){ int p=原创 2015-01-11 15:02:59 · 496 阅读 · 0 评论 -
poj解题报告——3349
2月1日第一题,也是我寒假第一题。 这题分类是用哈希表做,一开始我都不知道什么是哈希表,摸索了许久,参考了别人的代码,写下了这个。 题意:每个雪花都有六个分支,用六个整数代表,这六个整数是从任意一个分支开始,朝顺时针或逆时针方向遍历得到的。输入多个雪花,判断是否有形状一致的雪花存在。简单的数字哈希,每种雪花可以由多种数字组合表示。例如输入的是1 2 3 4 5原创 2015-02-01 11:12:32 · 408 阅读 · 0 评论 -
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 · 437 阅读 · 0 评论 -
poj解题报告——3080
题意:求n个字符串的公共最长串。 思路很简单:我们先按字符串的长度由短到长进行快排。枚举第一个字符串的不同长度子串,判断她是否为下面多有的公共子串?如果是的话,那么我们就表明找到,则比较其长度,如果比已经找到的串长,那么就替换结果串 否则按字典序比较。取字典序考前的,就可以。代码如下#include#include#define Max 62char te原创 2015-01-04 22:04:47 · 485 阅读 · 0 评论 -
poj解题报告——1035
考察字符串匹配,我是选择了线性查找……有大牛上哈希0MS,可怕!Discuss有人使用二分查找加速,即先对给出的字典按长度排序,长度相同的按一般字典序排列。尝试完全匹配的时候就可以用二分查找大大节约时间。不完全匹配依然照常。输出的时候再排序。代码如下#include#include#includeint Find(int a);int n;int lend[1000原创 2015-01-04 17:51:06 · 436 阅读 · 0 评论