URAL题解 wjy_ural.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
URAL题解 wjy_ural

IOI2004中国国家集训队第一轮训练 泛做报告表格 URAL http://acm.timus.ru/ 请大家尽量仔细的填写下列表格。基本要求是自己越推荐的题目应该写得越多。如果觉得没什么意思就只写算法大意(一两行即可)和时空性能。推荐的题目不用太多,否则就没有比较意义了。加红的是我比较推荐的题目,可以先看,不过由于我自己看得并不是很仔细,想得也不深入,可能会有错误的推荐或者漏掉好题,只是起到一个参考作用。1200-1282的题目我还没有仔细阅读与思考,这里就不推荐了,请大家自己完成表格。 请注意:如果题目没什么新意一定不要在推荐程度里加五星。凡是有加五星的都代表有一定的闪光点。需要剪切★的,这里提供一堆:)★★★★★★★★★★★★★★★★★★ 编号 题目名称 题目和简要算法描述 时空性能 推荐程度 题目评价 1029 Ministry 按层动态规划,一层当中也可以用动态规划。 O(mn) ★★★ 双重动态规划 1030 Titanic 计算几何 1033 Labyrinth 一次bfs就可以了 1037 Memory Management 模拟 1040 Airline Company 构造。对图进行一次dfs,按照访问的顺序为每条边标号。如果这种标号方法行不通,则NO。 O(m) ★★★ 与数学知识结合的构造题。 1041 Nikifor 贪心。每次选择价值最小的且与当前所有向量线性无关的向量。虽然ac了,但不大会证明。 O(mn) ★★★ 运用到线性代数的知识,还是有点意思的。 1042 Central Heating 解模线性方程 O(n3) ★★ 比较老的题目了。 1043 Cover an Arc 计算几何。 ★★ 要注意一些细节。 1045 A funny game 把无根树化成以起点为根的有根树。然后用博弈的知识解决。 O(n) ★★ 1050 Preparing an article 复杂的字符串处理 1053 Pinocchio 答案就是这些数的最大公约数。 O(nlog(maxlongint)) ★★ 1054 Hanoi Tower 考虑最大的盘子,如果没有被移动过,就不管了;否则,答案加上2的盘子尺寸次方,并且可以算出其它盘子的位置。这样可以按照尺寸从大到小递推计算。 O(n) ★★ Hanoi是递推算法的典范,涉及它的题目很多都可以用递推思想解决。 1055 Combinations 对每个要乘的或要除的数先分解质因数,然后处理。 O(n*sqrt(n)) ★★ 1058 Chocolate 如果线段的一个端点在多边形的顶点上,则枚举另一个顶点所在的边即可。否则两个端点都在边上,枚举这两条边,可以证明线段与这两条边的夹角相等,这样再用一次二分查找即可。 O(n2log(max)) ★★★★ 涉及几何知识。运用极限化思想化无限为有限。 1062 Triathlon 线性规划。如果选手I能击败选手j,就相当于L1/(v1i)+L2/(v2i)+L3/(v3i)L1/(v1j)+L2/(v2j)+L3/(v3j)。消去L3,得到形如a*L1+b*L2+c0(0)的不等式。这个不等式可以看作一个半平面,原题就是要我们求若干个半平面的交。可以用切割凸多边形的方法处理。 O(n2) ★★★★ 很好的题目。先要从中抽象出线性规划的模型,然后用计算几何的知识求解。 1064 Binary Search 递归搜索一边就可以了。 1065 Frontier 可以根据一座纪念碑的位置给边定向,使得这条边的起点在终点的逆时针方向。对于每座纪念碑,都进行这样一次定向操作。如果某条边有两个方向,说明这条边将把纪念碑拆成两部分,就不考虑它。至此,原问题转化为图论模型——求最短回路。 定向操作O(mn) 求最短回路O(n4) ★★★★ 计算几何与图论相结合。很好的题目。 1066 Garland 可以证明一定有一个点的高度为0。枚举这个点,用二分查找法求出其它点的高度。 O(nlog(max)) ★★★ 看上去像是数学题。其实可以用一般的算法解决。 1067 Disk Tree 模拟 1069 The prufer code 构造法。一开始的时候,叶子结点显然就是那些不在序列中的结点。把序列扫描一遍,对序列中的每一个结点把当前叶子结点中编号最小的分配给它做孩子。处理完这个结点后,如果发现这个结点在后面的序列中没有出现,则把它也加到叶子结点的集合中。叶子结点的集合可以用优先队列实现。 O(nlogn) ★★★ 构造需要费一点脑筋,而且还考察了堆的数据结构。 1071 Nikifor-2 枚举 1075 A thread i

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档