
Volume 1.2 Sorting/Searching
文章平均质量分 57
深蓝色的猫
一个努力成长为大牛的蒟蒻程序媛
展开
-
UVa OJ 299
1、本题用四个字即可精准概括——“冒泡排序”。2、话说UVa真锻炼英文水平啊~顺便吐槽一下。#include #include int main(void){ int n,i,j,k,c,a[50]={0},temp; scanf("%d",&n); for(k=0;k { int count=0; s原创 2013-02-07 22:03:38 · 386 阅读 · 0 评论 -
UVa OJ 10194
1、第一次写这么长的程序,232行……2、共交了4次才过。第一次因为想当然,受到样例影响,认为题目说的“不区分大小写”是废话,所以没有对队伍的名称进行预处理,导致错误。3、第二次陷入死循环,以为是OJ系统错误,于是把同样的程序再交一遍,果断TLE。4、经检查发现忘记写j++了(真是容易忘啊),改掉后就AC了。#include #include #include type原创 2013-02-22 20:55:55 · 330 阅读 · 0 评论 -
UVa OJ 120
1、本题WA了两次,因为理解错了题意,以为只要最上面是最小值,最下面是最大值即可,而题目的意思是从小到大递增。(由此可见,学好英文多么重要。)2、先用快排,将结果保存在sorted,自底向上将a每次与sorted比较,如果不同则交换。保证已经遍历过的ai都与sorted一致即可。#include #include int a[40]={0},sorted[40]={0};cha原创 2013-02-08 15:07:22 · 326 阅读 · 0 评论 -
UVa OJ 10785
1、本题WA2次,第一次是忘记输出Case:,第二次是只注意了同样数字下是字典序,没有注意到不同数字之间也是字典序。所以这次是题目没理解好。#include #include int cmp_char(const void*_a,const void*_b){ char*a=(char*)_a; char*b=(char*)_b; return *a-原创 2013-02-24 21:38:54 · 278 阅读 · 0 评论 -
UVa OJ 755
1、本题交了9次才过。有很多话想说。2、本题RE、WA、TLE都经历过了。TLE主要是因为刚开始的算法是先搜索有几个相同的,再将筛选出的进行qsort,在搜索时用逐个比较的o(n^2)算法,难怪超时了。3、后来改为先qsort再比较相邻的有几个相同的,终于不TLE,但是RE。4、原来是因为s函数的第二个维度太小了(20),这里受测试数据影响以为“-”数不会超过数字和字母数,实际上可以有原创 2013-02-23 19:05:01 · 333 阅读 · 0 评论 -
UVa OJ 123
题目描述:给出一串“可忽略关键词”(如of、and、the等)和一串“标题”(如The Old Man And The Sea等),两者用“::”分隔。任务是输出一列标题。具体要求是:所有标题中出现的“可忽略关键词”之外的单词都是“关键词”,输出的标题需按关键词的字典序排列,如果有多个标题使用同一关键词,则按标题出现的顺序依次打印。除此之外,还要求打印出的标题除了关键词大写外,其他均小写。如:原创 2013-02-15 00:08:45 · 309 阅读 · 0 评论 -
UVa OJ 400
1、本题不难,一次AC,用qsort函数轻松解决。2、注意不要输出多余空格。#include #include #include int cmp_string(const void*_a,const void*_b);int main(void){ int n,i,j,count,sum,temp,t; char s[110][70]={""};原创 2013-02-12 21:49:40 · 314 阅读 · 0 评论 -
UVa OJ 10420
1、主要是用了qsort函数来进行字符串排序,减少出错率,一次AC~2、比较坑爹的是qsort似乎不能排结构体内部的字符串。3、注意\0的添加。#include #include #include typedef struct{ char s[80]; int num;}Data;int cmp_string(const void*_a,co原创 2013-02-06 18:15:34 · 336 阅读 · 0 评论 -
UVa OJ 156
1、一次AC~发现字符串排序函数qsort真好用啊。#include #include #include #include char s[1000][100]={""},sorted[1000][100]={""};int cmp_char(const void*_a,const void*_b);int cmp_string(const void*_a,const v原创 2013-02-08 16:58:49 · 316 阅读 · 0 评论 -
UVa OJ 340
1、非常惭愧,本题我读题目花了一小时,写程序到AC只用了十五分钟——实在是理解不了,因为没玩过这个猜数字游戏,后来看一位台湾网友的翻译才明白。2、大意就是两个数字序列要匹配。给了两个定义——一个strong match:当且仅当两数值相等且下标相等,一个weak match:数值相等下标不等。3、还有一个independent的限制,也就是两个match是independent当且仅当两个原创 2013-02-06 15:54:26 · 414 阅读 · 0 评论 -
UVa OJ 152
1、想不到啊想不到,这么水的题我WA竟然是因为。。。第一次,没去掉freopen,WA。2、去掉后第二次交还是WA,反复改还是WA,最后灵光一闪,在末尾加一个printf("\n");瞬间AC!3、用不用这么较真啊!!!我已经无力吐槽了。。。#include #include int a[5010][4]={0},i,j=0,num,c[10]={0};int b[5010原创 2013-02-07 20:30:36 · 339 阅读 · 0 评论 -
UVa OJ 10474
1、这题用快排,危险地过了,用时1.332s,不知有什么更好的方法。#include #include void Qsort(int a[],int s,int t);void change(int*a,int*b);int main(void){ int i,j,num,n,q,a[10000]={0},count=1; while(scanf("%d原创 2013-02-07 15:30:29 · 371 阅读 · 0 评论