程序设计与竞赛介绍 .pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计与竞赛介绍

程序设计竞赛介绍 刘俊杰 07.10 ACM/ICPC简介 ACM国际大学生程序设计竞赛面向世界各高校,分区域预赛和国际决赛两个阶段进行 正规比赛以三人为一组比赛,学校的程序设计竞赛为个人赛,也是校队的选拔赛 正规赛题为英文题,学校比赛用中文题. 竞赛对知识和技能的要求 扎实的编程功底 数据结构:包括链表、栈、队列、树、图等的实现与应用。 基本算法:包括排序、查找、递归、深度广度优先有哪些信誉好的足球投注网站、动态规划,以及实现数据结构操作中的各种算法等。 其它:图论、数论组合数学、计算几何等 国内外大学ACM的online judge: acm.fzu.edu.cn/ 福州大学 acm.fjnu.edu.cn/ 福建师大 acm.pku.edu.cn/JudgeOnline北京大学 acm.tju.edu.cn/toj 天津大学 acm.uva.es 西班牙的 Universidad de Valladolid acm.timus.ru 俄罗斯乌拉尔大学 以上各大学的站点有着大量的竞赛题目,并可在线提交,是ACMer的主要操练场。 编程风格的差异 平时编写的代码注重代码的易读性和规范性,而竞赛编写的代码注重代码的高效性(运算高效,代码精简) while(scanf(%d %d,N,M),N M) {…} 在竞赛中是一段简洁的好代码,而在平时的编程中是不提倡的 数据的输入输出 ACM竞赛中数据的输入输出使用标准输入输出,但读入形式与读文件相类似。可以把数据的输入输出理解为从一个文件读入数据,从另一个文件输出数据,但用的语句是标准输入输出的语句。 竞赛中常用的输入输出语句是scanf, getline, printf,而非cin, cout(执行效率高) scanf scanf()也是有返回值的,它返回匹配的个数。当读到文件尾时返回-1。 有时程序要求读入多组数据直到文件尾,可用如下语句使代码精简: while(scanf(…)!=-1){…}或 while(scanf(…)!=EOF){…} 常用库函数 说明:只对一些常用库函数做简要说明或列举,详细的使用方法请查找其它资料。都是C中的库函数,但在C++中也基本可使用,似乎不用加include也可用^____^ 字符串转换 atoi/atol(const char *),返回整数 atof(const char *),返回double,不是float itoa(int, char *, int)其中第一个数为待转换数,第二个为buf,最后一个为基数,返回buf 常用库函数 long strtol(char * ps, char ** endp, int b) strtol()会将参数ps字符串根据参数b来转换成长整型数,b为基数。程序会扫描参数ps字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时(‘’)结束转换,并将结果返回。若参数endp不为NULL,则会将遇到不合条件而终止的ps中的字符指针由endp返回。 strtoul是strtol的无符号版 strtod返回double,其没有第三个参数 常用库函数 strlen, strcpy, strcmp, strcat, 需要#includestring.h memset, memcpy, memmove 需要#includememory.h或者string.h 区别 注意,memset(dest, int, size_t) 赋初值一般只有0和-1可以用memset 例: int dest[100]; memset(dest,0,sizeof(int)); qsort qsort(array, n, elemsize, comp)用于排序的函数,用的算法是快排,时间复杂度为O(nlogn),在正常情况下基本够用。 参数说明:array待排数组,n数组元素个数,elemsize数组元素的大小,comp比较函数。基中比较函数声明为:int comp (const void *arg1,const void *arg2)当arg1排在arg2之前时返回-1,相等时返回0,之后返回1。 qsort就是把数组array中的前n个元素按comp函数的比较规则排序。 qsort 其它一些编程技巧 (1)逗号运算符的使用: C/C++中’,’表达式按从左到右顺序求值,表达式的值是最后一个分句的值,每个分句必须是表达式,不可以是语句。逗号表达式保证从左到右依次求值。 int a=1,b=2,c; c=a+1,b+1; printf(“%d”,c); 其它一些编程技巧 (2)freopen函数的使用: 有时在调式程序时,输入的样例数据很多,若每次都用手动输入速度太慢。可用freopen函数把

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档