【题目链接】

点击打开链接

【算法】

f[i]表示深度小于等于i的严格n元树

显然,一棵深度小于等于i的严格n元树,就是一个根节点,下面有n棵子树,这n棵子树都是深度小于等于i-1的严格n元树,每棵子树有f[i-1]种形态,根据乘法原理,

可知f[i] = f[i-1] ^ n + 1

那么最后f[d] - f[d-1]就是答案

注意要用高精度计算

【代码】

#include<bits/stdc++.h>
using namespace std;
#define MAXN 35
#define MAXL 400 int i,n,d;
struct INT
{
int len;
int num[MAXL];
} ans,f[MAXN]; inline INT add(INT x)
{
int i;
reverse(x.num,x.num+x.len);
x.num[]++;
for (i = ; i < x.len; i++)
{
if (x.num[i] >= )
{
x.num[i+]++;
x.num[i] %= ;
}
}
while (x.num[x.len]) x.len++;
reverse(x.num,x.num+x.len);
return x;
}
inline void multipy(INT &a,INT b)
{
int i,j;
static INT res;
memset(res.num,,sizeof(res.num));
reverse(a.num,a.num+a.len);
reverse(b.num,b.num+b.len);
for (i = ; i < a.len; i++)
{
for (j = ; j < b.len; j++)
{
res.num[i+j] += a.num[i] * b.num[j];
}
}
res.len = a.len + b.len - ;
while (!res.num[res.len-]) res.len--;
for (i = ; i < res.len; i++)
{
if (res.num[i] >= )
{
res.num[i+] += res.num[i] / ;
res.num[i] %= ;
}
}
if (res.num[res.len]) res.len++;
reverse(res.num,res.num+res.len);
a = res;
}
inline INT _minus(INT a,INT b)
{
static INT res;
memset(res.num,,sizeof(res.num));
reverse(a.num,a.num+a.len);
reverse(b.num,b.num+b.len);
for (i = ; i < a.len; i++)
{
if (a.num[i] >= b.num[i]) res.num[i] = a.num[i] - b.num[i];
else
{
a.num[i+]--;
res.num[i] = a.num[i] + - b.num[i];
}
}
res.len = a.len;
while (!res.num[res.len-]) res.len--;
reverse(res.num,res.num+res.len);
return res;
}
inline INT power(INT a,int n)
{
INT res;
if (!n) return (INT){,{}};
if (n == ) return a;
res = power(a,n>>);
multipy(res,res);
if (n & ) multipy(res,a);
return res;
}
inline void output(INT x)
{
int i;
for (i = ; i < x.len; i++) printf("%d",x.num[i]);
puts("");
} int main()
{ scanf("%d%d",&n,&d);
f[] = (INT){,{}};
for (i = ; i <= d; i++) f[i] = add(power(f[i-],n));
ans = _minus(f[d],f[d-]);
output(ans); return ;
}

【SCOI 2003】 严格n元树的更多相关文章

  1. BZOJ 1089 (SCOI 2003) 严格n元树

    Description 如果一棵树的所有非叶节点都恰好有n个儿子,那么我们称它为严格n元树.如果该树中最底层的节点深度为d (根的深度为0),那么我们称它为一棵深度为d的严格n元树.例如,深度为2的严 ...

  2. BZOJ 1089: [SCOI2003]严格n元树

    1089: [SCOI2003]严格n元树 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 1591  Solved: 795[Submit][Statu ...

  3. [BZOJ1089][SCOI2003]严格n元树(递推+高精度)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1089 分析: 第一感觉可以用一个通式求出来,但是考虑一下很麻烦,不好搞的.很容易发现最 ...

  4. 【BZOJ】1089: [SCOI2003]严格n元树(递推+高精度/fft)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1089 题意:求深度为d的n元树数目.(0<n<=32, 0<=d<=16) ...

  5. bzoj 1089 [SCOI2003]严格n元树(DP+高精度)

    1089: [SCOI2003]严格n元树 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 1250  Solved: 621[Submit][Statu ...

  6. BZOJ1089: [SCOI2003]严格n元树

    1089: [SCOI2003]严格n元树 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 762  Solved: 387[Submit][Status ...

  7. [BZOJ]1089 严格n元树(SCOI2003)

    十几年前的题啊……果然还处于高精度遍地走的年代.不过通过这道题,小C想mark一下n叉树计数的做法. Description 如果一棵树的所有非叶节点都恰好有n个儿子,那么我们称它为严格n元树.如果该 ...

  8. 【bzoj1089】严格n元树

    Description 如果一棵树的所有非叶节点都恰好有n个儿子,那么我们称它为严格n元树.如果该树中最底层的节点深度为d(根的深度为0),那么我们称它为一棵深度为d的严格n元树.例如,深度为2的严格 ...

  9. 【BZOJ1089】[SCOI2003]严格n元树(高精度,动态规划)

    [BZOJ1089][SCOI2003]严格n元树(高精度,动态规划) 题面 BZOJ 洛谷 题解 设\(f[i]\)表示深度为\(i\)的\(n\)元树个数.然后我们每次加入一个根节点,然后枚举它的 ...

随机推荐

  1. Charm Bracelet(01背包)

    Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fil ...

  2. ES6关于Promise的用法详解

    Node的产生,大大推动了Javascript这门语言在服务端的发展,使得前端人员可以以很低的门槛转向后端开发. 当然,这并不代表迸发成了全栈.全栈的技能很集中,绝不仅仅是前端会写一些HTML和一些交 ...

  3. struts2 标签库使用

    [引用]json 使用 [引用]struts2 标签库使用 2011-05-11 16:13:00|  分类: 默认分类 |  标签: |举报 |字号大中小 订阅 本文转载自kangzye<st ...

  4. rest-assured(一)报错解决方案

    1.javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? --------1.端口设置错误 ----- ...

  5. [转]Fedora 添加国内源(sohu, 163)

    第一种方案 在国内163和搜狐提供很好的源,现在我们把它们俩添加到我们的源库.1. 添加搜狐的源 进入网站http://mirrors.sohu.com/,在左边找到fedora目录,点击该行右边的h ...

  6. 从零开始写STL-string类型

    class string { public: typedef size_t size_type; typedef char* iterator; typedef char value_type; pr ...

  7. com.sun.xxx.utils不存在问题的解决

    com.sun.org.apache.xml.internal.security.utils does not exist问题的解决 在网上找个很多的答案,但我的问题没有解决,睡一晚上后,被我误打误撞 ...

  8. Java课堂测试--实现ATM的基本操作体会

    9月20的周四的Java课堂第一节课上就是有关于实现ATM的考试内容,在实现的过程中我了解到自己本身还是有很多的不足之处,例如在实现工程方面的相似性上面还有些许就的欠缺,再者就是回宿舍拿电源的原因导致 ...

  9. ArcGIS engine中Display类库——Display

    转自原文  ArcGIS engine中Display类库——Display Display类库包括了用于显示GIS数据的对象.除了负责实际输出图像的主要显示对象(display object)外,这 ...

  10. 【转载】epoll与select/poll的区别总结

    因为这道题目经常被问到.干脆总结一下,免得遗漏了. 参考文章:http://www.cnblogs.com/qiaoconglovelife/p/5735936.html 1 本质上都是同步I/O 三 ...