HDU 4472 Count DP题】的更多相关文章

解题报告:题目大意,给你n个球,要将这n个球从下到上按层次排列,要求同一个层次的的每一个分支的数量都必须相等,问有多少种排列的方法. 此题的一个DP题,假设现在有n个球,要将这n个球排列好,我们就必须将n个球的问题转化成小于n个球的子问题 ,我们可以很明显地观察到,对于每一种排列 的方法,它的最上面的那一层总是只有一个球,所以我们就可以这样出发,将这n个球先减掉一个球,还剩下n-1个球,然后就是下一层怎么排列 的问题了.由于现在还剩下n-1个球,那么我们现在要想的就是把这n-1个球应该怎么排列,…
题目:问n个节点构成完全对称的树有多少种方法. 因为树是完全对称的,所以它的子树也是完全对称的. 对于每个树,拿出一个根节点,枚举剩下的节点能拆分成多少个子树. #include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> #define LL long long int using namespace std; ; ; LL dp[MAXN]; int main()…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4472 代码: #include <cstdio> #include <cstring> #include <iostream> #include <cmath> #include <algorithm> #include <queue> #include <vector> #include <utility> us…
意甲冠军: 鉴于n节点,满足子节点的相同的树节点号的同一层较少不同的形式. 思考: dp[i][j] 代表i节点.最后,一个层j方法节点 由于满足同层节点,所以j一层又一层必须是j 整数倍 所以就能得到兴许的状态 代码: #include"cstdlib" #include"cstdio" #include"cstring" #include"cmath" #include"queue" #include&…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4472 Problem Description Prof. Tigris is the head of an archaeological team who is currently in charge of an excavation in a site of ancient relics. This site contains relics of a village where civilizat…
Count Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1756    Accepted Submission(s): 1133 Problem Description Prof. Tigris is the head of an archaeological team who is currently in charge of a…
递推,一般的dp值: #include<stdio.h> #include<string.h> #define mod 1000000007 ]; int Dp() { a[]=; a[]=; ;i<=;i++) { ;j<i;j++) { )%j==)a[i]+=a[j]; a[i]%=mod; } } ; } int main() { int n; ; Dp(); while(scanf("%d",&n)!=EOF) { printf(&…
递推,考虑到一n可以由i * j + 1组合出来,即第二层有j个含有i个元素的子树...然后就可以了.. #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<fstream> #include<sstream> #include<bitset> #include<vector> #include&…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2577 解题报告:有一个长度在100以内的字符串,并且这个字符串只有大写和小写字母组成,现在要把这些字符串用键盘输入到电脑中,一开始的时候大写锁定是关闭的,并且要求结束的时候也是关闭的,然后让你求输入这些字符串最少需要按多少次键盘(包括Cap Lock键和Shift键) 一个典型的dp题,定义一个一维数组就够了,然后dp[i]的含义的输入到第i个字符时需要按键的最少次数.然后递推公式如下: dp[i]…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1422 解题报告:DP题,要使旅行的城市最多,关键是要选出一个城市作为开始,以这个城市作为开始的城市时,能使拥有的钱能旅行的城市最多,我的做法是把前n-1个城市添加到n个城市的数组后面,这样就不用考虑环的问题了, #include<cstdio> #include<cstring> #include<iostream> using namespace std; ],l[];…