《杭电acm初学者》ppt课件_第1页
《杭电acm初学者》ppt课件_第2页
《杭电acm初学者》ppt课件_第3页
《杭电acm初学者》ppt课件_第4页
《杭电acm初学者》ppt课件_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ACM ACM 程序设计程序设计计算机学院计算机学院 刘春英刘春英ACM入门入门初识初识ACM ACM (Association for Computing Machinery) 成立于计算机诞生次年,是目前计算机学界中历史最悠久、最具权威性的组织 ACM主办的国际大学生程序设计竞赛主办的国际大学生程序设计竞赛 (International Collegiate Programming Contest),简称,简称ACM / ICPC,自从,自从1977年年开场至今曾经延续举行开场至今曾经延续举行31届。其目的是提届。其目的是提供一个让大学生向供一个让大学生向IT界展现本人分析问题界展现本人分

2、析问题和处理问题的才干的绝好时机,让下一代和处理问题的才干的绝好时机,让下一代IT天才可以接触到其今后任务中将要用到天才可以接触到其今后任务中将要用到的各种软件。的各种软件。如今,如今,ACM / ICPC已成为世界各国大学已成为世界各国大学生中最具影响力的国际计算机赛事。非生中最具影响力的国际计算机赛事。非官方官方中国大陆高校从中国大陆高校从19961996年开场参与年开场参与ACMACM国际国际大学生程序设计竞赛亚洲预赛。大学生程序设计竞赛亚洲预赛。前六届中国赛区设在上海,由上海大学承前六届中国赛区设在上海,由上海大学承办;办;20022002年由清华大学和西安交通大学承办;年由清华大学和

3、西安交通大学承办;20032003年由清华大学和中山大学承办。年由清华大学和中山大学承办。20042004年由北京大学和上海交通大学承办。年由北京大学和上海交通大学承办。20052005年由四川大学、北大和浙大承办。年由四川大学、北大和浙大承办。20062006年由上海大学、清华和西电承办。年由上海大学、清华和西电承办。20072007年:北航、南航、吉大、西华年:北航、南航、吉大、西华l20032003年年9 9月,第一次参与省赛约请赛月,第一次参与省赛约请赛l20042004年年5 5月,浙江省月,浙江省“舜宇杯首届大学生程序设计大赛舜宇杯首届大学生程序设计大赛l20042004年年111

4、21112月,第月,第2929届届ACMACM亚洲区北京和上海赛区竞赛亚洲区北京和上海赛区竞赛l20052005年年5 5月月, ,浙江省第二届浙江省第二届“舜宇杯大学生程序设计大舜宇杯大学生程序设计大赛赛l20052005年年1111月月, ,参与中国大陆的三站亚洲区竞赛参与中国大陆的三站亚洲区竞赛l20062006年年5 5月月, ,浙江省第二届浙江省第二届“舜宇杯大学生程序设计大舜宇杯大学生程序设计大赛赛l20062006年年11121112月,第月,第3131届届ACMACM首尔、北京、上海和西安赛首尔、北京、上海和西安赛区竞赛区竞赛l今年今年l34月,举行校内大赛暨选拔赛l5月,参与

5、浙江省大学生程序设计大赛l11月,参与ACM/ICPC亚洲区竞赛至少参与45个赛区的竞赛l另外,每学期至少有三次月赛以及适当的练习赛如何竞赛?如何竞赛? 可以携带诸如书、手册、可以携带诸如书、手册、 程序清单等参考资料;程序清单等参考资料;不能携带任何可用计算机处置的软件或数据、不不能携带任何可用计算机处置的软件或数据、不能携带任何类型的通讯工具;能携带任何类型的通讯工具; 能够收到的反响信息包括:能够收到的反响信息包括: Compile Error - Compile Error - 程序不能经过编译。程序不能经过编译。Run Time Error - Run Time Error - 程序

6、运转过程中出现非正常中断。程序运转过程中出现非正常中断。 Time Limit Exceeded Time Limit Exceeded - - 运转超越时限还没有得到输出结果。运转超越时限还没有得到输出结果。 Wrong Answer - Wrong Answer - 答案错误。答案错误。 Presentation Error Presentation Error - - 输出格式不对,可检查空格、回车等等细节。输出格式不对,可检查空格、回车等等细节。 Accepted - Accepted - 祝贺祝贺!祝贺祝贺! 首先根据解题数目进展排名。假设多支队伍解题数量一样,那么根据总用时加上惩罚

7、时间进展排名。总用时和惩罚时间由每道解答正确的试题的用时加上惩罚时间而成。每道试题用时将从竞赛开场到试题解答被断定为正确为止,其间每一次错误的运转将被加罚20分钟时间,未正确解答的试题不记时。如何排名?如何排名?l竞赛方式l1支队伍1台机器提供打印效力l上机编程处理问题可带纸质资料l实时测试,动态排名l试题l6-10题l全英文可以带字典l时间:继续5个小时lACM竞赛l团队协作精神l即时提交,经过一切数据才干得分l全英文标题,标题调查范围广l校程序设计竞赛l个人编程才干的比拼l中文或者英文标题,调查编程根本功l根本要求l人品好l情愿花时间在这项赛事上l有团队协作精神l才干要求l程序设计l英语科

8、技文献阅读l数学 为杭电为杭电ACMACM代表队培育后备人才代表队培育后备人才 提高分析问题和运用计算机编程处提高分析问题和运用计算机编程处理问题的才干理问题的才干 培育必要的自学才干培育必要的自学才干 培育学生的协调和沟通才干培育学生的协调和沟通才干 领会学习的高兴领会学习的高兴由于ACM竞赛标题的输入数据和输出数据普通有多组不定,并且格式多种多样,所以,如何处置标题的输入输出是对大家的一项最根本的要求。这也是困扰初学者的一大问题。下面,分类引见:/showproblem.php?pid=1089lSample input:l1 5l10 20lSample ou

9、tput:l6l30l#includelvoid main()llint a,b;lscanf(“%d %d,&a,&b);lPrintf(“%d,a+b);l这就是下面需求处理的问题这就是下面需求处理的问题根本输入输出根本输入输出l输入不阐明有多少个Input Block,以EOF为终了标志。 参见:HDOJ_1089/showproblem.php?pid=1089#include int main() int a,b; while(scanf(%d %d,&a, &b) != EOF) printf(%dn,a+b); lC语法:l

10、while(scanf(%d %d,&a, &b) != EOF) l . lC+语法:lwhile( cin a b ) . lScanf函数前往值就是读出的变量个数,如:scanf( “%d %d, &a, &b ); 假设只需一个整数输入,前往值是1,假设有两个整数输入,前往值是2,假设一个都没有,那么前往值是-1。lEOF是一个预定义的常量,等于-1。l输入一开场就会说有N个Input Block,下面接着是N个Input Block。 参见:HDOJ_1090 /showproblem.php?pid=1090#include

11、int main() int n,i,a,b; scanf(%d,&n);for(i=0;in;i+) scanf(%d %d,&a, &b); printf(%dn,a+b); lC语法:lscanf(%d,&n) ; lfor( i=0 ; i n; for( i=0 ; in ; i+ ) . l输入不阐明有多少个Input Block,但以某个特殊输入为终了标志。l参见:HDOJ_1091 /showproblem.php?pid=1091#include int main() int a,b;while(scanf(%d %d,

12、&a, &b) &(a!=0 & b!=0) printf(%dn,a+b); 上面的程序有什么问题?上面的程序有什么问题?lC语法:lwhile(scanf(%d,&n) & n!=0 ) l . lC+语法:lwhile( cin n & n != 0 ) . l以上几种情况的组合 /showproblem.php?pid=1092/showproblem.php?pid=1093/showproblem.php?pid=1094l输入是一整行的字符串的参见:HD

13、OJ_1048 /showproblem.php?pid=1048lC语法:l char buf20; gets(buf); llC+语法:l假设用string buf;来保管:l getline( cin , buf ); l假设用char buf 255 ; 来保管: cin.getline( buf, 255 );lscanf(“ %s%s,str1,str2),在多个字符串之间用一个或多个空格分隔;l假设运用gets函数,应为gets(str1); gets(str2); 字符串之间用回车符作分隔。l通常情况下,接受短字符用scanf函数,接受长字符用gets函

14、数。l而getchar函数每次只接受一个字符,经常c=getchar()这样来运用。lgetline 是一个函数,它可以接受用户的输入的字符,直到已达指定个数,或者用户输入了特定的字符。它的函数声明方式函数原型如下:listream& getline(char line, int size, char endchar = n);l不用管它的前往类型,来关怀它的三个参数:lchar line: 就是一个字符数组,用户输入的内容将存入在该数组内。lint size : 最多接受几个字符?用户超越size的输入都将不被接受。lchar endchar :当用户输入endchar指定的字符时,

15、自动终了。默许是回车符。l结合后两个参数,getline可以方便地实现: 用户最多输入指定个数的字符,假设超越,那么仅指定个数的前面字符有效,假设没有超越,那么用户可以经过回车来终了输入。lchar name4;lcin.getline(name,4,n);l由于 endchar 默许曾经是 n,所以后面那行也可以写成:lcin.getline(name,4);/showproblem.php?pid=1018/showproblem.php?pid=1013l一个Input Block对应一个Output Block,Output Block之

16、间没有空行。 参见:HDOJ_1089/showproblem.php?pid=1089lC语法:l . printf(%dn,ans); l lC+语法:l . cout ans endl; l一个Input Block对应一个Output Block,每个Output Block之后都有空行。参见:HDOJ_1095 /showproblem.php?pid=1095l#include int main() int a,b; while(scanf(%d %d,&a, &b) != EOF) printf(%dnn,a+b

17、); lC语法:l . printf(%dnn,ans); l lC+语法:l . cout ans endl endl; l一个Input Block对应一个Output Block,Output Block之间有空行。 参见:HDOJ_1096 /showproblem.php?pid=1096l#include l int main()l l int icase,n,i,j,a,sum;l scanf(%d,&icase);l for(i=0;iicase;i+)l lsum=0;l scanf(%d,&n);lfor(j=0;jn;j+)ll s

18、canf(%d,&a);l sum+=a;llif(iicase-1)l printf(%dnn,sum);l elsel printf(%dn,sum);l l lC语法:lfor (k=0;kcount;k+) while () printf( %dn,result); if (k!=count-1) printf(n); lC+语法:l类似,输出语句换一下即可。/showproblem.php?pid=1016/showproblem.php?pid=1017lMain函数必需前往int类型(正式竞赛)l不要在for语句中定义类型l_int64不支持,可以用long long替代l运用了汉语的标点符号litoa不是ansi函数l 能将整数转换为字符串而且与ANSI规范兼容的方法是运用sprintf()函数l int num = 100; char str25; sprintf(str, %d , num);l另外,拷贝程序容易产生错误#include int main() int a,b; while(scanf(%d %d,&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论