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 · 362 阅读 · 0 评论 -
UVa OJ 10194
1、第一次写这么长的程序,232行…… 2、共交了4次才过。第一次因为想当然,受到样例影响,认为题目说的“不区分大小写”是废话,所以没有对队伍的名称进行预处理,导致错误。 3、第二次陷入死循环,以为是OJ系统错误,于是把同样的程序再交一遍,果断TLE。 4、经检查发现忘记写j++了(真是容易忘啊),改掉后就AC了。 #include #include #include type原创 2013-02-22 20:55:55 · 275 阅读 · 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 · 303 阅读 · 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 · 259 阅读 · 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 · 309 阅读 · 0 评论 -
UVa OJ 123
题目描述:给出一串“可忽略关键词”(如of、and、the等)和一串“标题”(如The Old Man And The Sea等),两者用“::”分隔。任务是输出一列标题。具体要求是:所有标题中出现的“可忽略关键词”之外的单词都是“关键词”,输出的标题需按关键词的字典序排列,如果有多个标题使用同一关键词,则按标题出现的顺序依次打印。除此之外,还要求打印出的标题除了关键词大写外,其他均小写。 如:原创 2013-02-15 00:08:45 · 292 阅读 · 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 · 300 阅读 · 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 · 299 阅读 · 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 · 303 阅读 · 0 评论 -
UVa OJ 340
1、非常惭愧,本题我读题目花了一小时,写程序到AC只用了十五分钟——实在是理解不了,因为没玩过这个猜数字游戏,后来看一位台湾网友的翻译才明白。 2、大意就是两个数字序列要匹配。给了两个定义——一个strong match:当且仅当两数值相等且下标相等,一个weak match:数值相等下标不等。 3、还有一个independent的限制,也就是两个match是independent当且仅当两个原创 2013-02-06 15:54:26 · 392 阅读 · 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 · 326 阅读 · 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 · 351 阅读 · 0 评论