zju 2007校赛题解

发信人: kelefe (~_~), 信区: ACMICPC
标 题: [zz from freecity]zju校赛题解
发信站: 逸仙时空 Yat-sen Channel (Wed Apr 18 18:22:35 2007), 转信

发信人: liuyaoting (liuyaoting), 板面: Algorithm
标 题: 2007校赛总结
发信站: 飘渺水云间 (Wed Apr 18 15:12:13 2007), 转信

第一次做主裁判,也写点总结凑个热闹。

从最后的结果来看,这套题目的质量还是很不错的(ym下各位作者),难度分布也比较合理
。 在选题上我们花了相当多的时间,主要是为了保证大多数队在大多数时间里都能有事情
做~~~,所以八题中放了四道简单题,不过全做出来的话就能排前十了:,
因此谁都有机会?另外还有三道算法性比较强的中等题,是留给强队们拼杀的,算法也许都
能想到,全部过却也不容易,所以赛前保守估计冠军队六题左右,dasher看似慢吞吞不知不
觉竟然过了七道,很了不起:, 另外一道是根本就不能做的难题了,纯粹是为了给裁判们留
面子的?

B Magic Square - by riveria简单题
http://acm.zju.edu.cn/show_problem.php?pid=2835

给定n*n的方阵,判断是否是幻方

既然来参加比赛了,总得捧个气球回家, 最后有159个队过了这题,目的基本达到…唯一的
遗憾是红色的气球不够pp。。。

C Number Puzzle - by maone简单题
http://acm.zju.edu.cn/show_problem.php?pid=2836

给定一组数,求不大于m并且至少能被其中之一整除的数的个数

类似的题目应该很常见,就是列出所有组合然后用容斥原理计算,有一半的队伍成功拿到了
紫色气球。只是我没想到这会是第二简单的题目,也许因为这是预赛中Beautiful Number那
题的扩展?另外估计和题目放得比较前面也有关系

其实原题是求K个这样的数,那么二分这个m值就可以了。

G File Searching - by inspire 简单题
http://acm.zju.edu.cn/show_problem.php?pid=2840

给出一堆文件名,求dir命令所匹配的文件。命令中只有一个*。

最后时刻补充的一道简单题目,没过估计大部分是被这组数据卡了
Seatea
dir Seat*tea

F Find the Sequences - by adai 简单题,偏难?
http://acm.zju.edu.cn/show_problem.php?pid=2839

给定项数n(n <= 10),求出所有形如p^3+q^3(0 <= p, q <= m, m <= 50)的等差数列。

m,n非常小,暴力就可以了。首先列出所有p^3 + q^3这样的数,排序后枚举数列的一二项


这题难度估计偏差非常大,不知道是不是因为很多队没有仔细计算暴力的复杂度而不敢下手
?很可惜。

D Left Library Lift - by xuezaiyue 中等题
http://acm.zju.edu.cn/show_problem.php?pid=2837

从一楼出发,掷筛子决定每次移动的步数,到了顶楼或者底楼则改变方向继续前进,直到到
达目标楼层为止,求投掷的期望次数。

从目标楼层逆序考虑,这样可以将其余的楼层同等对待。除底楼和顶楼外,每个楼层有两个
变量,分别表示上行和下行方向到达该楼层的期望值,这样每个楼层及其之前的六个楼层都
可以列出一个方程。最后解方程组即可

图书馆的鬼电梯-___-背景非常有趣,题目也很不错。这道题是道坎,比赛中我们等了好久
终于盼到了情侣队的第五个气球,估计裁判们比他们还高兴。

A - Maximize Game Time - by cyang 中等题
http://acm.zju.edu.cn/show_problem.php?pid=2834

一颗节点带权的树,每次可以任意访问一个未被访问过的节点,求访问到节点n - 1时的最
大权值和,限制条件是当某个节点有两个儿子被访问时,得立即访问该节点。

树形dp,关键是要理清整个过程,恰当表示各种状态。很显然在访问第二个儿子节点前应尽
可能多地访问其余节点。仔细观察可以发现,第一个儿子节点及其子树均可被访问,其余的
则必须在保证该节点不被访问的前提下最优化其子树。

如果用 last[v]表示最后访问节点v的最优解,
hold[v]表示以v为根的子树在不访问v的前提下的最优解
subTree[v]表示以v为根的子树的权值和

那么状态转移方程
last[v] = max(last[v1] + subTree[v2] + sum{ hold[v other] })
hold[v] = max(last[v1] + sum{ hold[v other] })

trick是有可能是森林, 有个队就郁闷在这里,pat~~~


E Utopia - by liuyaoting 偏难
http://acm.zju.edu.cn/show_problem.php?pid=2838

题目模型很简单,给一棵高达50000节点的树,每次查询给定点C是否在其余两点A、B之间的
路径上,最多有500000次查询

观察可以发现:
1、如果点C当且仅当是其中一个节点的祖先时,那么C肯定在路径上
2、如果C是AB两点的共同祖先即CA(Common Ancestor),只要判断C是否为最低公共祖先(
LCA)即可。
3、否则不在路径上

对于问题1,只要dfs一遍记录每个节点的入栈时间intime及出栈时间outtime,然后判断其
包含关系即可
对于问题2,注意到某个节点的所有儿子节点从左到右的intime和outtime是递增的,因此可
以二分查找这个CA是否有更低的CA,如果有,说明其不是LCA

这题是我出的,赛前估计做出该题的队肯定能拿特等奖(按惯例特等奖要比第二名多做一题
,否则空缺),果然应验…其实这题也可以直接用RMQ求LCA,唯一过了的dasher就是这么做
的,估计很多队都想到这个算法,不过要实现不是很容易。关于这题赛后有很多讨论并得出
了多种解法,详
见88 Algorithm版

H Galaxy War - by guanyao 难题
http://acm.zju.edu.cn/show_problem.php?pid=2841

给一个弦图及n种颜色,求着色方案,相邻点的颜色不能相同

参考资料参见
http://10.10.2.252/gy/graph-00-01-e.pdf
及《算法艺术与信息学竞赛》270页

用sls的话说难题的目的就是在于让人识别这是道难题并且不在上面浪费时间,比赛中只有
一次提交,所以从这方面来说这是个很好的难题

谢谢大家捧场,省赛记得来玩,onsite或online~~~~~~~~~~~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值