BZOJ 1197 HNOI2006 花仙子的魔法 递推

题目大意:求n维空间下的m个球最多可以将空间分为多少个区域

VFK的题解: http://vfleaking.blog.163.com/blog/static/174807634201321193348312/

自己看吧。。。。

我还在纠结零维空间内放入一个零维的球之后空间到底会被分成几份。。。。。

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
long long f[20][110];
int m,n;
int main()
{
	int i,j;
	cin>>m>>n;
	f[0][0]=1;
	for(j=1;j<=m;j++)
		f[0][j]=2;
	for(i=1;i<=n;i++)
	{
		f[i][0]=1;
		for(j=1;j<=m;j++)
			f[i][j]=f[i][j-1]+f[i-1][j-1];
	}
	cout<<f[n][m]<<endl;
	return 0;
}
时间: 2024-08-08 01:12:37

BZOJ 1197 HNOI2006 花仙子的魔法 递推的相关文章

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

Description 相传,在天地初成的远古时代,世界上只有一种叫做“元”的花.接下来,出 现了一位拥有魔法的花仙子,她能给花附加属性,从此,“元”便不断变异,产生了大千世界千奇百怪的各种各样的花.据说,花仙子既可存在于二维空间(平 面),又可存在于三维空间(立体),还可存在于n维空间(想象).二维空间的点可用向量(x1,x2)表示,三维空间的点可用向量(x1,x2,x3)表 示,一般来说,n维空间的点可用向量(x1,x2,…,xn)表示.而n维空间中两点(x1,x2,…,xn)与(w1,w2

1197: [HNOI2006]花仙子的魔法

1197: [HNOI2006]花仙子的魔法 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 762  Solved: 443[Submit][Status] Description Input 包含两个整数,并用一个空格隔开,第一个整数表示实施魔法的次数m,第二个整数表示空间的维数n.其中,1≤m≤100,1≤n≤15. Output 仅包含一个整数,表示花仙子在n维空间中实施了m次魔法后,最多能得到多少种不同的花. Sample Input 3

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

数学归纳法. dp[i][j]=dp[i][j-1]+dp[i-1][j-1]. # include <cstdio> # include <cstring> # include <cstdlib> # include <iostream> # include <vector> # include <queue> # include <stack> # include <map> # include <s

【BZOJ 1197】 [HNOI2006]花仙子的魔法

1197: [HNOI2006]花仙子的魔法 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 771  Solved: 448 [Submit][Status] Description Input 包含两个整数,并用一个空格隔开,第一个整数表示实施魔法的次数m,第二个整数表示空间的维数n.其中,1≤m≤100,1≤n≤15. Output 仅包含一个整数,表示花仙子在n维空间中实施了m次魔法后,最多能得到多少种不同的花. Sample Input

BZOJ 1089 严格n元树 (递推+高精度)

题解:用a[i]表<=i时有几种树满足度数要求,那么这样就可以递归了,a[i]=a[i-1]^n+1.n个节点每个有a[i-1]种情况,那么将其相乘,最后加上1,因为深度为0也算一种.那么答案就是a[n]-a[n-1].然后就是高精度的问题了,发现很久没有现码高精度没手感了,连高进度加法进位都出了些问题,需要特别注意. #include <cstdio> #include <cstring> #include <algorithm> using namespace

BZOJ1197 [HNOI2006]花仙子的魔法

其实是一道奇怪的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个球划分的最优

BZOJ 1045 糖果传递 题解 【递推乱搞就对了

1045: [HAOI2008] 糖果传递 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3505  Solved: 1626[Submit][Status][Discuss] Description 有n个小朋友坐成一圈,每人有ai个糖果.每人只能给左右两人传递糖果.每人每次传递一个糖果代价为1. Input 第一行一个正整数n<=987654321,表示小朋友的个数.接下来n行,每行一个整数ai,表示第i个小朋友得到的糖果的颗数. Outpu

BZOJ 1009 HNOI 2008 GT考试 递推+矩乘

1009: [HNOI2008]GT考试 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 3679  Solved: 2254[Submit][Status][Discuss] Description 阿申准备报名参加GT考试,准考证号为N位数X1X2....Xn(0<=Xi<=9),他不希望准考证号上出现不吉利的数字. 他的不吉利数学A1A2...Am(0<=Ai<=9)有M位,不出现是指X1X2...Xn中没有恰好一段等于A1A2.

BZOJ 2431 HAOI2009 逆序对数列 递推

题目大意:求1~n的所有排列中有多少种逆序对为k的方案数 令f[i][j]为前i个数的排列中逆序对数为j的方案数 那么我们将第i个数插入1~i-1的排列中 可以产生0~i-1个逆序对 于是有 f[i][j]=Σf[i-1][k] (j-i+1<=k<=j) 维护前缀和即可 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define M 1010