UVA 1084 deer-proof fence
题目大意:
N个点的半径为M的圆,求最小周长的方案使他们都被包含在所画的图形中(可以相隔)。
因为N
那么可以得到方程f[i]=min(f[j]+f[i^j]),j为i的所有子集。先处理g[i]表示i组成一个图形的周长,周长是i中所有点的凸包总长+2πM。那么问题就迎刃而解了。
附代码(小学dalao好厉害):
#include
using namespace std;
struct N
原创
2017-07-09 10:26:31 ·
384 阅读 ·
0 评论