昨天SRM 457的比赛时间挺不错的,但是结果人却格外的少,难道真如某人说的大家都复习考试去了?试试也证明:1.我还是深夜脑子比较清醒;2.我果然不会数数;3.图论太弱了
基本上就是,250暴力题秒杀,秒杀到没发现什么trick,结果room里一人用某case cha了8个人,我还不知道为啥那么多人会挂的……500数数,我找到一个方法,可行但是很麻烦,结果数到比赛结束还没数出来,不过赛后慢慢看啊看的终于看出bug,最后搞定了。1000的题是图论,比赛时没看,而且我觉得我赛后也一定搞不定,于是这次就缺1000的报告了。
1. 250P TheTriangleBothDivs
题目先给出一个时间的表示方法:”HH:mm GMTof”,其中HH是小时,mm是分钟,of是时区,从-9~+9,现在给你这样一个时间,其中HH mm of都可能是?,可以指定任意的值,求所有可能的时间中,对应的GMT+0时区最小的时间为多少。
这题如果你从贪心或者别的方向来考虑就败了,典型的div I 250暴力,观察发现,所有合法的时间一共有24 * 60 * 19 = 27360种,所以最简单的做法就是枚举所有的合法时间,看是否和给定的串相匹配,直接求出合法并且匹配中,对应GMT+0时区时间最小的一个即可。当然要注意一下时区转化时,加减小时导致的小于0和大于等于24的情况,我就是这里稍微卡了下,本来可以很快出来的。
这题另外一种普遍的做法是利用递归枚举所有的?的值,然后这样写的话就很容易挂,因为题目说不允许有GMT-0的情况出现,而直接递归枚举的时候,很容易漏考虑去掉这个情况,于是很多人挂了250都是因为这个。 事实证明还是要多观察,多暴力,可以既省时又难错。
2. 500P TheHexagonsDivOne
有上面的由7个六边形格子组成的图案,然后给定一个正整数n <= 150,然后需要往7个格子里面填数字,填的时候要满足3个条件:
1. 填入的数字都不相同
2. 所有数字大小为1 ~ 2n之间
3. 相邻格子的数字不能对n同余
问一共有多少种放法,两种方法旋转后一样则认为是同一种。
老实说,打开题目,看到这个六边形的图案,我就预料到了本场的悲剧,当我发现这是一个数数题的时候,我的脑子继而糊上加糊了。。。直接导致我想到了一个做法却因为脑子太乱写不出,写不对……
我的方法太麻烦了,我就稍微提一下做法,详细的很难讲清楚了。首先我保证最外面一圈的最小的数放在左上角,这样就免得去重了。然后我N^2枚举左上的数a和中间的数b,这样一样剩下的数有3类:成对的,成单的,与a同余的。然后右下角再枚举放着3类中的哪一类,如果放余a同余的话就好搞了,剩下两块各两个格子是分开的,数也只剩成单成双两种了;然后如果右下方的是成单的,则还要枚举剩下的4个格子如何放与a同余的;如果右下方的是成双的c,就更麻烦点,又多了一个与c同余的数,于是要枚举剩下4个格子如何防止与a同余和与c同余的。于是就是这样的负责,导致我完全没有信心把它写多。于是求正确做法。

watashi
2010/01/05 at 11:28 上午
sfym
好久没有做SRM了
[回复]
Hang Hang 回复:
一月 5th, 2010 at 11:30 上午
ym学长,好久没有不做SRM了……
[回复]
MasterLuo
2010/01/05 at 4:08 下午
看到一个很好的方法暴力一下把4,5,6,7搞出来。大于7就是任选7个,直接组合数。很好写。
[回复]
Hang Hang 回复:
一月 5th, 2010 at 6:57 下午
仰慕。。居然可以这样,强大……
[回复]
Navi
2010/01/05 at 7:47 下午
500我是想先放了中间的之后 外面那一圈可以分成间隔的两组.. 然后计数分存在同一组里面的两个数a, b使得a % n = b % n的情况和同一组里面% n都不同的来算……结果写到最后也没搞定……
[回复]
Hang Hang 回复:
一月 6th, 2010 at 9:55 上午
看起来还是很麻烦的- -
3对3很纠缠了-_-
[回复]
cnnbboy
2010/01/08 at 11:23 上午
要换工作了,进来仰慕下HH大牛攒人品
[回复]
Hang Hang 回复:
一月 8th, 2010 at 3:36 下午
哇~~bgbg~大牛去哪高就?~
[回复]
resty
2010/01/10 at 4:06 下午
事实证明我根本就不知道这个时候有。
貌似这次没通知啊
[回复]
Hang Hang 回复:
一月 10th, 2010 at 9:36 下午
嗯,这次据说邮件系统出错,没发邮件……
仰慕大神!
[回复]