杭电acm初学者课件

上传人:油条 文档编号:47886857 上传时间:2018-07-05 格式:PPT 页数:70 大小:1.60MB
返回 下载 相关 举报
杭电acm初学者课件_第1页
第1页 / 共70页
杭电acm初学者课件_第2页
第2页 / 共70页
杭电acm初学者课件_第3页
第3页 / 共70页
杭电acm初学者课件_第4页
第4页 / 共70页
杭电acm初学者课件_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《杭电acm初学者课件》由会员分享,可在线阅读,更多相关《杭电acm初学者课件(70页珍藏版)》请在金锄头文库上搜索。

1、ACM 程序设计计算机学院 刘春英*1第一讲ACM入门2018/7/52第一部分初识ACM2018/7/53ACM (Association for Computing Machinery)成立于计算机诞生次年,是目前计算机 学界中历史最悠久、最具权威性的组织 What is ACM ?2018/7/54我们说的“ACM” 是什么?Date5ACM/ICPC:ACM主办的国际大学生程序设计竞赛 (International Collegiate Programming Contest),简 称ACM / ICPC,自从1977年开始至今已经连 续举办31届。其宗旨是提供一个让大学生向IT 界展

2、示自己分析问题和解决问题的能力的绝好 机会,让下一代IT天才可以接触到其今后工作 中将要用到的各种软件。现在,ACM / ICPC已成为世界各国大学生中 最具影响力的国际计算机赛事。(非官方)Date6ACM/ICPC in China中国大陆高校从1996年开始参加ACM国 际大学生程序设计竞赛亚洲预赛。l前六届中国赛区设在上海,由上海大学 承办;l2002年由清华大学和西安交通大学承办 ;l2003年由清华大学和中山大学承办。l2004年由北京大学和上海交通大学承办 。l2005年由四川大学、北大和浙大承办。l2006年由上海大学、清华和西电承办。l2007年:北航、南航、吉大、西华Dat

3、e7Date8ACM in HDUl2003年9月,第一次参加省赛(邀请赛)l2004年5月,浙江省“舜宇”杯首届大学生程序设计大 赛l2004年1112月,第29届ACM亚洲区北京和上海赛区比赛l2005年5月,浙江省第二届“舜宇”杯大学生程序设计大 赛l2005年11月,参加中国大陆的三站亚洲区比赛l2006年5月,浙江省第二届“舜宇”杯大学生程序设计大 赛l2006年1112月,第31届ACM首尔、北京、上海和西安赛 区比赛l今年Date9预期赛事(今后每年)l34月,举行校内大赛(暨选拔赛)l5月,参加浙江省大学生程序设计大赛l11月,参加ACM/ICPC亚洲区比赛( 至少参加45个赛

4、区的比赛)l另外,每学期至少有三次月赛以及适 当的练习赛Date10如何比赛? 3人组队 可以携带诸如书、手册、 程序清单等参考资料 ;不能携带任何可用计算机处理的软件或数据、 不能携带任何类型的通讯工具; 可能收到的反馈信息包括: Compile Error - 程序不能通过编译。 Run Time Error - 程序运行过程中出现非正常中断。 Time Limit Exceeded - 运行超过时限还没有得到输出结果。 Wrong Answer - 答案错误。 Presentation Error - 输出格式不对,可检查空格、回车等等细节。 Accepted - 恭喜恭喜! Date1

5、1首先根据解题数目进行排名。 如果多支队伍解题数量相同,则根据总用时 加上惩罚时间进行排名。 总用时和惩罚时间由每道解答正确的试题的 用时加上惩罚时间而成。 每道试题用时将从竞赛开始到试题解答被判 定为正确为止,其间每一次错误的运行将被 加罚20分钟时间,未正确解答的试题不记时 。如何排名?Date12l比赛形式 1支队伍1台机器(提供打印服务)上机编程解决问题(可带纸质资料) 实时测试,动态排名l试题 6-10题全英文(可以带字典)l时间:持续5个小时Date13ACM .vs. 校程序设计竞赛lACM竞赛 团队合作精神 即时提交,通过所有数据才能得分 全英文题目,题目考察范围广l校程序设计

6、竞赛 个人编程能力的比拼 中文或者英文题目,考察编程基本功Date14ACM队队员的基本原则l基本要求 人品好 愿意花时间在这项赛事上 有团队合作精神l能力要求 程序设计 英语科技文献阅读 数学数学Date15杭电参赛历程Date16HDU-ACM * 集训队*Date17放松完毕 回到正题Date18开课目的 为杭电ACM代表队培养后备人才 提高分析问题和应用计算机编程 解决问题的能力 培养必要的自学能力 培养学生的协调和沟通能力 体会学习的快乐Date19如何入门呢?Date20ACM题目特点:由于ACM竞赛题目的输入数据和输出数 据一般有多组(不定),并且格式多 种多样,所以,如何处理题

7、目的输入 输出是对大家的一项最基本的要求。 这也是困扰初学者的一大问题。下面,分类介绍:Date21先看一个超级简单的题目:lhttp:/ p?pid=1089lSample input:l1 5l10 20lSample output:l6l30Date22初学者很常见的一种写法:l#includelvoid main()l int a,b; scanf(“%d %d”, Printf(“%d”,a+b);lDate23有什么问题呢?这就是下面需要解决的问题Date24第二部分基本输入输出2018/7/525输入_第一类:l输入不说明有多少个Input Block,以 EOF为结束标志。 参

8、见:HDOJ_1089lhttp:/ pid=1089Date26Hdoj_1089源代码:#include int main() int a,b;while(scanf(“%d %d“, Date27本类输入解决方案:lC语法: while(scanf(“%d %d“, 如果只有一个整数输入,返回值是1, 如果有两个整数输入,返回值是2,如 果一个都没有,则返回值是-1。lEOF是一个预定义的常量,等于-1。Date29输入_第二类:l输入一开始就会说有N个Input Block,下 面接着是N个Input Block。 参见:HDOJ_1090 lhttp:/ pid=1090Date30

9、Hdoj_1090源代码:#include int main() int n,i,a,b;scanf(“%d“, for(i=0;i n; for( i=0 ; iint main() int a,b;while(scanf(“%d %d“, 上面的程序有什么问题?Date34本类输入解决方案:lC语法: while(scanf(“%d“, gets(buf); lC+语法: 如果用string buf;来保存:getline( cin , buf ); 如果用char buf 255 ; 来保存: cin.getline( buf, 255 );Date38说明(5_1):lscanf(“

10、%s%s”,str1,str2),在多个字符串 之间用一个或多个空格分隔;l若使用gets函数,应为gets(str1); gets(str2); 字符串之间用回车符作分隔 。l通常情况下,接受短字符用scanf函数, 接受长字符用gets函数。l而getchar函数每次只接受一个字符,经 常c=getchar()这样来使用。Date39说明(5_2):cin.getline的用法:lgetline 是一个函数,它可以接受用户的输入的字符 ,直到已达指定个数,或者用户输入了特定的字符 。它的函数声明形式(函数原型)如下: istreaml不用管它的返回类型,来关心它的三个参数:lchar li

11、ne: 就是一个字符数组,用户输入的内容 将存入在该数组内。lint size : 最多接受几个字符?用户超过size的输入都 将不被接受。lchar endchar :当用户输入endchar指定的字符时,自 动结束。默认是回车符。 Date40说明(5_2)续l结合后两个参数,getline可以方便地实 现: 用户最多输入指定个数的字符, 如果超过,则仅指定个数的前面字符 有效,如果没有超过,则用户可以通 过回车来结束输入。lchar name4;lcin.getline(name,4,n);l由于 endchar 默认已经是 n,所以后 面那行也可以写成:lcin.getline(nam

12、e,4);Date41思考: 以下题目属于哪一类输入?lhttp:/ pid=1018lhttp:/ pid=1013Date42输出_第一类:l一个Input Block对应一个Output Block ,Output Block之间没有空行。 参见:HDOJ_1089lhttp:/ p?pid=1089Date43解决方案:lC语法: . printf(“%dn“,ans); lC+语法: . cout int main() int a,b;while(scanf(“%d %d“, Date46解决办法:lC语法: . printf(“%dnn“,ans); lC+语法: . cout l

13、 int main() l l int icase,n,i,j,a,sum; l scanf(“%d“, l for(i=0;iint main() int a,b;while(scanf(“%d %d“, Date54二、小技巧l数据的拷贝(特别是输出的提示信息)l调试的sample input的拷贝Date55三、C语言处理“混合数据”的问 题例题(Hdoj_1170)http:/ (i=0;i #include int main() int j=0; for(j=0;j总结-练习-总结-lhttp:/l杭电ACM论坛 lgoogle、baiduDate65http:/ C/C+ )4 、可以退课吗? ( Of course! )3 、如何加入集训队? (200 & 申请 )2、英语不好怎么办?(问题不大)Date67想对大家说的话Date68课后任务:1、熟悉http:/ 2、完成在线练习: ACM ProgrammingExercise(1) 3、学有余力,可以尝试下面题目: 1016-1018、1013、1061 1170、2000-2043Date69See you next week!Date70

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号