版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ACM 赛 常用算法 浙江大学微软技术俱乐部彭鹏 1、 ACM/ICPC 简介 2、 竞赛中常见的16种题型 3、 时空复朵度的分析 4、 5、 竞赛中基木的数据结构与算法 ZOJ入门 2 ACM/IC PC 简介 ACM - Assocxatxon for Coixqputxng Machinery -美国计算机学会 ICPC - International Collegiate Programming Contest -国际大学生程序设计竞赛 ACM ACM (Assocxatxon for Computing Machinery) 成立于计算机诞生次年,是目前计算机学界中历史最 悠久、最
2、具权威性的组织,是推进信息技术专业人员 和学生提高技巧的主要力量。ACM通过提供前沿技 术信息和从理论到实践的转化,为其全球75万名成 员服务,并已经成为信息科技领域的一个基本信息来 O 4 ICPC ACM主办的国际大学生程序设计竞赛(International Collegiate Programming Contest),简称ACM / ICPC,自从1977年开始至今己经连续举办28届。其宗旨 是提供一个让大学生向HT界展示自己分析问题和解决问 题的能力的绝好机会,并成为一个有效的途径,让下一代 PT天才可以接触到其日后工作中将要用到的各种软件。 自1998年IBM成为该项竞赛的赞助商
3、以来,大赛规模不 断扩大。去年有个国家1582所大学派出4109支队伍 参加了30个赛点的分区赛,其中78支队伍参加今年4月在 上海香格里拉酒丿占举办的世界总决赛。 -现在,ACM / ICPC已成为世界各国大学生中最具影响力 的国际计算机赛事。 ICPC竞赛规则 三人组队 在46小时 编写C/C+或Java程序 解决6-10道题 完成题目数多的队伍优胜 完成题冃数一样的队伍罚时少的优胜 6 acm IBM Q Contwi iTTWwrl HMMor ICPC log A problem A thought A solution A balloon 中国各高校ACM开展情况 清华人学上海交通
4、大学 中山大学复旦大学 北京人学南京人学 浙江人学 8 浙江大学ACM集训队选拔标准 根据校内程序设计竟春的结采.现拟定集训队具体选拔标進如2 1.曾参加过去年4假集训的队员口愿入【嗣: 未参加过集训,但满足卜列条件若口愿入国: 2对ACM ICPC活动右极人热悄,视练习题如游戏;并且 3校内程序设计竞赛前5名,或者 4. 校内程序设汁竞赛第69名,并1L7JJ11J前在ZOJ通过至少100 题;或者 5. 校内程序设讣竞赛10-15名,并L7丿J1U就在ZOJ通过金少 150题;或者 6. 7月1日询在ZOJ通过至少200题。 如何建立一支强队 个人的能力 理论(儿何数论,动态规划,图论等)
5、 技术(编程) 队员能力上的互补 某论坛,一无聊男yy的中国“梦之队” 钱文杰(?)反应奇快,擅长随机化,贪心,Ncn贪心王 上海交大的“割懸手” 刘汝佳or吴嘉之 见多识广,做过的题必别人见过的题多 赵爽 10 支强队需要的角色 Leader/Coordinato(协调比赛进程) Reader(发现题I隐讳的涵义) ThinkerC逻辑能力强收集其他队员意见) Programmer/Debugger(反应快/ 稳细心) Helper(协助比赛,查错,验证数据等) 11 参考书籍 上要参考书籍 -C+ P rimer -C+标准程序库 -算法导论 -算法艺术与信息学竞赛 -组合数学 -计算儿何
6、? ? -历屈国家集训队论文 12 网络资源 httD:/acmzjueducn httD:/acmtimusru http:/acmsqunj httD:/acedeloscom/usacogate http:/ http:/wwwoibhorq/bbs/index,Dhp 13 时空复杂度的分析 时间复杂度的分析 空间复杂度的分析 14 g 阿 N NqN 咖2尸 必 2 3 3 10 33 110 32 100 7 10 100 664 4+14 IODO loaoQ 10 32 1000 9966 99317 31623 lOCOOOO 13 100 10000 132377 1765
7、033 10COCOO lOCOOOOOO 17 316 100000 1660964 27588016 31622777 10000000000 20 1000 1000000 19931569 397267426 laDooaoooo lOOOQQaDOOOOO 1.T minutoe 2 hOuTfl 1.1 days 1.6 weeks 3S months 3years 3.1 docadfis 3J oemurtea we 函数增长和运行时间 引川刘汝保 序列和7 符小 QQoratons per secondss Ipmbhm sb I tvnqN secondsseconds 1
8、0inscontirtfunc 1q32linstantinstart weeksIhourshoursnever hourssxo 仇 ds孔8ndecodes BocondsinsXrftinctantwaakc 15 常见题型 Dynamic Programming (动 态规划) Greedy (贪心) Complete Search (穷举) Flood Fill (种子填充) 16 常见题型 Shortest P a th (最短路径) Recursive Search Techniques (回溯) Minimum Spanning Tree (最小 生成树) Knapsack
9、(背包) 17 常见题型 Computational Geometry (计算几何) Network Flow (网络流) Eulerian Path (欧拉回路: Two-Dimensional Convex Hull (二维凸包) 19 BigNums (大数) Search (启发式 常见题型 Heuristic 搜索) Approximate Search (近 师索) Ad Hoc Problems (杂题) 19 ga盼(总共2阀) 滕动态規划 金心 图论 廿草几何数学阿豊数麟柯 #也 2630 10 10 Ifi15436 47 旳占比削 12.75% 14. ns 4.9W 4
10、.9QX ?. 35% 1 7.35S 2L0弘 2.MM 23.04S 20 枚举法 又叫穷举法,它利用了计算机计算 速度快且准确的特点,是最为朴索 和有效的一种算法。 不是办法的办法 但有时却是最好的办法 21 Pizza Any one? (ZOJ 1219) 题冃大意: 你需要为你和你的刖友们订一个皮萨。 每个朋友都会告诉你他们想和不想放进皮萨 里的东西。 你是否能订一个皮萨,让他满足每个人 至少一个条件。 假设一共有16种东西可以放进皮萨。 22 24 216 65536 足个对计算机彳H 小的数 J 23 贪心法(Greedy) 枚举法的时间效率很低,贪心法恰恰与英 相反。并1L贪
11、心法的程序也很好实现。 无数论文都指责贪心法往往得不到问题的 绝壯高手与普通高于的差距所在。 矩阵胚理论(详情请参考算法导论) 栈和队列 栈:后进先出(LIFO) 队列:先进先出(FIFO) 25 26 字符串的输入与输出 Z 在输入数据达到iM时, cin. cout将比scanf, printf/H速应匕何明显 的劣势 / C+常用头文件 或 哪种读入吏快? 字符串的读入L r char s100;scanf(%s,s); string 0紺ing a; cin a; 排序 排序的种类: 堆排序 桶排序 27 交换排序,选择排序,插入排序, 希尔扌非序,快速排序,归并排序, 用C+ +实现
12、排序 #include 数组a sort( a , a + 5 ); vector a sort( a. beginO , a. end(); 28 并査集 并查集是一种树型的数据结构,川 于处理一些不相交集合的合并问题。 并查集的左耍操作有 1 合并两个不和交集合 2 判断两个元素是否属于同一个集合 3 路径压缩 29 P arity(ceoi99) 有一个01序歹1,长度 = 1000000000见 沁有n条信息f每条信息的形式是一a b even/oddo表示第a位到第b位元素之间 的元素总和是偶数/奇数。 你的任务是对于这些给定的信息,输出第 一个不正确的信息所在位置7。信息的数 目不
13、超过5000。 如果信息全部正确,即可以找到一个满足 要求的01序列,那么输出n。 P arity(ceot99) 从整个01序列肯定是无法入手的,丙为它 的长度高达109。 从范围比较小的n入手。也就是说我们需要 对信息进行一些特殊的处理。 a b even/odd,那么将元索匕指向a-l, 边的权 ffiteven/oddo 下而我们由样例来说明一下这个处理方法。 31 Parlty(ceoi99)(肖天) 建立sum数组 sumi表示从1到iZ和足奇(true)还是偶 (false) . sum0=falseo这棉题U中给的任意问题(可b) 的答案都可以rnsumb xor sumal表
14、示。 开始我们并不知ifisuml.n的值,不妨设为false,这时任意 sumaLsumb都是立的。对T毎对问答(a.b,c)者*可以 知道sumbl xor suma-ll=cj|此把sumfb和sumal 联系赴來。迖步操作町以用升住集完成,对问答(a,b,c)如 果SLimalbsumb不属于一个集介就把它们并起來,否则 如果sumFa-l xor sumb4个部分为false.则口J以确泄 sum数纽,利用sumi xor sumi-liiji求出制彳的薮字, 山于不同集合Z间没右询答出现,所以此数列是一町行解,证 呦算法正确。 32 堆(优先队列) 优点: 动态维护一组数据屮最小(
15、大)的一个 实现简单 数组维护 33 一个长方形网格包含了n*rn块地,毎块地上ifii有1个 长方体。每一个长方形盖住了一块地,地的血积足1 平方英寸。相邻的地上的长方体2间没冇空隙。场 大雨降临了这个建筑物,在建筑物的某些区域有枳水 产生。 给各方格高度,求积水总量 34 分析 定义每块地上的 -长方休的高度称为原始高度 -积满水时的水Iffi高度称为积水高度(咼于积水 高度的水一定会流走,低于积水高度的水一定 流不是) -积水高度与原始高度之差为积水深度 如果一个长方体上不町能有积水,那么它 的积水高度就等于它的原始高度。 最外圈不能积水,积水高度等于原始高度 35 分析 由外而内计算。
16、每次选取外围的格子中积水高度 最低的一个格子X,考虑它周用所有在网格内部的 格fy -想彖不断的往X和y里注水,但是X的积水高度固定(想 彖该高度处有一个小孔),因此 -如果y的原始高度不小丁-X的积水高度,那么它的积水 高度就是它的原始高度 -如果y的原始高度小丁-X的积水高度,那么它的积水高 度就等于X的积水高度 每次用堆取出X进行计算,O(mnlogmn)o 36 哈希表(Hash) 理论上查找速度最快的数据结构之一 缺点: 需要犬量的内存 需要构造Key 37 Hash表的实现 数组 冲突解决法 开散列法 闭散列法 C+ sgi sti 实现 38 Hash Key的选取 数值: 方法
17、一:直接取余数(一般选取质数M垠为除 数) 方法二:平方取屮法,即汁算关键值的平方, 再取屮间位形成一个人小为丫的表 是多少? 40 39 字符串: 方法一: 折叠法: 方法二: 即把所佇字符的ASCII码加起来 ELFhash 函数 int ELFhash( char* key ) unsigned int h 0; while( *key ) h = ( h 4 ) + *key+; unsigned long g = h h return h % M; 二分搜索树 普通的二分搜索树 时1可复杂度:(log, n) 缺点: 容易出现不平衡的情况 AVL Tree , Splay tree
18、,红黑树 树堆(Treap) Trea p = Tree + hea p 每次插入/删除结点的时候,给结点随机 分配一个优先级,止Trea P关于优先级形 成个堆的同时,关于关键码形成BST 跳跃表、B树 跳跃表(Skiplists) Srch path MIL 25 r- 刁 7| -S3-: E-S3- 2? oHgigl iir, 17 ic inserted qfib his&Jig updar ptnnrers w gf sa 3HZ0 IgR-rnR-l rq-|2fira-t 43 线段树 在一类问题中,我们需耍经常处理 町以映射在一个坐标轴上的一些固定线 段,例如说映射在OX轴上的线段。IIT- 线段是可以互相覆盖的,有时需要动态 地取线段的并,例如取得并区间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022年大学助学金贫困申请书7篇
- 收费工作计划
- 2024年版劳务外包服务协议典范版B版
- 2024年中国夜光漆市场调查研究报告
- 2024年中国丝绒制品市场调查研究报告
- 2025建筑工程材料采购合同范文
- 中班四月月计划
- 中班下学期备课本前面教育计划
- 2024年甲乙双方房屋租赁合同及附属协议
- 2025标准车辆买卖合同模板
- 山西省晋中市各县区乡镇行政村村庄村名居民村民委员会明细
- 养老机构护理管理制度与规范
- DB31∕T 875-2015 人身损害受伤人员休息期、营养期、护理期评定准则
- 08S305-小型潜水泵选用及安装图集
- 工程监理企业各部门岗位职责
- 取暖器产品1油汀ny221218试验报告
- 国家开放大学电大《建筑制图基础》机考三套标准题库及答案3
- 雅马哈PSR-37中文说明书
- 一汽大众新员工三级安全教育(入厂级)
- 最新X公司事业部建设规划方案
- 十一学校行动纲要
评论
0/150
提交评论