ACM_ICPC-1ACM简介与输入输出
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 编程竞赛非常有趣!
2020/11/12
32
优秀竞赛学生回母校做宣传
亲爱的学弟学妹们,你们好!我是来自成都市大 弯中学的廖孜。 古语云,“少不入蜀”。大多指年少的时候停留 在蜀地,往往会使年轻人安于享乐,不思进取、难 成大器。然而,电子科技大学却绝非是这样的。 四年前,我怀着好奇与兴奋的心态进入了电子科 技大学。在奇特的机缘下我接触到了ACM-ICPC 竞赛,并为之奋斗了四年。也正是因此,我有了 一个忙碌却又异常精彩的四年大学生活。我还清 晰记得当时刚入校时许下的种种梦想,亚洲区域 赛金牌,就职Google美国硅谷总部MountainView, 代表中国参加俄罗斯叶卡捷琳堡世界总决赛。尽 管过程曲折,但可贵的是,这些梦想几乎所有都 实现了。不得不感谢电子科技大学这样优秀的大 学,给我梦想提供了舞台。
26
27
28
2020/11/12
29
2020/11/12
30
为什么要参加编程比赛
• 能力的提高 • 学到很多书本上和大学里面学不到的知识和技能 • 有机会云游四海,可以和众多武林高手同场竞技,交到很
多志同道合的朋友
• $$,出国的机会 • 对未来极其有利
– 高考保送、高考加分、保研
– 大公司不仅自己举办、同时自己举办各类编程竞赛、 非常重视选手的编程比赛经历和成绩
2. EOF是一个预定义的常量,等于-1。
例如:
#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\n",k,a,b,c); } 若输入:1 2 3,则输出为:k=2,a=1,b=3,c=0 注意: •常常用while(scanf(“…”,…)==…)来判断循环的进行。 •从键盘输入时为表示输入已结束,应该先按Enter,再 Ctrl+Z,再按Enter。
奥塔哥大学 加州大学洛杉矶分校 加州理工学院 斯坦福大学 加州理工学院 斯坦福大学 约翰霍普金斯大学 内布拉斯加大学 贝勒大学 密苏里-罗拉大学 华盛顿大学圣路易斯分校 华盛顿大学圣路易斯分校 麻省理工学院 密歇根州立大学
新西兰 美国 美国 美国 美国 美国 美国 美国 美国 美国 美国 美国 美国 美国
2008 加拿大 Banff
2015 摩洛哥马拉喀什
2010 中国 哈尔滨
2016 泰国普吉岛
2011 美国 奥兰多
2017 美国Rapid City
2012 波兰 华沙
2018 北京
2013 俄罗斯 圣彼得堡
2014 俄罗斯 叶卡捷琳堡
第41届世界总决赛简介
第41届ACM-ICPC全球总决赛于2017年5月20日在 美国Rapid City举行,从全球6大州103个国家530个 赛区2948所大学和46000多人中胜出的来自世界33个 国家和地区的132支队伍,300余名世界各大学计算 机精英参赛。
谷歌苏黎世 谷歌硅谷总部
微软上海 Facebook Linkedin(美国) 谷歌上海 微软苏州 谷歌硅谷总部 谷歌硅谷总部 谷歌硅谷总部 谷歌东京
比赛规则
独特的赛制 以队为单位, 每队不超过三人 高中毕业不超过五年(Collegiate) 合作 – 每队仅一台计算机 可携带纸制资料(在组委会的要求内) 不能携带任何类型的通讯工具(总决赛会提
• 输入样例 1234
• 输出样例 1 9 25 49
初学者很常见的一种写法
#include<stdio.h> void main() {
int a; scanf(“%d”,&a); printf(“%d”,a*a); }
有什么问题呢?
这就是下面需要解决的问题
输入_第一类:读入一个参数
• 输入不说明有多少个Input Block,以EOF或-1 为结束标志。
四川的学弟学妹们,现在不必离开四川,梦想依 旧能实现。
廖孜 2010级微电子与固体电子
33
姓名
刘欣 罗象宏 黄海波
王彦 廖洪舒 杨大渲
陈澄 赵韬 李春琪 何钊 何云鹏 林添 廖孜 李昀 彭云 詹艳玲
年级
2004 2005 2005 2005 2007 2007 2007 2007 2008 2008 2009 2009 2010 2010 2011 2011
4~5个赛区的比赛) 另外,每月都有各大OJ平台比赛、Topcoder赛
如何练习,提高编程能力
• 在各大OJ练习 • ***(演示) • *** • *** • 可能收到的反馈信息包括: • Compile Error ; 编译出错,源代码中有语法错误 • Run Time Error; 程序运行时发生错误,多为数组访问越界 • Time Limit Exceeded; 超时错误程序运行时间超过运行时间 • Wrong Answer ; 答案错误 • Presentation Error ;输出格式错误 • Accepted。恭喜,通过
从上世纪八十年代开始,ACM将ICPC的总部设在位于美 国德克萨斯州的贝勒大学。
我校参赛情况简介
ACM/ICPC竞赛分为世界各大洲区域赛和世界总 决赛两个阶段。我校参加该项赛事11年来,共获16 金17银20铜,并于08年、10年、11年、12年、13年、 14年、15年、16年、17年和18年十次打入世界总决 赛。
教材及辅导资料推荐
• 程序设计导引及在线实践 • 算法竞赛入门经典 • 挑战编程程序设计竞赛训练手册
先看一个超级简单的题目
• 题目内容 已知正方形的边长,试编程求出其面积。
• 输入描述 输入不超过50个正整数的数据n (1<=n<=10000),每个正整数间以空格隔开。
• 输出描述 每次读入一个正整数,便输出其正方形的面积 数,输出每个面积后再回车。
总决赛前十名的队伍将得到高额奖金:第一名奖 金为12000美元,第二名奖金为6000美元,第三名奖 金为3000美元,第四名至第十名将各得到l500美元。 除此之外还将承认北美冠军、欧洲冠军、南太平洋 冠军及亚洲冠军。
ቤተ መጻሕፍቲ ባይዱ
在大赛举办的早期,冠军多为美国或加拿大的大学获得。 而进入上世纪九十年代后期以来, 俄罗斯和其它一些东欧国 家的大学连夺数次冠军。
ACM-ICPC的历史可以上溯到1970年,首届比赛是在美国 德克萨斯A&M大学举办的。当时比赛的主办方是the Alpha Chapter of the UPE Computer Science Honor Society。作为一 种全新的发现和培养计算机科学顶尖学生的方式,竞赛很快得 到美国和加拿大各大学的积极响应。1977年,在ACM计算机科 学会议期间举办了首次总决赛,并演变成为目前的一年一届的 国际性比赛,迄今为止已经成功地举办了41届。
所属国家 中国 俄罗斯 俄罗斯 波兰 俄罗斯 中国 俄罗斯 波兰 中国 俄罗斯 俄罗斯 加拿大 捷克 美国 美国 德国 加拿大 美国 澳大利亚 美国
2020/11/12
10
2020/11/12
11
2020/11/12
13
2020/11/12
14
2020/11/12
15
16
17
2020/11/12
冠军所属大学 上海交通大学 圣彼得堡光学与精密仪器学院 圣彼得堡光学与精密仪器学院 华沙大学 萨拉托夫州立大学 上海交通大学 圣彼得堡光学与精密仪器学院 华沙大学 上海交通大学 国立圣彼得堡大学 国立圣彼得堡大学 滑铁卢大学 查尔斯大学 哈维玛德大学 加州大学伯克利分校 阿尔波特-爱因斯坦大学 滑铁卢大学 哈佛大学 墨尔本大学 斯坦福大学
专业
计算机 数学 计算机 通信 英才 计算机 信软 英才 计算机 信软 信软 计算机 微固 通信 计算机 威固
总决赛
加拿大Baff 加拿大Baff
哈尔滨 哈尔滨 奥兰多和波兰华沙 波兰华沙 奥兰多和波兰华沙
俄罗斯圣彼得堡 俄罗斯叶卡捷琳堡
就职于
Facebook 谷歌硅谷总部
Facebook 微软西雅图总部 谷歌硅谷总部
ACM-ICPC最初几届的参赛队伍主要来自美国和加拿大, 后来逐渐发展成为一项世界范围内的竞赛。自从ICPC等到了 IBM等大型 IT公司的赞助之后,规模开始增长迅速。1997年, 总共有来自560所大学的840支队伍参加了比赛,而到了2004年, 这一数字迅速增加到840所大学的4109支队伍,并正在以每年 10-20%的速度持续增长。迄今为止,已有来自六个大洲84个不 同国家的1733所大学的顶尖学生参加了这项赛事。
1990 1989 1988 1987 1986 1985 1984 1983 1982 1981 1980 1979 1978 1977
美国华盛顿 美国路易斯维尔 美国亚特兰大 美国圣路易斯 美国辛辛那提 美国新奥尔良 美国费城 美国墨尔本 美国印第安纳波利斯 美国圣路易斯 美国堪萨斯城 美国代顿 美国底特律 美国亚特兰大
供一个简单计算器); 5小时 10道左右全英文题目 排名: 完成的题目数量;使用的时间.
ACM-ICPC赛事结构
每年4月~第二年4月为一个赛季 3~4月,举行校内大赛(暨选拔赛) 7-8月,暑假前集训队成立,队内比赛,选拔暑
假集训队成员 10-12月,参加ACM/ICPC亚洲区比赛(至少参加
ACM算法与程序设计
第一讲
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所颁发的获奖证书也为世界各 著名计算机公司及各知名大学所认可。
参考源代码
#include <stdio.h> int main(void) {
int a; while(scanf("%d",&a)==1)
printf("%d\n",a*a); return 0; }
本类输入解决方案:
• C语法: while(scanf("%d",&a) = =1) { .... }
• C++语法: while( cin >> a) { .... }
读入两个参数
• 题目内容 编写程序计算两个整数的差。
• 输入描述 输入数据含有不超过50个整数对,每个整数及 每对整数的运算结果都不会超过 231 。
年份 2010 2009 2008 2007 2006 2005 2004 2003 2002 2001 2000 1999 1998 1997 1996 1995 1994 1993 1992 1991
总决赛地点 中国哈尔滨 瑞典斯德哥尔摩 加拿大班夫 日本东京 美国圣安东尼奥 中国上海 捷克布拉格 美国洛杉矶 美国夏威夷 加拿大温哥华 美国奥兰多 荷兰爱因霍温 美国亚特兰大 美国圣何塞 美国费城 美国纳什维尔 美国菲尼克斯 美国印第安纳波利斯 美国堪萨斯城 美国圣安东尼奥
18
19
20
• 2014年俄罗斯叶卡捷琳堡 • Team:UESTC_Ailurophilia队 • 代表我校第六次出征ACM全球总决赛 • 全球排名? • 陈岳航、廖孜、陈谷峰
21
22
23
24
• 2015年摩洛哥马拉喀什 • Team:UESTC_Monalisa队 • 代表我校第七次出征ACM全球总决赛 • 林伟平、齐朋辉、萧可
• 读入一个输入对应一个输出,输入数据可以是 多组
• 题目分析 怎样判断输入的结束?
• scanf函数的原型如下: int scanf(const char *format [, argument]... );
• 其返回值为:成功读取并分配的元素个数。
说明:
1. scanf函数返回值就是读出的变量个数,如: scanf( “%d %d”, &a, &b ); 如果只有一个整数输入,返回值是1,如果 有两个整数输入,返回值是2,如果一个都 没有,则返回值是-1。
2020/11/12
32
优秀竞赛学生回母校做宣传
亲爱的学弟学妹们,你们好!我是来自成都市大 弯中学的廖孜。 古语云,“少不入蜀”。大多指年少的时候停留 在蜀地,往往会使年轻人安于享乐,不思进取、难 成大器。然而,电子科技大学却绝非是这样的。 四年前,我怀着好奇与兴奋的心态进入了电子科 技大学。在奇特的机缘下我接触到了ACM-ICPC 竞赛,并为之奋斗了四年。也正是因此,我有了 一个忙碌却又异常精彩的四年大学生活。我还清 晰记得当时刚入校时许下的种种梦想,亚洲区域 赛金牌,就职Google美国硅谷总部MountainView, 代表中国参加俄罗斯叶卡捷琳堡世界总决赛。尽 管过程曲折,但可贵的是,这些梦想几乎所有都 实现了。不得不感谢电子科技大学这样优秀的大 学,给我梦想提供了舞台。
26
27
28
2020/11/12
29
2020/11/12
30
为什么要参加编程比赛
• 能力的提高 • 学到很多书本上和大学里面学不到的知识和技能 • 有机会云游四海,可以和众多武林高手同场竞技,交到很
多志同道合的朋友
• $$,出国的机会 • 对未来极其有利
– 高考保送、高考加分、保研
– 大公司不仅自己举办、同时自己举办各类编程竞赛、 非常重视选手的编程比赛经历和成绩
2. EOF是一个预定义的常量,等于-1。
例如:
#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\n",k,a,b,c); } 若输入:1 2 3,则输出为:k=2,a=1,b=3,c=0 注意: •常常用while(scanf(“…”,…)==…)来判断循环的进行。 •从键盘输入时为表示输入已结束,应该先按Enter,再 Ctrl+Z,再按Enter。
奥塔哥大学 加州大学洛杉矶分校 加州理工学院 斯坦福大学 加州理工学院 斯坦福大学 约翰霍普金斯大学 内布拉斯加大学 贝勒大学 密苏里-罗拉大学 华盛顿大学圣路易斯分校 华盛顿大学圣路易斯分校 麻省理工学院 密歇根州立大学
新西兰 美国 美国 美国 美国 美国 美国 美国 美国 美国 美国 美国 美国 美国
2008 加拿大 Banff
2015 摩洛哥马拉喀什
2010 中国 哈尔滨
2016 泰国普吉岛
2011 美国 奥兰多
2017 美国Rapid City
2012 波兰 华沙
2018 北京
2013 俄罗斯 圣彼得堡
2014 俄罗斯 叶卡捷琳堡
第41届世界总决赛简介
第41届ACM-ICPC全球总决赛于2017年5月20日在 美国Rapid City举行,从全球6大州103个国家530个 赛区2948所大学和46000多人中胜出的来自世界33个 国家和地区的132支队伍,300余名世界各大学计算 机精英参赛。
谷歌苏黎世 谷歌硅谷总部
微软上海 Facebook Linkedin(美国) 谷歌上海 微软苏州 谷歌硅谷总部 谷歌硅谷总部 谷歌硅谷总部 谷歌东京
比赛规则
独特的赛制 以队为单位, 每队不超过三人 高中毕业不超过五年(Collegiate) 合作 – 每队仅一台计算机 可携带纸制资料(在组委会的要求内) 不能携带任何类型的通讯工具(总决赛会提
• 输入样例 1234
• 输出样例 1 9 25 49
初学者很常见的一种写法
#include<stdio.h> void main() {
int a; scanf(“%d”,&a); printf(“%d”,a*a); }
有什么问题呢?
这就是下面需要解决的问题
输入_第一类:读入一个参数
• 输入不说明有多少个Input Block,以EOF或-1 为结束标志。
四川的学弟学妹们,现在不必离开四川,梦想依 旧能实现。
廖孜 2010级微电子与固体电子
33
姓名
刘欣 罗象宏 黄海波
王彦 廖洪舒 杨大渲
陈澄 赵韬 李春琪 何钊 何云鹏 林添 廖孜 李昀 彭云 詹艳玲
年级
2004 2005 2005 2005 2007 2007 2007 2007 2008 2008 2009 2009 2010 2010 2011 2011
4~5个赛区的比赛) 另外,每月都有各大OJ平台比赛、Topcoder赛
如何练习,提高编程能力
• 在各大OJ练习 • ***(演示) • *** • *** • 可能收到的反馈信息包括: • Compile Error ; 编译出错,源代码中有语法错误 • Run Time Error; 程序运行时发生错误,多为数组访问越界 • Time Limit Exceeded; 超时错误程序运行时间超过运行时间 • Wrong Answer ; 答案错误 • Presentation Error ;输出格式错误 • Accepted。恭喜,通过
从上世纪八十年代开始,ACM将ICPC的总部设在位于美 国德克萨斯州的贝勒大学。
我校参赛情况简介
ACM/ICPC竞赛分为世界各大洲区域赛和世界总 决赛两个阶段。我校参加该项赛事11年来,共获16 金17银20铜,并于08年、10年、11年、12年、13年、 14年、15年、16年、17年和18年十次打入世界总决 赛。
教材及辅导资料推荐
• 程序设计导引及在线实践 • 算法竞赛入门经典 • 挑战编程程序设计竞赛训练手册
先看一个超级简单的题目
• 题目内容 已知正方形的边长,试编程求出其面积。
• 输入描述 输入不超过50个正整数的数据n (1<=n<=10000),每个正整数间以空格隔开。
• 输出描述 每次读入一个正整数,便输出其正方形的面积 数,输出每个面积后再回车。
总决赛前十名的队伍将得到高额奖金:第一名奖 金为12000美元,第二名奖金为6000美元,第三名奖 金为3000美元,第四名至第十名将各得到l500美元。 除此之外还将承认北美冠军、欧洲冠军、南太平洋 冠军及亚洲冠军。
ቤተ መጻሕፍቲ ባይዱ
在大赛举办的早期,冠军多为美国或加拿大的大学获得。 而进入上世纪九十年代后期以来, 俄罗斯和其它一些东欧国 家的大学连夺数次冠军。
ACM-ICPC的历史可以上溯到1970年,首届比赛是在美国 德克萨斯A&M大学举办的。当时比赛的主办方是the Alpha Chapter of the UPE Computer Science Honor Society。作为一 种全新的发现和培养计算机科学顶尖学生的方式,竞赛很快得 到美国和加拿大各大学的积极响应。1977年,在ACM计算机科 学会议期间举办了首次总决赛,并演变成为目前的一年一届的 国际性比赛,迄今为止已经成功地举办了41届。
所属国家 中国 俄罗斯 俄罗斯 波兰 俄罗斯 中国 俄罗斯 波兰 中国 俄罗斯 俄罗斯 加拿大 捷克 美国 美国 德国 加拿大 美国 澳大利亚 美国
2020/11/12
10
2020/11/12
11
2020/11/12
13
2020/11/12
14
2020/11/12
15
16
17
2020/11/12
冠军所属大学 上海交通大学 圣彼得堡光学与精密仪器学院 圣彼得堡光学与精密仪器学院 华沙大学 萨拉托夫州立大学 上海交通大学 圣彼得堡光学与精密仪器学院 华沙大学 上海交通大学 国立圣彼得堡大学 国立圣彼得堡大学 滑铁卢大学 查尔斯大学 哈维玛德大学 加州大学伯克利分校 阿尔波特-爱因斯坦大学 滑铁卢大学 哈佛大学 墨尔本大学 斯坦福大学
专业
计算机 数学 计算机 通信 英才 计算机 信软 英才 计算机 信软 信软 计算机 微固 通信 计算机 威固
总决赛
加拿大Baff 加拿大Baff
哈尔滨 哈尔滨 奥兰多和波兰华沙 波兰华沙 奥兰多和波兰华沙
俄罗斯圣彼得堡 俄罗斯叶卡捷琳堡
就职于
Facebook 谷歌硅谷总部
Facebook 微软西雅图总部 谷歌硅谷总部
ACM-ICPC最初几届的参赛队伍主要来自美国和加拿大, 后来逐渐发展成为一项世界范围内的竞赛。自从ICPC等到了 IBM等大型 IT公司的赞助之后,规模开始增长迅速。1997年, 总共有来自560所大学的840支队伍参加了比赛,而到了2004年, 这一数字迅速增加到840所大学的4109支队伍,并正在以每年 10-20%的速度持续增长。迄今为止,已有来自六个大洲84个不 同国家的1733所大学的顶尖学生参加了这项赛事。
1990 1989 1988 1987 1986 1985 1984 1983 1982 1981 1980 1979 1978 1977
美国华盛顿 美国路易斯维尔 美国亚特兰大 美国圣路易斯 美国辛辛那提 美国新奥尔良 美国费城 美国墨尔本 美国印第安纳波利斯 美国圣路易斯 美国堪萨斯城 美国代顿 美国底特律 美国亚特兰大
供一个简单计算器); 5小时 10道左右全英文题目 排名: 完成的题目数量;使用的时间.
ACM-ICPC赛事结构
每年4月~第二年4月为一个赛季 3~4月,举行校内大赛(暨选拔赛) 7-8月,暑假前集训队成立,队内比赛,选拔暑
假集训队成员 10-12月,参加ACM/ICPC亚洲区比赛(至少参加
ACM算法与程序设计
第一讲
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所颁发的获奖证书也为世界各 著名计算机公司及各知名大学所认可。
参考源代码
#include <stdio.h> int main(void) {
int a; while(scanf("%d",&a)==1)
printf("%d\n",a*a); return 0; }
本类输入解决方案:
• C语法: while(scanf("%d",&a) = =1) { .... }
• C++语法: while( cin >> a) { .... }
读入两个参数
• 题目内容 编写程序计算两个整数的差。
• 输入描述 输入数据含有不超过50个整数对,每个整数及 每对整数的运算结果都不会超过 231 。
年份 2010 2009 2008 2007 2006 2005 2004 2003 2002 2001 2000 1999 1998 1997 1996 1995 1994 1993 1992 1991
总决赛地点 中国哈尔滨 瑞典斯德哥尔摩 加拿大班夫 日本东京 美国圣安东尼奥 中国上海 捷克布拉格 美国洛杉矶 美国夏威夷 加拿大温哥华 美国奥兰多 荷兰爱因霍温 美国亚特兰大 美国圣何塞 美国费城 美国纳什维尔 美国菲尼克斯 美国印第安纳波利斯 美国堪萨斯城 美国圣安东尼奥
18
19
20
• 2014年俄罗斯叶卡捷琳堡 • Team:UESTC_Ailurophilia队 • 代表我校第六次出征ACM全球总决赛 • 全球排名? • 陈岳航、廖孜、陈谷峰
21
22
23
24
• 2015年摩洛哥马拉喀什 • Team:UESTC_Monalisa队 • 代表我校第七次出征ACM全球总决赛 • 林伟平、齐朋辉、萧可
• 读入一个输入对应一个输出,输入数据可以是 多组
• 题目分析 怎样判断输入的结束?
• scanf函数的原型如下: int scanf(const char *format [, argument]... );
• 其返回值为:成功读取并分配的元素个数。
说明:
1. scanf函数返回值就是读出的变量个数,如: scanf( “%d %d”, &a, &b ); 如果只有一个整数输入,返回值是1,如果 有两个整数输入,返回值是2,如果一个都 没有,则返回值是-1。