bzoj1197: [HNOI2006]花仙子的魔法

    xiaoxiao2021-03-25  308

    传送门 题目废话太多。 就是n个球最多能把空间划分成多少个部分。 尝试下n = 3的情况想象下……再看下面的内容……

    对n维区域用m个求划分,答案记为f(n, m)

    对于第m个球,那么最优情况是它与所有球相交(显然成立) 然后相交时球是n维的,球面是n-1维的,球面与球面的交集是n - 2维的 (自己脑洞N=3的情况) 其它球面来划分这个球面,相当于把n - 1维区域用m - 1个n - 2维的平面来划分(很正确呀) 而n - 2维的这种平面必然是n - 2维的球,因为是球面与球面相交嘛(一维空间的球是平面,特此声明)

    每个区域都对应着一个n维区域 最多可以把球面划分成f(n - 1, m - 1)个区域 那么这个球内就有f(n - 1, m - 1)个空间 还要加剩下的球~就是f(n, m - 1)

    立即推出:f(n, m) = f(n - 1, m - 1) + f(n, m - 1) 边界条件咱就不说了……YY下就出来了

    至于为啥这是最优的我也不知道

    var n,m,i,j:longint; f:array [0..25,0..105] of int64; begin read(m,n); f[0,0]:=1; for j:=1 to m do f[0,j]:=2; for i:=1 to n do begin f[i,0]:=1; for j:=1 to m do f[i,j]:=f[i,j-1]+f[i-1,j-1]; end; write(f[n,m]); end.
    转载请注明原文地址: https://ju.6miu.com/read-147.html

    最新回复(0)