09年8月9日 ECUST ACM 练习赛总结(By OWenT)

Problem A我没看题,队友很快AC我就没花时间看

Problem B是一个DP题,但是我们确实都没想到方法,实在是我们的经验不足

B题补充:
B题的DP方法比较诡异(起码我理解了很久)
令fn[i][j]为有i个数j次交换位置的排列数量
很明显,当i+1时,如果把新增的数放在最后一位,那么交换次数不变(新增的数为i+1,最大).
如果把新增的数放在第1到i位之间的话有i种放法,
对于每一种fn[i][j]的排列中我们总能找到一种序列使得{(.)(.)(*)(.)(.)...(i+1)},["()表示一个元素"]
中(i+1)和(*)交换位置后前i个元素的排列和其相同
又因为(*)的位置可以有i种放法,以此我们发现,fn[i+1][j]=fn[i][j]+fn[i][j-1]×i
继续贴代码:
Code:Problem B

Problem C

这是一个简单的几何题,题意大致是给出几个目标图形的坐标,然后输入两个人的三次投标的坐标点,而坐标如果在N目标图形中,则加N分,结果是输出得分高的人名,
或者如果平手输出Tied.
由于输入得图形值包括多变形和圆,多变形直接用模板,圆很简单,圆心和投标所在点的距离≤半径即可.
具体代码如下:
Code:Problem C
Problem D 是概率问题+二分,因为没时间了所以没仔细考虑
D题补充:
赛后进行了代码补写,主要是枚举起点,二分终点,然后由于他是先选起点再选终点,而不是两个一起选,所以概率计算要注意下
如果共有b个第i个作为起点,j个作为终点,则概率为(j-i+1)/(b*(b-i+1));
再就是我WA了很多次,最后把输出的%.10g改成%.10lf就AC了,为什么我也不清楚,题目说是SpecialJudge,应该两种情况是一样的啊
这里我也不清楚为什么WA.以后尽量少用%g吧
代码如下:
Code:Problem D
Problem E 是极水的一题,由于题目不是很理解,所以不太敢写,最后报着试一试的心理给队员做,很快AC就没有再理
Problem F 跳过
Problem G 这题我没看懂.还是Q Boy看懂并交给Ultramanhu写的,也是很快AC
Problem H 没敢写,没接触过这类题
Problem I 这题我看完病没有想到好的方法,幸亏Q Boy很快推出规律,解决了这题,既w为偶数输出1.00 0.00否则0.00 1.00
Problem J 这题我们WA了10次,主要是我没有理解好题,认为概率是相加的,而导致Ultramanhu写的代码出错,还一直找不到错误所在
这题是求在小偷他妈所能承受的风险内Rob的银行的最大钱数,这道题我花了很多的时间.
Problem K 这题我们TLE了一次,因为除了模拟我也没想到好的算法,所以我也没怎么考虑.

这次总体感觉英文水平很重要,很多题都是没读的很懂,特别是J题WA了10次,我花了几个小时在Debug上面最后才发现题目理解错误.
而水题因为理解的不是很好也不太敢做,然后我们的数学能力也有所欠缺.一些关系推导的不是很好.很多东西也不熟悉.总体做题经验欠缺
我觉得我们还是需要多磨合.熟悉各类题目
posted @ 2009-08-09 21:58  Coeus(ACM)  阅读(275)  评论(0编辑  收藏  举报