赛前裁判包括看过题的姐姐一致表示题目有点难
赛前估计的难度顺序是A I E B F C G D H
实际的难度顺序是A I E B G F C D H,除了对G的难度估计过高外其他几乎一样
赛前估计所有题目都有提交
Bingo!
赛前估计通过做多的是A题
Bingo!
赛前估计D和H都没有队伍过
Bingo!
赛前估计第一名比第二名多一题或者一题以上
Bingo!
赛前估计有1个7题
Bingo!
A Clock 简单 49.47% (188/380) / 76.87% (472/614) (分别为校赛与同步赛,下同)
可以在二维坐标上画出时间/角度的图,可以发现角度是从0到180的线性递增,然后是
180到0的线性递减,然后一直循环。因此可以断定答案是和x成正比的。当然,直接观
察sample也可以发现这一点。如果不怕麻烦的话,也可以把这题当成几何/物理/数学
题来做。
B CAPTCHA 中等偏易 22.22% (12/54) / 21.80% (87/399)
题目保证了每个字母的点阵中,各个点之间一定是联通的;还有在大矩阵中,每个字母
之间一定是不联通;再还有,矩阵中的只包含合法的字母。这样一来,这个题就是一个
纯粹的模拟题了,在矩阵中每次用floodfill找一个联通块,然后枚举判断下这个联通
块是什么字母即可。关于每个字母的表示,可以采用的是把每个字母的每个点看成一个
相对的二维坐标(x和y坐标分别为相对这个点阵中所有点的x/y坐标最小值的偏移量)。
把这些坐标排序后就可以用来表示一个字母了,最后别忘了旋转的情况。当然,直接人
肉每个字母的话会比较累,我的做法是保存一个包含所有字母的大矩阵(从题目里直接
copy下来,填充一下空白字符,让每行一样长即可)。然后对这个字母按照从上到下,
从左到右的顺序,把每个联通分类floodfill处理一遍,这个顺序就对应着字典序。
这题的难度比预期的要高,很多人对这种程度复杂的模拟题就没有什么头绪了,看来大
家还要多向Fire学习,加强Coding能力。
C Runaway Robot 中等 5.88% (2/34) / 6.96% (11/158)
这题的原型在
http://www.hacker.org/runaway/。当然原型是只要走出边界即可,而这
题是要求走到最下角。考虑一个循环指令中有a个R和b个D,则每个循环周期都是在原图
的某一个(a+1)*(b+1)的矩形中行走,假设这些小矩形分别是M1, M2, … Mk,再假设
终点在这样的矩形上的坐标为(x y)。则在除了最后一个的图中,我们都要找到一条左
上角到右下角的路,而在最后一个图中要找到从左上角到终点的路。再注意,因为是循
环指令,所以这k个矩形中,机器人所走的路线必须是一模一样的。因此,我们可以把
这k个图叠加起来,如果在这个叠加图上能找到左上角到(x y)的路,以及(x y)到右下
角的路,则说明存在一条路,从原来的左上角走到右下角。好了,剩下的工作就是先
枚举指令长度,再枚举R或者D的个数,然后套用上面的方法判断是否有解。不过这样
的枚举,总的复杂度会比较大,注意到,对于很多的(a b)组合,原图的终点根本不会
出现在路线上的某个(a+1)*(b+1)矩形上,把这些都剪枝掉后,剩下有解的情况就不多
了。
这题的难度也比预期的要高,只有2个队伍过的,其实还是因为这个枚举的思路确实不
好想了,总之这个解法还是比较巧妙的。
D Game 难 0.00% (0/35) / 4.83% (9/186)
这题看似是个博弈题,其实是个一般图最大匹配的问题。首先,原图上如果两点之间
曼哈顿距离小于等于L,则把它们连边。然后对图的每一个联通分量求一般图的最大匹
配,如果存在某个图的一般图最大匹配不是完全匹配,则Fire一定会输;反之,如果
每个联通分量的一般图最大匹配都是完全匹配,则Lam一定输。假设某个图的一般图最
大匹配是完美匹配(也就是这个图的N个点可以凑成N/2个pair,其中每个pair的两个
点之间有边),则无论Lam每次走哪个点,Fire只要走和那个点相匹配的点即可。反
之,如果图的一般图最大匹配不是完美匹配,则Lam可以任意选一个没有匹配上的点来
开始,然后Fire要么没有点可以选(输了);要么选某个有匹配的点,则Lam可以继续
选与其匹配的点。注意,Fire永远不可能选没有匹配的点,否则可以证明原图存在一个
更大的匹配。最后,关于一般图最大匹配的实现,大家在网上找资料即可。
E Murder in Restaurant 简单 8.14% (61/749) / 21.24% (337/1586)
这题数据规模比较小,因此只要看清楚题意,直接模拟即可。用数组维护当前的所有房
间情况,然后按照时间顺序一个一个check in和check out的请求。check in的时候,
房间满的时候就忽略check in请求,并且忽略对应的check out请求,否则直接找出一
个号码最小的空余房间分配。check out请求处理类似,总而言之,只要看懂提议,把
题目要求实现了,这题应该就能过。
这题可能题目的描述有点歧义的地方,但是在比赛中裁判尽量解释清楚了,下次看题的
时候会加油多注意这些地方。
F Strange Country 中等 9.52% (2/21) / 15.25% (27/177)
用dp[i]表示在前i张图中选路的最小cost,则dp[i] = min(dp[j] + Len(j+1 to i) *
(i – j) + 1),j = 0 to i-1。我们枚举i和前面哪些图选择同样的路,Len(j+1 to i)
表示从j+1到i的图都选一样的路时,路的最短长度。只要把这些图合并起来(只保留每
张图都有的边),然后求最短路即可。注意dp转移函数中最后一项+1表示这次选的路和
上次不一样,也就是题目中的CHANGE,因此当j选择0的时候,这个+1就没有了。
G Islands 中等 4.54% (5/110) / 8.11% (25/308)
这题首先要判断是否已经有多余的边了,如果有某些点的入度或者出度大于等于2了,
则肯定无解。否则的话,整个图可以分成x个独立点和y条有头尾的弧(环可以直接扔掉
),需要互相或者自己相接成环,但是不能有长度为1的环。这个问题有很多解决的方
法,一种是利用组合数加上错排公式;还可以用dp来计算:孤立点可以和另外一个孤立
点连起来组成一条弧,或者和一条弧链接起来组成一条弧,而弧也可以和别的弧组成一
条弧,或者把自己首尾连起来组成环。
H Break Out 难 0.00% (0/8) / 6.12% (3/49)
这题是个相当复杂的dp。首先,可以把问题分成击穿某列和不击穿某些两种情况来做,
然后要考虑到失去最后一条命的时候,后面那些不伤命的东西是打不到的(如果不是
最后一条命,这些东西在耗了一条命后还是能打到的,就是这个区别)。于是,对于
每一列,我们分是否击穿过,以及是否在这列使用最后一条命,这4种情况分别预处理
出在这一列消耗x条命的时候最多能拿多少分。然后按照常理,我们要先枚举击穿哪列
,然后枚举最后一条命用在哪列,再然后进行一个背包。但是这样总的复杂度是200^5
,显然是无法接受的,需要进行优化。优化的关键就是把枚举的两个东西放到dp的过程
中,用dp[i][j][k]来表示状态,i表示当前处理到第几列,j表示之前是否击穿过,k
表示之前是否有一列使用了最后一条命,这样就把复杂度降低到了200^3的级别。当然
,整个写的过程还是非常复杂的,不太容易过。
题外话:作者vb怕有人比赛时候没题可做太无聊,特意在题目里加了游戏的applet,(
仅校内赛)不知道大家发现没有,玩的开不开心,还有,卡不卡?^^
I Circle 简单 8.70% (83/954) / 22.38% (392/1751)
这题唯一的trick是要验证一下所有点是否联通。所有点都联通,并且每个点的度为2,
则图就是一个环。
VegetableB
2010/04/10 at 9:45 下午
沙发ym……
[回复]
Hang Hang 回复:
四月 10th, 2010 at 9:51 下午
ym沙发……
[回复]
Navi
2010/04/10 at 9:48 下午
ym.. 顺便bs这里的反spam
[回复]
Hang Hang 回复:
四月 10th, 2010 at 9:51 下午
- -被span坑过的表示bsbs反spam的。。。
[回复]
quark 回复:
四月 10th, 2010 at 10:56 下午
表示这种反spam简单易行,实践证明比WP-SpamFree的cookie,session,js,UserAgent,Accept-Language等等乱搞更靠谱。
你可以在我那边留一个“hello world”试试看。
[回复]
watashi
2010/04/10 at 9:56 下午
ym 肉牛满面 555
[回复]
Hang Hang 回复:
四月 10th, 2010 at 9:59 下午
pat,你们的F啥情况呢
[回复]
watashi 回复:
四月 10th, 2010 at 10:11 下午
否知,我想到了算法,但后来完全没有管,debug也没帮忙
就比赛而言我们队今天问题非常严重,很多问题没想清就开始瞎写了,我也不知道自己很多时间在折腾什么……
不过就结果(和过程)而言还是很开心的(换到省赛的话,就大悲剧了,期待省赛吧)
[回复]
Hang Hang 回复:
四月 10th, 2010 at 10:13 下午
同期待省赛,史哥加油吧~
[回复]
Murphy 回复:
四月 12th, 2010 at 2:06 下午
F是我SB了啊……各种伤心…跳楼去算了
[回复]
Hang Hang 回复:
四月 12th, 2010 at 7:14 下午
各种momo~~
[回复]
zjut_DD
2010/04/10 at 9:57 下午
终于会做啦~~~题目太好啦~~YM博主HH……
[回复]
Hang Hang 回复:
四月 10th, 2010 at 10:00 下午
感谢,感觉题目质量确实还可以,期待省赛吧~~
[回复]
code6
2010/04/10 at 9:57 下午
突然发现F的DP好漂亮,写挫了….
[回复]
Hang Hang 回复:
四月 10th, 2010 at 10:01 下午
嗯,个人觉得这个题虽然不是太难,但是做法很不错~~
[回复]
zhymaoiing
2010/04/10 at 9:58 下午
果断膜拜
[回复]
Hang Hang 回复:
四月 10th, 2010 at 10:01 下午
膜拜……
[回复]
watashi
2010/04/10 at 9:59 下午
就校赛而言是有点难,不过题很好啊题很好,我们很弱啊我们很弱
[回复]
Hang Hang 回复:
四月 10th, 2010 at 10:04 下午
pat,话说4小时的话,会比较看临场的发挥
[回复]
【长颈鹿】鸭梨很大
2010/04/10 at 10:29 下午
晚上有人说cjlu = 长颈鹿大学。表示这名字很不错。。有请HH大牛过目,能否申请省赛改队名?
[回复]
Hang Hang 回复:
四月 10th, 2010 at 10:32 下午
orz长距离-_-
改队名估计比较难了,你可以试着让你们老师联系下,或者明年正式启用。
[回复]
quark
2010/04/10 at 10:50 下午
后半场各种脑残小白错误…… -,-||
[回复]
Hang Hang 回复:
四月 10th, 2010 at 11:02 下午
momo,结果完美,嘿嘿~
[回复]
AekdyCoin
2010/04/10 at 10:53 下午
围观仰慕……
[回复]
Hang Hang 回复:
四月 10th, 2010 at 11:02 下午
仰慕围观的AC大牛,下周省赛继续Happy~~
[回复]
RoBa
2010/04/10 at 11:09 下午
题目质量非常好,很赞的比赛
[回复]
Hang Hang 回复:
四月 10th, 2010 at 11:27 下午
感谢roba神牛的支持!欢迎继续期待下周六的省赛~
[回复]
Jsky
2010/04/10 at 11:27 下午
先膜拜HH! 再顶下博弈题! 题目思想都相当精髓!
[回复]
Hang Hang 回复:
四月 10th, 2010 at 11:41 下午
感谢对题目的支持,希望下周六继续关注省赛^^
[回复]
第十届浙江大学校赛比赛小结 by watashi@gensokyo | ゆっくりでいいさ
2010/04/10 at 11:29 下午
[...] 解题报告——《2010校赛 Judge’s View && 解题报告》 by hhanger。 PPS: [...]
liangjiaxing
2010/04/10 at 11:50 下午
只过了4道题的也过来围观一下解题报告。
想不到我们队也能去省赛。
[回复]
Hang Hang 回复:
四月 10th, 2010 at 11:55 下午
这次题目比较难呀,我觉得4题已经不错了,后面的第五第六确实比较有难度。省赛加油吧^^
[回复]
Dumbear
2010/04/11 at 12:02 上午
YM!
话说runaway恰好我前几天在hacker.org上通关了,所以今天……呵呵~~
话说hacker.org貌似大家都在玩?Break Out的截图貌似也是那上面的……
[回复]
Hang Hang 回复:
四月 11th, 2010 at 12:06 上午
嗯,我、C题作者,以及H题作者都是hacker玩家,不过好像都是半年多前的事情了^^
[回复]
VegetableB 回复:
四月 11th, 2010 at 4:27 上午
我最近又开始玩了= =
搞定了white noise…
我迟早会搞定那个螺旋环的……
[回复]
Hang Hang 回复:
四月 11th, 2010 at 11:12 上午
仰慕啊,等俺啥时候再回过头去搞一下- -
[回复]
Rest Valley » Blog Archive » 校赛又一年
2010/04/11 at 1:53 上午
[...] 解题报告推荐看hhanger裁判的版本,十分好。我这里是流水账,不要在这里期待什么 [...]
lccycc
2010/04/11 at 1:08 下午
膜拜HH大神!
偶喜欢那么多的图论题!
[回复]
Hang Hang 回复:
四月 11th, 2010 at 6:18 下午
仰慕下,貌似确实有很多图。。
[回复]
Lost
2010/04/11 at 9:54 下午
果断不会各种图…..
[回复]
Hang Hang 回复:
四月 11th, 2010 at 10:00 下午
仰慕单挑拿奖的
[回复]
Qinz
2010/04/11 at 11:25 下午
这地方相当热闹,我也来膜拜下~
题目确实不错~
[回复]
Hang Hang 回复:
四月 11th, 2010 at 11:55 下午
阿姨说不错,看来是真的不错~~
[回复]
Acong
2010/04/15 at 10:52 上午
ym师父大人。现在还能上哪里提交啊?好像Out Time了啵?
[回复]
Hang Hang 回复:
四月 15th, 2010 at 12:57 下午
可以去ZOJ题库交的,在最后的几道^^
[回复]
ZJU 2010校赛解题报告 « RoBa’s Blog
2010/05/10 at 12:51 上午
[...] Edit: 已经有官方完整版了 http://www.hhanger.com/blog/?p=438 [...]
SomeOne
2010/05/18 at 9:00 下午
这次比赛大部分题还是比较水的,除了H题写起来要久一点,D题想不到之外,其他都可以秒杀。
看了开头的预测,弱弱地问一句,ACM的比赛的题目题号和难度有比较明显的规律吗?为什么比赛前就可以预测H和D最难?
[回复]
Hang Hang 回复:
五月 18th, 2010 at 9:02 下午
Hello,我标题写着,这是Judge’s View,我是出题的,所以事先知道题目……
[回复]
SomeOne 回复:
五月 18th, 2010 at 10:01 下午
额。。。好像是。。。
还有个问题,一共有8道题目,为什么你同时预测有一支队做了7题,并且有2题都没有队伍过的?而且最后两个预测都正确的?
[回复]
Hang Hang 回复:
五月 18th, 2010 at 10:04 下午
因为一共有9个题……
[回复]
SomeOne 回复:
五月 18th, 2010 at 10:12 下午
额。。。我脑袋又短路了。。。
[回复]
UAreSoStrong
2010/07/16 at 2:51 下午
为什么我在AC代码上加个:“当点数为奇数时,输出NO。”就WA呢。。
[回复]
UAreSoStrong 回复:
七月 16th, 2010 at 2:52 下午
D题,Game
[回复]
Hang Hang 回复:
七月 16th, 2010 at 3:31 下午
点数为奇数的时候确实输出NO,没问题
可能你没有把后面的数据读完,直接return了,导致的WA
[回复]