UVA - 1645 - Count(思路)
题意:输入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(思路)相关推荐
- UVA 1645 - Count(简单DP)
题目链接 https://cn.vjudge.net/problem/UVA-1645 [题意] 输入n(n<=1000)统计有多少个n个结点的有根树,使得每个深度中所有结点的子结点数相同 [思 ...
- UVa 1645 Count
题意:输入n,统计有多少个n个结点的有根树,使得每个深度中所有结点的子结点数相同.结果模1000000007. 思路:递推.根据题意,每个结点的每个子树都是相同的.所以n结果为n-1的所有约数的结果加 ...
- uva 1645 count
题意: 有多少个n个节点的有根树,满足每层节点的子节点个数相同,输出该数目除以1e9+7的余数. 分析: 这种题目就属于那种,看起来很高冷,读完题更高冷. 言归正传,根据题意,这棵树是关于根节点对称的 ...
- UVA 1645 Count——dp
dp[i]表示i个节点的树的情况数,那么求dp[i]时我们可以先拿出一个点作为根节点,这时还剩i-1个点,这i-1个点可以划分成数量为(i-1)/j大小为j的子树当且仅当(i-1)%j==0,而划分成 ...
- uva 1645 count 水题
题意 输入n 统计有多少个n节点的有根树 使每个深度中所有节点的子节点数相同 例如 n=4 答案是3 n = 7 答案是 10 瞬间想到递推 第一层一定放一个 那么剩下 n-1 个节点 假设放 i 个 ...
- UVa 1645 - Count(递推)
给出一个数n,求n个结点的树有多少种结构满足每个结点的子结点数相同. n结点树,除去根结点,有n-1个结点,根结点的每棵子树需要完全相同,所以根结点的子树个数k,满足(n-1)%k==0.然后就可以递 ...
- UVa 1645 - Count
用打表的方法来做,蕴含着一种递推的思想. #include <iostream> #include <cstdio> using namespace std;int n, re ...
- Count UVA - 1645
题意:输入n(n<=1000),统计有多少个n结点的有根树,使得每个深度中所有节点得子节点数相同 思路:除掉第一个节点必须被放置为根节点之外,还剩下n-1个节点,那么这n-1个节点可以平均(注意 ...
- UVa 264 - Count on Cantor
<算法竞赛入门经典>5.4.1的题目,大意是,给出一个数表,如下: 第一项是1/1, 第二项是1/2, 第三项是2/1, 第四项是3/1, 第五项是2/2.....给一个正整数n,求第n项 ...
最新文章
- rabbit-mq cluster安装
- 数据持久化 技术比较
- 被人画是怎样一种体验?
- netty大白话--字符串的收发(三)
- 从“技术理性”到“实践智慧” 华为云这波大招够强
- ThreadLocal学习
- [汇编] 十进制与十六进制互转
- 项目管理概论【项目管理基础-第一章 项目与项目管理】
- 小程序 省市区地址选择器
- 操作系统原理第五章(资源分配与调度)
- 3D动作绑定_【动捕小灶】动作捕捉数据应用到动画流程详解
- 中国十大软件测试网站
- 【MDX】一文带你搞懂SQL Server Analysis Services 的安装和使用
- 美国互联网影视业的盈利模式
- html水平线段hr标记详解,HTML标记【水平分隔线hr标记的使用】!
- Java之父求职被嫌年纪大:程序员只能吃青春饭?
- C++ decltype类型提示符总结
- openwrt桥接上海电信宽带+高清4KIptv适用
- 前端vue最新vue-i18n国际化插件实现语言切换(带源码)
- Apache虚拟主机VirtualHost的目录访问权限
热门文章
- 调试MCP2515驱动时遇到的问题 CAN控制器和CAN收发器之间的TX和RX引脚接反,导致无法正常收发数据
- OpenGL学习之路17---- 镜面反射光
- python血脉贲张的cosplay小姐姐图片
- mysql事务回滚是什么意思_Mysql事务提交及事务回滚是什么意思
- elasticsearch5之Elastalert 安装使用 配置邮件报警和报警模版
- 八皇后问题(回溯法amp;枚举法)
- JAVA异常记录(ORA-56900:pivot|unpivot 操作内不支持绑定变量)
- iOS App怎么上架到苹果TestFlight?
- Lotus Notes Send EMail from VB or VBA
- 用人篇-曾国藩家书整理