ACM 浙大内部培训课件.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文档。上传文档
查看更多
ACM浙大内部培训课件ppt课件

MSTC课堂 一支强队需要的角色 Leader/Coordinato(协调比赛进程) Reader(发现题目隐讳的涵义) Thinker(逻辑能力强, 收集其他队员意见) Programmer/Debugger(反应快/稳,细心) Helper(协助比赛, 查错, 验证数据等) 参考书籍 主要参考书籍 《C++ Primer》 《C++ 标准程序库》 《算法导论》 《算法艺术与信息学竞赛》 《组合数学》 《计算几何》?? 历届国家集训队论文 时空复杂度的分析 常见题型 Dynamic Programming(动态规划) Greedy(贪心) Complete Search(穷举) Flood Fill (种子填充) 常见题型 Shortest Path (最短路径) Recursive Search Techniques (回溯) Minimum Spanning Tree (最小生成树) Knapsack(背包) 常见题型 Computational Geometry(计算几何) Network Flow(网络流) Eulerian Path (欧拉回路) Two-Dimensional Convex Hull (二维凸包) 常见题型 BigNums (大数) Heuristic Search(启发式搜索) Approximate Search (近似搜索) Ad Hoc Problems(杂题) 枚举法 Pizza Anyone? (ZOJ 1219) 题目大意: 你需要为你和你的朋友们订一个皮萨。每个朋友都会告诉你他们想和不想放进皮萨里的东西。 你是否能订一个皮萨,让他满足每个人至少一个条件。 假设一共有16种东西可以放进皮萨。 贪心法(Greedy) 栈和队列 栈:后进先出(LIFO) 队列:先进先出(FIFO) 字符串的输入与输出 排序 排序的种类: 交换排序,选择排序,插入排序,堆排序 希尔排序,快速排序,归并排序,桶排序 用C++实现排序 #includealgorithm 数组 a sort( a , a + 5 ); vector a sort( a. begin() , a. end() ); 并查集 Parity(ceoi99) 有一个01序列,长度=1000000000,现在有n条信息,每条信息的形式是-a b even/odd。表示第a位到第b位元素之间的元素总和是偶数/奇数。 你的任务是对于这些给定的信息,输出第一个不正确的信息所在位置-1。信息的数目不超过5000。 如果信息全部正确,即可以找到一个满足要求的01序列,那么输出n。 Parity(ceoi99) 从整个01序列肯定是无法入手的,因为它的长度高达109。 从范围比较小的n入手。也就是说我们需要对信息进行一些特殊的处理。 a b even/odd,那么将元素b指向a-1,边的权值是even/odd。 下面我们由样例来说明一下这个处理方法。 Parity(ceoi99)(肖天) 建立sum数组,sum[i]表示从1到i之和是奇(true)还是偶(false),sum[0]=false。这样题目中给的任意问题(a,b)的答案都可以用sum[b] xor sum[a-1]表示。 开始我们并不知道sum[1..n]的值,不妨设为false,这时任意sum[a],sum[b]都是独立的。对于每对问答(a,b,c),都可以知道sum[b] xor sum[a-1]=c,由此把sum[b]和sum[a-1]联系起来。这步操作可以用并查集完成,对于问答(a,b,c)如果sum[a-1],sum[b]不属于一个集合就把它们并起来,否则如果sum[a-1] xor sum[b]不等于c则说明出现矛盾,输出总句数,退出。 对于不出现矛盾的sum数组,对于每个集合分为两个部分,我们指定其中一个部分为true,另一个部分为false,则可以确定sum数组,利用sum[i] xor sum[i-1]可以求出第i位的数字,由于不同集合之间没有问答出现,所以此数列是一可行解,证明算法正确。 堆(优先队列) 优点: 例题: 积水 一个长方形网格包含了n*m块地,每块地上面有1个长方体。每一个长方形盖住了一块地,地的面积是1平方英寸。相邻的地上的长方体之间没有空隙。一场大雨降临了这个建筑物,在建筑物的某些区域有积水产生。 给各方格高度, 求积水总量 分析 定义每块地上的 长方体的高度称为原始高度 积满水时的水面高度称为积水高度(高于积水高度的水一定会流走,低于积水高度的水一定流不走) 积水高度与原始高度之差为积水深度 如果一个长方体上不可能有积水,那么它的积水高度就

文档评论(0)

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

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

1亿VIP精品文档

相关文档