题目链接
http://acm.hdu.edu.cn/showproblem.php?pid=4562
题目大意
给定两个点,(0,0)和(x,y),求两点之间最多画多少个圆,要求两个圆之间不相交不相切。
具体的实际意义需要考虑。
思想
首先因为怪兽的路径是任意的,所以如果防御圈同时包含爱丽丝和怪兽,或者同时不包含爱丽丝和怪兽,那么这个包围圈就是没有意义的。所以有意义的包围圈只有两种情况:只包含爱丽丝和只包含怪兽。所以先处理出来这两个圈。
然后分别对两种圈DP,DP的思路很简单,不过有一个处理很关键,就是要按照r排序。从小到大DP。
最后把两个圈综合起来即可。
注意,注释里的代码是我的错误代码,不过还没想明白怎么错。。
代码
1 |
|
后记
DP的思路不难,DP前的各种处理都比较难想。
昨天和今天是堕落的一天。
明天比赛加油。