作者sa072686 (小红)
看板b97902HW
标题Re: [转录][分享] 所谓的ACM(Uva Online Judge)
时间Tue Oct 28 23:53:25 2008
在这边补充一下。
文末会附录一下比较简单的题目…如果有另外的需求可以私下联络,
我可以帮忙找题目这样~
首先大家比较需要知道的是,有种整数型态名为 long long,
int 范围只到 2^31 - 1 (2147483647,建议大家背起来)
long long 则到 2^63 - 1 (约 19 位,详细数字就不那麽重要了)
使用时在 Dev C 底下需用 %I64d 来输入输出,上传时务必改为 %lld(L小写)
绝大多数题目会有多重输入,即一份输入档具有多组测试资料,
如果你的程式只能读入一组,抱歉那死定啦。
另外观察发现大部份人都在宣告变数时初始化,碰到这种也是死定啦。
如果不是在要用之前初始化,那麽可能第一组有初始化、第二组就延续第一组的结果了。
有些会告诉你有几组,有些则要输入到 EOF (End Of File) 为止,
这里只讲解後者,前者相信大家都会。
首先,告诉大家何谓 EOF。凡档案必为有限大小之物,因此必有结尾。
若输入到了档案的结尾,则可知不可能再有任何输入,称之为 EOF。
如果是双班的话,今天就有提到、作业也需要用到了。
循环输入至 EOF 的写法约有两种:
一、
while(scanf("%d%d", &a, &b) == 2)
scanf() 回传值为正确输入到变数去的个数,所以若为 2 表示有正确读入
两个整数,故执行之;若无则结束。
二、
while(scanf("%d%d", &a, &b) != EOF)
EOF 值为 -1,当读入已到档案结尾时便会回传 EOF 以告知。
因此当不是 EOF 时,则继续执行。
另外有些题目会要求「每组测试资料後」或「每组测资间」要有一个空白行。
观察知大部份人的 code 在最後一行都没有加上 \n 的习惯,
其实这是不好的习惯,善良的批改娘不会管它,可是面对邪恶的 ACM 的话,
多或少一个换行都是致死的错误,因此请小心。
\n 代表着一行的结束,所以如果写作这样:
abc\n /* 在此为了让大家看清楚,断行均以 \n 代表。 */
乍看下会多一行?事实上没有喔。只不过是结束了 abc 这行进入下一行,
却没有所谓的「空白行」喔。事实上不结束最後一行,应该也会被 ACM 判死刑。
所谓的每组测试资料後留一空白行,像这样:
abc\n
\n
bcd\n
\n
输出的地方应该是:
printf("ans\n\n");
第一个 \n 只是结束目前这行,第二个 \n 才真正造成空白行的出现。
测试资料间留一空白行比较困难,由於两组间嘛,所以如果有 N 组,
则只有 N-1 个空白行,因此要看头尾。
可是如果不知道测资还有几组,也就是以 EOF 判断的,
那只能判断是不是头罗,否则无法判断是否为尾。
因此除了第一组测资外,其它组都在前面先输出一个空白行,这样就可以了~
另外,就是请大家多小心 ACM 的阴险测资啦。
所以要特别注意例外、或是边界等等,不过经验累积多了(被阴惯)後,
看到题目时就会想得比别人周到、比别人细心唷XD
以下是我个人觉得比较好写、又不用什麽演算法基础等就可以写的东西XD
当然有排序就多很多题目可以写了…之後再帮大家找吧XD
也欢迎大家来补充~
随文附上 Lucky 猫死掉时,目前世界上最完整的镜象
http://zion.tfcis.org/~sa072686/LuckyCat
以及有相当丰富 ACM 相关讨论的官方讨论板
http://online-judge.uva.es/board/index.php
以及我在其它地方的个板,均有不少 ACM 相关资料,板名均同 ID 为 sa072686
telnet://sony.tfcis.org 比较推这里,初阶到进阶都有,不过都还是有一定水准
telnet://fgisc.twbbs.org 这些都是後期冲的题目,难度均不低,初学较不推荐
其它还有不少不错的连结,也都可以在这里面找到。
---- 以下为推荐入门用题的题号 ----
10656
10879
993
621
11219
11240
636
11340
11292
10055
11172
11183
10071
10300
591
272
458
10970
11078
10678
113
10491
10176
10931
10921
575
10019
10260
10116
10374
10338
10190
10281
10227
476
477
10077
11056
10719
10252
10162
541
11074
11150
10346
278
10205
855
121
637
10075
11364
11369
11362
11360
11371
10194
255
11417
869
726
865
11344
11345
11349
11350
11308
11309
※ 引述《sa072686 (小红)》之铭言:
: ※ [本文转录自 b97902xxx 看板]
: 作者: anfranion (安弗尼恩) 看板: b97902xxx
: 标题: [分享] 所谓的ACM(Uva Online Judge)
: 时间: Mon Sep 15 23:50:48 2008
: http://icpcres.ecs.baylor.edu/onlinejudge/index.php
: 今天双班计概课提的↑
: 就是所谓的ACM -- Uva Online Judge
: 附上一份介绍用资料,仅供参考′▽`)"
: http://203.64.52.212/~anfranion/About_ACM.pdf
: 有些地方因为转档的问题@@,有点糊掉了,不好意思囧
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.240.202
1F:推 Catlikethief:辛苦了!! 10/29 00:09
2F:→ matt7983:耶耶~蜥蜴快点把他收录XDD 10/29 00:35
4F:推 matt7983:为什麽看到的画面很奇怪阿...?orz 10/29 15:52
5F:推 ming1053:ACM不支援IE的 换Firefox吧XD 10/29 16:13
6F:推 vanillaXleft:(乍看之下~以为楼楼上再跟楼上的~自言自语 XD) 10/29 17:55
7F:→ sa072686:比较推opera 10/29 19:17
8F:→ dennis2030:我的Firefix也不能开...所以只好用Chrome ||| 10/29 21:06
9F:→ dennis2030: o 手残了 10/29 21:06
10F:推 drazi:firefox 2.6.x 可以 在上去就不行了..... 10/29 21:11
11F:推 benck:firefox 3.0.3可以开 IE7 不能开.. 10/29 21:20
12F:推 chenaren:推chrome ^^ 10/29 21:21
13F:推 hrs113355:chrome对flash的支援还不够成熟:( 不过很轻巧! 10/29 21:26
14F:→ anfranion:Opera开ACM挺好的 10/29 23:07