b99902HW 板


LINE

※ [本文转录自 math120908 信箱] 作者: [email protected] ([email protected]) 标题: [关於] 写 Online Judge part.2 时间: Wed Oct 20 08:33:10 2010 作者: skyly (skyly) 看板: NextArcadia 标题: [关於] 写 Online Judge part.2 时间: Wed Oct 20 01:48:45 2010 这次要谈的是有关写 Online Judge 题目的 Input 所需要注意的一些事项. 首先, 通常 Online Judge 的题目可以分为两大类型: Batch problems (normal case) 跟 Interactive problems Batch problems 也就是平时较常看到的问题, 就是给你的测试资料是一次给定的, 讲白一点即你可以随时读资料随时输出资料. 例如你可以一笔一笔慢慢的作, 也可以全部读进来一起做再一口气输出. Interactive problems 一般称做 互动题, 这种题目比较少见. 对於一题互动题, 你可能要 include 一些题目提供的 header files, 然後或许要使用一些题目给订的 functions 之类的, 因题而异. 最特别的一点是你主要是要 跟 judge system 互动, 例如说你可能要做一些 function calls 传入一些值才能继续作下去之类的. //TIOJ 1087 或许是一个不错的例子 接着要谈的是关於题目的 输入型态, 在这边我们只讨论 Batch 题, 也就是一般的题目的情况. 我们对於一个 Batch 题目的输入, 通常分作 单笔输入 多笔输入(循环输入) 所谓的 单笔输入 例如 Judgegirl 就是一个很好的例子, 意思就是对於每一笔测试资料, 都重新将 input 导入你的执行档. (maybe 是分做很多档案) 来一个 example: 请输入一个整数 n, 并输出 n. 那麽你可以这样写: #include <stdio.h> int main() { int n; scanf("%d", &n); printf("%d\n", n); //记得我们上次说的要换行吗? return 0; } 这种写法就是针对所谓的单笔输入. 而单笔输入的题目通常在题目中会有一些关键的句子告诉你是单笔输入, 例如说 "本题只有一笔测试资料", 但这并不代表这题真的只有一笔测试资料, 而只是要提醒你该题是属於单笔输入的题目. 另一种更为常见的则是 多笔输入(或称作 循环输入), 意思就是你每一次程式的执行都要读多笔的测试资料, 而其中又分为 1. 以 EOF 作结束 2. 以限定条件做结束 example for case 1: 本题有多笔输入, 以 EOF 作为结束. 对於每一笔输入给定两个整数 a, b, 请输出 a+b 的结果. 那麽你可以这样写: #include <stdio.h> int main() { int a, b; while ( scanf("%d%d", &a, &b) != EOF ) { //这个助教应该有提过 printf("%d\n", a + b ); } return 0; } 实际题目的话你可能会见到以下关键句, 来判定这题是属於 EOF 类 的多笔输入题: "There are multiple input in the testcase. The input is ended by EOF." example for case 2: 本题有多笔输入, 对於每一笔输入一个正整数 a, 请输出 a+1 的结果. 以 a=0 作为结束. 那麽你可以这样写: #include <stdio.h> int main() { int a; while ( scanf("%d", &a) != EOF ) { if ( a == 0 ) break; printf("%d\n", a + 1 ); } return 0; } 对於这种 case, 题目会说明该以什麽条件做为输入的结尾, 如 example 中的 a=0 就是输入结尾的条件. 那麽或许你会有个问题, 如果题目都没说的话怎麽办?! 此时你应该先以 " EOF 多笔输入 " 作为第一考量, 比较不容易错. Input 所需要注意的一些部分大致上介绍到这里. 是说包括这次提的 Input 或者是上次讲的 Output, 其实都还有很多细节尚未说明到, 只是在此先举出一些常见的问题. 其中包括很多因素, 比如说有些观念还没有教到等等, 那其实也没有必要急着去钻那些点, 所以在这两篇文中我就没有多提. 不过如果大家真的有遇到除了这些以外的问题还是欢迎来提问~ 那麽就先这样了. --



※ 发信站: 批踢踢兔(ptt2.cc)
◆ From: 123.194.173.14
1F:→ ryan8175ptt2:太用心了Q_Q 我要推暴她(?) 不是啦推暴这篇文推 10/20 07:46
2F:→ math120908:继续转转转:p推 10/20 08:32
--



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.137
3F:推 m80126colin:强者用心读者认真推 10/20 09:13
4F:推 s864372002:还有第三个类型 - 在开头给定资料笔数~ 10/20 09:45
5F:推 skyly:抱歉昨天太晚打脑筋不清楚竟然漏了...Orz 我原文加上去了XD 10/20 23:19







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP