bzoj1197】的更多相关文章

水题,画个图推一下低维的就什么都明白了 从低维类推高维 ..,..] of int64; n,m,j,i:longint; begin readln(m,n); to n do f[i,]:=; to m do f[,i]:=*i; to n do to m do f[i,j]:=f[i,j-]+f[i-,j-]; writeln(f[n,m]); end.…
http://www.lydsy.com/JudgeOnline/problem.php?id=1197 题意转化:在n维空间中放m个n维球,问最多将空间分成几部分 f[i][j] 表示在i维空间中放j个i维球 假设现在是放第j个,它首先包含有j-1个情况,即f[i][j-1] 再加上第j个与前j-1个相交产生的,两个i维相交是i-1维,即f[i-1][j-1] 所以f[i][j]=f[i-1][j-1]+f[i][j-1] #include<cstdio> using namespace s…
其实是一道奇怪的DP题,蒟蒻又不会做... 看了Vfk的题解才算弄明白是怎么一回事: 令f[i, j]表示i维有j个球时最大切割部分,则 f[i, j] = f[i, j - 1] + f[i - 1, j - 1] 其中第一部分很好理解,就是前j - 1个球的最大个数,然后就是第二部分的理解: j - 1个球后再加一个球,于是最优的情况就是最后一个球与前j - 1个球都相交 而求面试i - 1维的,相交出来的是i - 2维空间  <=> i - 1维空间用j - 1个i - 2个球划分的最优…