好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

《lesson初识A》PPT课件.ppt

58页
  • 卖家[上传人]:M****1
  • 文档编号:605813783
  • 上传时间:2025-05-22
  • 文档格式:PPT
  • 文档大小:1.45MB
  • / 58 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 单击此处编辑母版样式,,单击此处编辑幻灯片母版样式,,第二层,,第三层,,第四层,,第五层,,*,,*,2024/10/7,1,ACM,程序设计,2024/10/7,2,第一讲,ACM,入门,2024/10/7,3,第一部分,初识,ACM,2024/10/7,4,,ACM (,Association for Computing Machinery,),成立于计算机诞生次年,是目前计算机学界中历史最悠久、最具权威性的组织,是推进信息技术专业人员和学生提高技巧的主要力量ACM,通过提供前沿技术信息和从理论到实践的转化,为其全球,7.5,万名成员服务,并已经成为信息科技领域的一个基本信息来源What is ACM ?,2024/10/7,5,我们说的,“,ACM,”,,是什么?,2024/10/7,6,ACM/ICPC,:,,ACM,主办的国际大学生程序设计竞赛,(,International Collegiate Programming Contest,),,简称,ACM / ICPC,,自从,1977,年开始至今已经连续举办,30,届其宗旨是提供一个让大学生向,IT,界展示自己分析问题和解决问题的能力的绝好机会,并成为一个有效的途径,让下一代,IT,天才可以接触到其日后工作中将要用到的各种软件。

      现在,,ACM / ICPC,已成为世界各国大学生中最具影响力的国际计算机赛事2024/10/7,7,ACM/ICPC in China,,中国大陆高校从,1996,年开始参加,ACM,国际大学生程序设计竞赛亚洲预赛前五届中国赛区设在上海,由上海大学承办;,,2002,年由清华大学和西安交通大学承办;,,2003,年由清华大学和中山大学承办2004,年由北京大学和上海交通大学承办2005,年由四川大学、北大和浙大承办2006,年由上海大学、清华和西电承办2024/10/7,8,如何比赛,?,,,3,人组队,,可以携带诸如书、手册、 程序清单等参考资料;不能携带任何可用计算机处理的软件或数据、不能携带任何类型的通讯工具;,可能收到的反馈信息包括:,Compile Error,--,程序不能通过编译Run Time Error,--,程序运行过程中出现非正常中断Time Limit Exceeded,,,--,运行超过时限还没有得到输出结果Wrong Answer,--,答案错误Presentation Error,,,--,输出格式不对,可检查空格、回车等等细节Accepted,--,恭喜恭喜!,,2024/10/7,9,首先根据解题数目进行排名。

      如果多支队伍解题数量相同,则根据总用时加上惩罚时间进行排名总用时和惩罚时间由每道解答正确的试题的用时加上惩罚时间而成每道试题用时将从竞赛开始到试题解答被判定为正确为止,其间每一次错误的运行将被加罚,20,分钟时间,未正确解答的试题不记时如何排名?,2024/10/7,10,比赛形式,,1,支队伍,1,台机器(提供打印服务),,上机编程解决问题(可带纸质资料),,实时测试,动态排名,,试题,,6-10,题,,全英文(可以带字典),,,省以下比赛用中文,,时间:持续,5,个小时,2024/10/7,11,ACM,队队员的基本原则,基本要求,,人品好,,愿意花时间在这项赛事上,,有团队合作精神,,能力要求,,程序设计与算法分析,,英语科技文献阅读,,数学,2024/10/7,12,,,2024/10/7,13,如何入门呢,?,2024/10/7,14,ACM,题目特点,:,,由于,ACM,竞赛题目的输入数据和输出数据一般有多组(不定),并且格式多种多样,所以,如何处理题目的输入输出是对大家的一项最基本的要求这也是困扰初学者的一大问题下面,分类介绍:,2024/10/7,15,第二部分,基本输入输出,2024/10/7,16,输入,_,第一类:,输入不说明有多少个,Input Block,,以,EOF,为结束标志。

      参见:,HDOJ_1089,,, ,,int main(),,{,,int a,b;,,while(scanf("%d %d",,,},,2024/10/7,18,本类输入解决方案:,C,语法:,,,while(scanf("%d %d",&a, &b) != EOF),,{     .... },,,C++,语法:,,,while( cin >> a >> b ) {     .... },2024/10/7,19,说明(,1,):,Scanf,函数返回值就是读出的变量个数,如:,scanf( “%d %d”, ,如果只有一个整数输入,返回值是,1,,如果有两个整数输入,返回值是,2,,如果一个都没有,则返回值是,-1,EOF,是一个预定义的常量,等于,-1,2024/10/7,20,输入,_,第二类:,输入一开始就会说有,N,个,Input Block,,下面接着是,N,个,Input Block, 参见:,HDOJ_1090,,, ,,int main(),,{,,int n,i,a,b;,,scanf(,",%d,",,,,for(i=0;i> n; for( i=0 ; i

      参见:,HDOJ_1091,,, ,,int main(),,{,,int a,b;,,,while(scanf("%d %d",&a, &b) &&(a!=0 && b!=0)),,printf("%d\n",a+b);,,},上面的程序有什么问题?,2024/10/7,25,本类输入解决方案:,C,语法:,,,while(scanf("%d",&n) && n!=0 ),,{     .... },,,C++,语法:,,,while( cin >> n && n != 0 ) {     .... },2024/10/7,26,输入,_,第四类:,以上几种情况的组合,,, 参见:,HDOJ_1048,,, buf[20];  gets(buf);,,,,C++,语法:,,如果用,string buf;,来保存:,,,getline( cin , buf );,,,如果用,char buf[ 255 ];,来保存:,cin.getline( buf, 255 );,2024/10/7,29,说明(,5_1,):,scanf(“ %s%s”,str1,str2),,在多个字符串之间用,一个或多个空格,分隔;,,若使用,gets,函数,应为,gets(str1); gets(str2);,字符串之间用,回车符,作分隔。

      通常情况下,接受,短,字符用,scanf,函数,接受,长,字符用,gets,函数而,getchar,函数每次只接受,一个,字符,经常,c=getchar(),这样来使用2024/10/7,30,说明(,5_2,):,cin.getline,的用法:,getline,是一个函数,它可以接受用户的输入的字符,直到已达指定个数,或者用户输入了特定的字符它的函数声明形式(函数原型)如下:,,,istream,,不用管它的返回类型,来关心它的三个参数:,,char line[],: 就是一个字符数组,用户输入的内容将存入在该数组内int size :,最多接受几个字符?用户超过,size,的输入都将不被接受char endchar :,当用户输入,endchar,指定的字符时,自动结束默认是回车符2024/10/7,31,说明(,5_2,)续,结合后两个参数,,getline,可以方便地实现: 用户最多输入指定个数的字符,如果超过,则仅指定个数的前面字符有效,如果没有超过,则用户可以通过回车来结束输入char name[4];,,cin.getline(name,4,'\n');,,由于,endchar,默认已经是,'\n',,所以后面那行也可以写成:,,cin.getline(name,4);,2024/10/7,32,思考: 以下题目属于哪一类输入?, Number,)如果用最简单的算法,则有一个很显然的问题:如何保存计算后的阶乘?,,如果用大数类,则显然小题大做!,,,思考:,如何解决呢?,2024/10/7,34,再思考:,hdoj_1013,(,Digital Roots,)貌似简单,但是有陷阱在里面。

      提示:输入数据可能很长,能按照整形进行处理吗?,2024/10/7,35,输出,_,第一类:,一个,Input Block,对应一个,Output Block,,,Output Block,之间,没有,空行 参见:,HDOJ_1089,,,     .... printf("%d\n",ans);,,},,,C++,语法:,,,{     ...     cout << ans << endl; },2024/10/7,37,输出,_,第二类:,一个,Input Block,对应一个,Output Block,,每个,Output Block,之后都有,空行 参见:,HDOJ_1095,,, ,,int main(),,{,,int a,b;,,while(scanf("%d %d",&a, &b) != EOF),,printf("%d\n\n",a+b);,,},2024/10/7,39,解决办法:,C,语法:,,,{     .... printf("%d\n\n",ans);,,},,,C++,语法:,,,{     ...     cout << ans << endl << endl; },2024/10/7,40,输出,_,第三类:,一个,Input Block,对应一个,Output Block,,,Output Block,之间,有,空行。

      参见:,HDOJ_1096,,, ,,int main(),,{,,int icase,n,i,j,a,sum;,,scanf("%d",,,for(i=0;i

      2024/10/7,56,2024/10/7,57,学习方式,练习,->,总结,->,练习,->,总结,->……,,2024/10/7,58,实验室会在下个学期举行招新希望你们能下去好好自学,做题!,,做题数多的人优先考虑!,See you!,。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.