2010年成都区域赛总结|解题报告
本次比赛由我、DTen和sssplk完成,一台机子进行。
现在一周就做4场比赛,前一场是周三,隔了这么多天,状态似乎好了一些。这一场做得还比较顺利,开了虚拟比赛排名23,拿了I题的FB,但绝对说不上满意,还是有很多细节可以完善,想题敲题速度还可以提高,从60个人过的E题我们没时间敲就可见一斑。
这场比赛我贡献3个ac,DTenk贡献1个ac,sssplk贡献了一个ac。
到现在我们共A了6道题,区域赛的题目吸收起来很蛋疼的,太难了。现在说下AC的几道题目(前面数字是题目在Hdu上的题号):
Hdu 3709 Balanced Number 数位DP。用dp[pos][sum][o]表示到pos位置力矩总和为sum支点为o的总方案数,然后套个模版,不知道为什么现场过的人那么少,肯定是都忘了带模版,太不专业了.
Hdu 3711 Binary Number 本场比赛最简单的题目,三个for循环搞定,先枚举集合B,然后枚举集合A,然后判断不同的位数。我似乎A慢了。
Hdu 3713 Double Maze 搜索,用【】【】【】【】思维数组进行判重。
Hdu 3714 Error Curves 很显然F(x)是个单峰函数,用三分法求之。
Hdu 3715 Go Deeper 关键是建图,建好图之后用2-Sat求之即可。
Hdu 3717 Rescue 哈哈,虽然是虚拟比赛,拿了个FB还是很开心的。这题很容易想到用二分+贪心,因为当p符合条件f的时候,p+1也符合条件,p+2也可以,正是这单调性就应该敏感地想到二分p,二分p之后就变成了判定性问题,然后贪心求解之。为什么可以贪心呢?因为只能往左打炮,那么当某点的能量还大于0的时候,必须在它右边打至少一炮,所以从右往左打炮,当能量不为0的时候就对它一直打炮,打到它不行能量小于0为止。
然后我们怎么记录后面的炮对当前的影响呢?用队列来存储对当前点有影响的点到当前点的下标,然后用sumxxx表示队列内各点到当前点的距离平方之和,cntx表示队列内各点到当前点的距离之和。进队列时,因为和当前点距离为0,sumx和cntx不变;当新到一点i时,因为后面所有点到当前点的距离拉长了1,那么newdis ^ 2 = (dis + 1) ^2 = dis^2 + 1 + 2 * 1 * dis,sum(newdis^2) = sum(dis^2) + 队列内的点数 * 1 + 2 * cntx,即 sumxx += queuesize + 2 * cntx,cntx += queuesize。
本文ZeroClock原创,但可以转载,因为我们是兄弟。