题面:洛谷传送门 BZOJ传送门

非常有意思的一道数学题,浓浓的$CF$风,然而我并没有想出来..

我们想把一个$n$维空间用$n$维球分成尽可能多的块

而新增加一个$n$维球时,肯定要尽可能多地切割前几个球围成的不同空间

画画图容易发现$n=1$的规律,因为一条线段只能在两个端点处切割这条直线,所以$f(n)=2n$

$n=2$的规律不太好找,但突破口也在这了..

发现当一个新的圆加入到图里时,新圆会切割原来的圆,把原图分成了更多的小块

我们把新圆的圆周看成一条线段,把旧圆和新圆的两个交点形成的弧看成一条线段

诶?问题似乎变成了一维的,事实上我们是再用一个新的直线去切原来的直线

原来直线数目是$(i-1)$,因此$f[i]=f[i-1]+2(i-1)$

那如果把这个问题推广到更高的维度呢?

结论还是成立的,我们在i维空间内,用一个$i$维球去切$j-1$个$i$维球

新产生的块数目就是用$i-1$维球去切$j-1$个$i-1$维球

因此得到递推式$f[i,j]=f[i-1,j-1]+f[i,j-1]$

 #include <cmath>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define N1 105
#define ll long long
#define ull unsigned long long
#define dd double
#define inf 0x3f3f3f3f
using namespace std; int gint()
{
int ret=,fh=;char c=getchar();
while(c<''||c>''){if(c=='-')fh=-;c=getchar();}
while(c>=''&&c<=''){ret=ret*+c-'';c=getchar();}
return ret*fh;
} ull f[N1][N1];
int n,m; int main()
{
scanf("%d%d",&m,&n); int i,j;
for(i=;i<=n+;i++)
for(j=,f[i][]=;j<=m;j++)
f[i][j]=f[i-][j-]+f[i][j-];
printf("%llu\n",f[n+][m]);
return ;
}

BZOJ 1197 [HNOI2006]花仙子的魔法 (数学题)的更多相关文章

  1. BZOJ 1197: [HNOI2006]花仙子的魔法【DP】

    Description 相传,在天地初成的远古时代,世界上只有一种叫做“元”的花.接下来,出 现了一位拥有魔法的花仙子,她能给花附加属性,从此,“元”便不断变异,产生了大千世界千奇百怪的各种各样的花. ...

  2. 1197: [HNOI2006]花仙子的魔法

    1197: [HNOI2006]花仙子的魔法 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 762  Solved: 443[Submit][Stat ...

  3. 1197: [HNOI2006]花仙子的魔法 - BZOJ

    Description Input 包含两个整数,并用一个空格隔开,第一个整数表示实施魔法的次数m,第二个整数表示空间的维数n.其中,1≤m≤100,1≤n≤15. Output 仅包含一个整数,表示 ...

  4. bzoj千题计划183:bzoj1197: [HNOI2006]花仙子的魔法

    http://www.lydsy.com/JudgeOnline/problem.php?id=1197 题意转化:在n维空间中放m个n维球,问最多将空间分成几部分 f[i][j] 表示在i维空间中放 ...

  5. BZOJ1197 [HNOI2006]花仙子的魔法

    其实是一道奇怪的DP题,蒟蒻又不会做... 看了Vfk的题解才算弄明白是怎么一回事: 令f[i, j]表示i维有j个球时最大切割部分,则 f[i, j] = f[i, j - 1] + f[i - 1 ...

  6. HNOI2006 花仙子的魔法

    题目描述 题解: 考试的时候手画打表,然后半个小时磨了个式子:$$f[i][j]=f[i-1][j-1]+f[i][j-1]$$ 交上去$A$的时候都蒙了. 考后才知道原因. 考虑$n$维空间内原来有 ...

  7. BZOJ 1197 花仙子的魔法(递推)

    数学归纳法. dp[i][j]=dp[i][j-1]+dp[i-1][j-1]. # include <cstdio> # include <cstring> # includ ...

  8. BZOJ 3669 【NOI2014】 魔法森林

    Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M.初始时小E同学在号节 ...

  9. bzoj 1191: [HNOI2006]超级英雄Hero

    1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec  Memory Limit: 162 MB 二分图匹配... Description 现在电视台有一种节目叫做超 ...

随机推荐

  1. 0227浅谈MySQL之 Handler_read_*参数

    转自博客http://www.path8.net/tn/archives/5613 1.监控语法: 在MySQL里,使用SHOW STATUS查询服务器状态,语法一般来说如下: SHOW [GLOBA ...

  2. [bzoj1500][NOI2005]维修数列_非旋转Treap

    维修数列 bzoj-1500 NOI-2005 题目大意:给定n个数,m个操作,支持:在指定位置插入一段数:删除一个数:区间修改:区间翻转.查询:区间和:全局最大子序列. 注释:$1\le n_{ma ...

  3. Spark MLlib之线性回归源代码分析

    1.理论基础 线性回归(Linear Regression)问题属于监督学习(Supervised Learning)范畴,又称分类(Classification)或归纳学习(Inductive Le ...

  4. matplotlib的cmap

    今天又看到了这样的代码: plt.imshow(X_train[0], cmap=plt.get_cmap('PuBuGn_r')) #plt.imshow(X_train[0], cmap=plt. ...

  5. [Angular] Freshness Caching Policy - Network First, Cache Last

    In some cases, you want to get fresh data instead of cache data to the screen, such as stock applica ...

  6. 能够在子线程绘画的View SurfaceView

    转载请注明出处:王亟亟的大牛之路 近期两天都没有写文章,一方面是自己在看书.一方面不知道写什么,本来昨天想写Glide或者RxAndroid的东西结果公司的"狗屎"网怎么都刷不好G ...

  7. 杂项-JAVA:MVP

    ylbtech-杂项-JAVA:MVP 简称:MVP 全称:Model-View-Presenter :MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Pres ...

  8. [ligerUI] grid封装调用方法

    /** * 获取页面参数 */ function getPageSize(){ var xScroll, yScroll; if (window.innerHeight && wind ...

  9. virtualbox 安装虚拟机(centos7) 并映射本地文件夹至虚拟机(增强工具)

    一.安装环境 操作系统:windows10 virtualbox: 5.2.20 (在安装virtualbox 时可能需要 进入BIOS 设置虚拟化系统启动) centos7:http://mirro ...

  10. Kaggle爆文:一个框架解决几乎所有机器学习问题

      上周一个叫 Abhishek Thakur 的数据科学家,在他的 Linkedin 发表了一篇文章 Approaching (Almost) Any Machine Learning Proble ...