题意:输入n(1 <= n <= 1000),输出有n个结点且每个深度中所有结点的子节点数相同的树有多少种。

根据题意,其实要求每个子树都相同。

一个结点当作根节点,还剩下n - 1个结点,枚举n - 1的因子(因子当作紧邻根结点的子树中的结点数),然后将所有因子的答案相加即可。

代码如下:

#include<cstdio>
#include<cstring>
#include<cctype>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<sstream>
#include<iterator>
#include<algorithm>
#include<string>
#include<vector>
#include<set>
#include<map>
#include<deque>
#include<queue>
#include<stack>
#include<list>
#define fin freopen("in.txt", "r", stdin)
#define fout freopen("out.txt", "w", stdout)
#define pr(x) cout << #x << " : " << x << "   "
#define prln(x) cout << #x << " : " << x << endl
#define Min(a, b) a < b ? a : b
#define Max(a, b) a < b ? b : a
typedef long long ll;
typedef unsigned long long llu;
const int INT_INF = 0x3f3f3f3f;
const int INT_M_INF = 0x7f7f7f7f;
const ll LL_INF = 0x3f3f3f3f3f3f3f3f;
const ll LL_M_INF = 0x7f7f7f7f7f7f7f7f;
const double pi = acos(-1.0);
const double EPS = 1e-6;
const int dr[] = {0, 0, -1, 1, -1, -1, 1, 1};
const int dc[] = {-1, 1, 0, 0, -1, 1, -1, 1};
const ll MOD = 1e9 + 7;
using namespace std;#define NDEBUG
#include<cassert>
const int MAXN = 1000 + 10;
const int MAXT = 10000 + 10;ll c[MAXN];
void init(){c[0] = 0ll;  c[1] = 1ll;  c[2] = 1ll;for(int i = 3; i < MAXN; ++i){int t = i - 1;c[i] = 0ll;for(int j = 1; j <= t; ++j)if(t % j == 0)  (c[i] += c[j]) %= MOD;}
}int main(){init();int kase = 0, n;while(scanf("%d", &n) == 1)printf("Case %d: %lld\n", ++kase, c[n]);return 0;
}

转载于:https://www.cnblogs.com/tyty-TianTengtt/p/6024547.html

UVA - 1645 - Count(思路)相关推荐

  1. UVA 1645 - Count(简单DP)

    题目链接 https://cn.vjudge.net/problem/UVA-1645 [题意] 输入n(n<=1000)统计有多少个n个结点的有根树,使得每个深度中所有结点的子结点数相同 [思 ...

  2. UVa 1645 Count

    题意:输入n,统计有多少个n个结点的有根树,使得每个深度中所有结点的子结点数相同.结果模1000000007. 思路:递推.根据题意,每个结点的每个子树都是相同的.所以n结果为n-1的所有约数的结果加 ...

  3. uva 1645 count

    题意: 有多少个n个节点的有根树,满足每层节点的子节点个数相同,输出该数目除以1e9+7的余数. 分析: 这种题目就属于那种,看起来很高冷,读完题更高冷. 言归正传,根据题意,这棵树是关于根节点对称的 ...

  4. UVA 1645 Count——dp

    dp[i]表示i个节点的树的情况数,那么求dp[i]时我们可以先拿出一个点作为根节点,这时还剩i-1个点,这i-1个点可以划分成数量为(i-1)/j大小为j的子树当且仅当(i-1)%j==0,而划分成 ...

  5. uva 1645 count 水题

    题意 输入n 统计有多少个n节点的有根树 使每个深度中所有节点的子节点数相同 例如 n=4 答案是3 n = 7 答案是 10 瞬间想到递推 第一层一定放一个 那么剩下 n-1 个节点 假设放 i 个 ...

  6. UVa 1645 - Count(递推)

    给出一个数n,求n个结点的树有多少种结构满足每个结点的子结点数相同. n结点树,除去根结点,有n-1个结点,根结点的每棵子树需要完全相同,所以根结点的子树个数k,满足(n-1)%k==0.然后就可以递 ...

  7. UVa 1645 - Count

    用打表的方法来做,蕴含着一种递推的思想. #include <iostream> #include <cstdio> using namespace std;int n, re ...

  8. Count UVA - 1645

    题意:输入n(n<=1000),统计有多少个n结点的有根树,使得每个深度中所有节点得子节点数相同 思路:除掉第一个节点必须被放置为根节点之外,还剩下n-1个节点,那么这n-1个节点可以平均(注意 ...

  9. UVa 264 - Count on Cantor

    <算法竞赛入门经典>5.4.1的题目,大意是,给出一个数表,如下: 第一项是1/1, 第二项是1/2, 第三项是2/1, 第四项是3/1, 第五项是2/2.....给一个正整数n,求第n项 ...

最新文章

  1. rabbit-mq cluster安装
  2. 数据持久化 技术比较
  3. 被人画是怎样一种体验?
  4. netty大白话--字符串的收发(三)
  5. 从“技术理性”到“实践智慧” 华为云这波大招够强
  6. ThreadLocal学习
  7. [汇编] 十进制与十六进制互转
  8. 项目管理概论【项目管理基础-第一章 项目与项目管理】
  9. 小程序 省市区地址选择器
  10. 操作系统原理第五章(资源分配与调度)
  11. 3D动作绑定_【动捕小灶】动作捕捉数据应用到动画流程详解
  12. 中国十大软件测试网站
  13. 【MDX】一文带你搞懂SQL Server Analysis Services 的安装和使用
  14. 美国互联网影视业的盈利模式
  15. html水平线段hr标记详解,HTML标记【水平分隔线hr标记的使用】!
  16. Java之父求职被嫌年纪大:程序员只能吃青春饭?
  17. C++ decltype类型提示符总结
  18. openwrt桥接上海电信宽带+高清4KIptv适用
  19. 前端vue最新vue-i18n国际化插件实现语言切换(带源码)
  20. Apache虚拟主机VirtualHost的目录访问权限

热门文章

  1. 调试MCP2515驱动时遇到的问题 CAN控制器和CAN收发器之间的TX和RX引脚接反,导致无法正常收发数据
  2. OpenGL学习之路17---- 镜面反射光
  3. python血脉贲张的cosplay小姐姐图片
  4. mysql事务回滚是什么意思_Mysql事务提交及事务回滚是什么意思
  5. elasticsearch5之Elastalert 安装使用 配置邮件报警和报警模版
  6. 八皇后问题(回溯法amp;枚举法)
  7. JAVA异常记录(ORA-56900:pivot|unpivot 操作内不支持绑定变量)
  8. iOS App怎么上架到苹果TestFlight?
  9. Lotus Notes Send EMail from VB or VBA
  10. 用人篇-曾国藩家书整理