1.ACM简介与输入输出

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

– Compile Error ; 编译出错,源代码中有语法错误 编译出错, – Run Time Error; 程序运行时发生错误,多为数组访问越界 程序运行时发生错误, – Time Limit Exceeded; 超时错误程序运行时间超过运行时 间 – Wrong Answer ; 答案错误 – Presentation Error ;输出格式错误 输出格式错误 – Accepted。恭喜,通过 。恭喜,



27/70
Hdoj_1090源代码:
#include <stdio.h> int main() { int n,i,a,b; scanf("%d",&n);
for(i=0;i<n;i++) { scanf("%d %d",&a, &b); printf("%d\n",a+b); }
}
28/70
670770870比赛完后的合影970独特的赛制独特的赛制以队为单位以队为单位每队不超过三人每队不超过三人高中毕业不超过五年高中毕业不超过五年collegiatecollegiate合作合作每队仅一台计算机每队仅一台计算机可携带纸制资料可携带纸制资料在组委会的要求内在组委会的要求内不能携带任何类型的通讯工具不能携带任何类型的通讯工具总决赛会提总决赛会提供一个简单计算器供一个简单计算器
输入_第二类
• 输入一开始就会说有 个Input Block,下面接 输入一开始就会说有N个 下面接 着是N个 着是 个Input Block。 。 参见: 参见:HDOJ_1090 • /showproblem.php? pid=1090
26/70
• •
ACM算法与程序设计 ACM算法与程序设计
第一讲
ACM/ICPC简介 ACM/ICPC简介 简单输入输出
ACM/ICPC简 ACM/ICPC简介
ACM/ICPC的全称为 的全称为ACM国际大学生程序设计 的全称为 国际大学生程序设计 竞赛( 竞赛(ACM-International Collegiate - Programming Contest),是世界上规模最大、水 ),是世界上规模最大 ),是世界上规模最大、 平最高的国际大学生程序竞赛。 平最高的国际大学生程序竞赛。ACM/ICPC由国 由国 际计算机学界著名的ACM学会(Association for 学会( 际计算机学界著名的 学会 Computer Machinery)主办, 第一届 )主办, 第一届ACM/ICPC 年在美国举办, 于1970年在美国举办,以后每年一届。历史上曾由 年在美国举办 以后每年一届。 APPLE、AT&T、微软和 担任赞助商, 、 、微软和IBM担任赞助商,现任赞 担任赞助商 助商是IBM。ACM所颁发的获奖证书也为世界各 助商是 。 所颁发的获奖证书也为世界各 著名计算机公司及各知名大学所认可。 著名计算机公司及各知名大学所认可。
6/70
7/70
比赛完后 的合影
8/70
比赛规则
独特的赛制 以队为单位, 以队为单位, 每队不超过三人 高中毕业不超过五年(Collegiate) 高中毕业不超过五年(Collegiate) 合作 – 每队仅一台计算机 可携带纸制资料(在组委会的要求内) 可携带纸制资料(在组委会的要求内) 不能携带任何类型的通讯工具( 不能携带任何类型的通讯工具(总决赛会提 供一个简单计算器) 供一个简单计算器); 10道左右 道左右全英文题目 5小时 10道左右全英文题目 排名: 完成的题目数量;使用的时间. 排名: 完成的题目数量;使用的时间.
3/70
校参赛 况简介洲区域赛和世界总 竞赛分为世界各大洲区域赛和 竞赛分为世界各大洲区域赛 决赛两个阶段 我校参加该项赛事八年来,共获8 两个阶段。 决赛两个阶段。我校参加该项赛事八年来,共获 年和10年三次打入世界 金13银17铜,并于 年、09年和 年三次打入世界 银 铜 并于07年 年和 总决赛。 总决赛。 2010年我校共参加了五个赛区:哈尔滨、天津、 年我校共参加了五个赛区:哈尔滨、天津、 年我校共参加了五个赛区 杭州、成都和福州。共取得5金5银3铜,创历史最 杭州、成都和福州。共取得 金 银 铜 好成绩。 好成绩。 英雄榜:/heroes.html 英雄榜:
11/70
教材及辅导资料推荐
• • • 程序设计导引及在线实践 算法竞赛入门经典 挑战编程程序设计竞赛训练手册
12/70
先看一个超级简单的题目
• 题目内容 已知正方形的边长,试编程求出其面积。 已知正方形的边长,试编程求出其面积。 • 输入描述 输入不超过50个正整数的数据 个正整数的数据n 输入不超过 个正整数的数据 (1<=n<=10000),每个正整数间以空格隔开。 ,每个正整数间以空格隔开。 • 输出描述 每次读入一个正整数, 每次读入一个正整数,便输出其正方形的面积 输出每个面积后再回车。 数,输出每个面积后再回车。
9/70
ACM-ICPC赛事结构 ACM-ICPC赛事结构
每年4 每年4月~第二年4月为一个赛季 第二年4 3~4月 举行校内大赛(暨选拔赛) 3~4月,举行校内大赛(暨选拔赛) 7-8月,暑假前集训队成立,队内比赛,选拔暑 暑假前集训队成立,队内比赛, 假集训队成员 10-12月 参加ACM/ICPC亚洲区比赛( 10-12月,参加ACM/ICPC亚洲区比赛(至少参加 ACM/ICPC亚洲区比赛 个赛区的比赛 的比赛) 4~5个赛区的比赛) 另外,每月都有各大OJ平台比赛、Topcoder赛 OJ平台比赛 另外,每月都有各大OJ平台比赛、Topcoder赛
Problem Description Your task is to Calculate a + b. Input Input contains an integer N in the first line, and then N lines follow. Each line consists of a pair of integers a and b, separated by a space, one pair of integers per line. Output For each pair of input integers a and b you should output the sum of a and b in one line, and with one line of output for each line in input. Sample input: 2 15 10 20 Sample output: 6 30
18/70
说明:
1. scanf函数返回值就是读出的变量个数,如: 函数返回值就是读出的变量个数, 函数返回值就是读出的变量个数 scanf( “%d %d”, &a, &b ); 如果只有一个整数输入,返回值是1, 如果只有一个整数输入,返回值是 ,如果 有两个整数输入,返回值是2, 有两个整数输入,返回值是 ,如果一个都 没有,则返回值是-1。 没有,则返回值是 。 2. EOF是一个预定义的常量,等于-1。 是一个预定义的常量,等于 。 是一个预定义的常量
22/70
读入两个参数
• 题目内容 编写程序计算两个整数的差。 编写程序计算两个整数的差。 • 输入描述 个整数对, 输入数据含有不超过50个整数对 输入数据含有不超过50个整数对,每个整数及 每对整数的运算结果都不会超过 ±231 。 • 输出描述 对于每次读入的一对整数, 对于每次读入的一对整数,输出前者减去后 者的差。每个结果以回车结束。 者的差。每个结果以回车结束。
19/70
例如:
#include <stdio.h> int main(void) { int a=0,b=0,c=0,k; k=scanf("%d%*d%d",&a,&b,&c); printf("k=%d,a=%d,b=%d,c=%d\ printf("k=%d,a=%d,b=%d,c=%d\n",k,a,b,c); } 若输入: 3,则输出为: 若输入:1 2 3,则输出为:k=2,a=1,b=3,c=0 注意: 注意: •常常用while(scanf(“…”,…)==…)来判断循环的进行。 常常用while(scanf(“…”,…)==…)来判断循环的进行 •从键盘输入时为表示输入已结束,应该先按Enter,再 从键盘输入时为表示输入已结束,应该先按Enter, Ctrl+Z,再按Enter。 Ctrl+Z,再按Enter。
20/70
参考源代码
#include <stdio.h> int main(void) { int a; while(scanf("%d",&a)==1) printf("%d\n",a*a); return 0; }
21/70
本类输入解决方案:
• C语法: 语法: 语法 while(scanf("%d",&a) = =1) { .... } • C++语法: 语法: 语法 while( cin >> a) { .... }
16/70
输入_第一类:读入一个参数
• 输入不说明有多少个Input Block,以EOF或-1 输入不说明有多少个Input Block,以EOF或 为结束标志。 为结束标志。 • 读入一个输入对应一个输出,输入数据可以是 读入一个输入对应一个输出, 多组
17/70
• 题目分析 怎样判断输入的结束? 怎样判断输入的结束? • scanf函数的原型如下: scanf函数的原型如下 函数的原型如下: int scanf(const char *format [, argument]... ); *format argument]... • 其返回值为:成功读取并分配的元素个数。 其返回值为:成功读取并分配的元素个数。
23/70
• 输入样例 1357 • 输出样例 -2 -2
24/70
参考源代码
#include <stdio.h> int main(void) { int a,b; while(scanf("%d%d",&a,&b)==2) printf("%d\n",a-b); return 0; }
25/70
4/70
34届 界总决赛简 总决赛简介 34届 界总决赛简介
全球总决赛于2月 日在哈尔滨 第34届ACM-ICPC全球总决赛于 月5日在哈尔滨 届 全球总决赛于 工程大学举行,从全球6大州 个国家242个赛区 大州82个国家 工程大学举行,从全球 大州 个国家 个赛区 1931所大学和 所大学和22000多人中胜出的来自世界 个国家 多人中胜出的来自世界33个国家 所大学和 多人中胜出的来自世界 和地区的103支队伍,300余名世界各大学计算机精 支队伍, 和地区的 支队伍 余名世界各大学计算机精 英参赛。 英参赛。上海交通大学最终获得了全球总决赛第一 名。 总决赛前十名的队伍将得到高额奖金: 总决赛前十名的队伍将得到高额奖金:第一名奖 金为12000美元,第二名奖金为6000美元, 12000美元 6000美元 金为12000美元,第二名奖金为6000美元,第三名奖 金为3000美元,第四名至第十名将各得到l500美元。 3000美元 l500美元 金为3000美元,第四名至第十名将各得到l500美元。 除此之外还将承认北美冠军、欧洲冠军 北美冠军 冠军、 除此之外还将承认北美冠军、欧洲冠军、南太平洋 冠军及亚洲冠军。 亚洲冠军 冠军及亚洲冠军。 2011年世界总决赛地点是美国佛罗里达州奥兰多市。5/70 年世界总决赛地点是美国佛罗里达州奥兰多市。 年世界总决赛地点是美国佛罗里达州奥兰多市
10/70
如何练习, 如何练习,提高编程能力
• 在各大 练习 在各大OJ练习 演示) – (演示 演示 – – • 可能收到的反馈信息包括: 可能收到的反馈信息包括:
13/70
• 输入样例 1234 • 输出样例 1 9 25 49
14/70
初学者很常见的一种写法
#include<stdio.h> void main() { int a; scanf(“%d”,&a); printf(“%d”,a*a); }
15/70
有什么问题呢?
这就是下面需要解决的问题
相关文档
最新文档