关于围棋围住的最大面积问题

问题:给定N个棋子,问N个棋子能围住的最大面积是多少(假设棋盘无限大)

首先我们定义什么是“围住",主要通过以下度规来表示两个点之间是连续的(即对方没有气)

d((x1,y1),(x2,y2))=max{|x1-x2|,|y1-y2|}

“围住”要求对于任意一个点P,必须存在两个相邻的点Q,T,使得d(P,Q)=d(P,T)=1 这样就能保证这N个点收尾相接构成一个封闭的曲线,这也就是从数学上来严格定义什么叫”围住”。

接下来,我们引入一个数学结论:

给定任意一个点P(x,y)其中x,y均为整数, 其与原点连线PO所经过的整点数刚好是GCD(x,y)+1

不失一般性的,假设这N个点中任意两点不同时处于同一条从原点出发的射线上(这样可以避免面积重叠计算)

最后,我们就会得到一个非线性整数规划问题:

max Sum{GCD(x_i,y_i)}, s.t. d(P_i,P_{(i-1)%15})=d(P_i,P_{i(+1)%15})=1 AND {P_i,P_j 不处于同一从原点出发的射线之上,对于任意i,j}

注意到,这个规划的求解可以利用一个单调性的技巧,这来源于我们的距离度规d

不是一般性的,假设有水平连续三点(x-1,y),(x,y),(x+1,y),那么,当我们把中间一点上移一格,发现距离依然不变,说明这三点依然连续,即:

d((x-1,y),(x,y))=d((x+1,y),(x,y))=d((x-1,y),(x,y+1))=d((x+1,y),(x,y+1))=1

然而,面积确增加了一格,因为:

GCD(0,y+1)=GCD(0,y)+1

这种单调性递增不会无限进行,最终会由于出现饱和锯齿形排列而终止,此时面积即为最大面积。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值