设f[i]为深度为i的n元树数目,s为f的前缀和

s[i]=s[i-1]^n+1,就是增加一个根,然后在下面挂n个子树,每个子树都有s[i-1]种

写个高精就行了,好久没写WA了好几次……

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=55,mod=1e8;
int n,m;
struct qwe
{
long long a[N];
void clr()
{
memset(a,0,sizeof(a));
}
qwe operator + (const qwe &b) const
{
qwe c;
c.clr();
for(int i=1;i<=50;i++)
{
c.a[i]+=a[i]+b.a[i];
c.a[i+1]+=c.a[i]/mod;
c.a[i]%=mod;
}
return c;
}
qwe operator -(const qwe &b) const
{
qwe c;
c.clr();
for(int i=1;i<=50;i++)
{
c.a[i]+=a[i]-b.a[i];
if(c.a[i]<0)
{
c.a[i]+=mod;
c.a[i+1]--;
}
}
return c;
}
qwe operator * (const qwe &b) const
{
qwe c;
c.clr();
for(int i=1;i<=50;i++)
for(int j=1;j+i-1<=50;j++)
c.a[j+i-1]+=a[i]*b.a[j];
for(int i=1;i<=50;i++)
{
c.a[i+1]+=c.a[i]/mod;
c.a[i]%=mod;
}
return c;
}
}s[N],y;
qwe ksm(qwe a,int b)
{
qwe r=y;
while(b)
{
if(b&1)
r=r*a;
a=a*a;
b>>=1;
}
return r;
}
int main()
{
scanf("%d%d",&n,&m);
if(m==0)
{
puts("1");
return 0;
}
y.a[1]=1;
s[0]=y;
for(int i=1;i<=m;i++)
s[i]=ksm(s[i-1],n)+y;
qwe ans=s[m]-s[m-1];
int l=50;
while(!ans.a[l])
l--;
printf("%lld",ans.a[l]);
for(int i=l-1;i>=1;i--)
printf("%08lld",ans.a[i]);
return 0;
}

bzoj 1089: [SCOI2003]严格n元树【dp+高精】的更多相关文章

  1. bzoj1089 [SCOI2003]严格n元树(dp+高精)

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

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

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

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

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

  4. BZOJ 1089 SCOI2003 严格n元树 动态规划+高精度

    题目大意:定义一棵深度为d的严格n元树为根的深度为0,最深的节点深度为d,且每一个非叶节点都有恰好n个子节点的树 给定n和d,求深度为d的严格n元树一共同拥有多少种 此题的递推部分并不难 首先我们设深 ...

  5. bzoj 1089 SCOI2003严格n元树 递推

    挺好想的,就是一直没调过,我也不知道哪儿的错,对拍也拍了,因为数据范围小,都快手动对拍了也不知道 哪儿错了.... 我们定义w[i]代表深度<=i的严格n元树的个数 那么最后w[d]-w[d-1 ...

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

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

  7. 【noi 2.6_9280】&【bzoj 1089】严格n元树(DP+高精度+重载运算符)

    题意:定义一棵树的所有非叶节点都恰好有n个儿子为严格n元树.问深度为d的严格n元树数目. 解法:f[i]表示深度为<=i的严格n元树数目.f[i]-f[i-1]表示深度为i的严格n元树数目.f[ ...

  8. BZOJ1089:[SCOI2003]严格n元树(DP,高精度)

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

  9. P4295 [SCOI2003]严格N元树 DP

    思路:DP 提交:\(5\)次 错因:2次高精写错(我太菜了),2次写错特判 题解: 设\(f[i]\)表示深度\(\leq i\)的严格\(n\)元树的数目,有 \[f[i]=pow(f[i-1], ...

随机推荐

  1. React学习及实例开发(二)——用Ant Design写一个简单页面

    本文基于React v16.4.1 初学react,有理解不对的地方,欢迎批评指正^_^ 一.引入Ant Design 1.安装antd yarn add antd 2.引入 react-app-re ...

  2. activiti eclipse 插件不自动生成png

    看下图,是不是很简单?

  3. C#编程语言及.NET 平台快速入门指南

    github: https://github.com/mfjiang e-mail: hamlet.jiang@live.com   ⼀.C#,CLR,IL,JIT概念 以及 .NET 家族 (⼀)基 ...

  4. Office EXCEL 2010如何启用宏编辑器,打开VB编辑器

    文件-选项-主选项卡,勾选开发工具 然后在开发工具中找到Visual Basic编辑器,打开代码

  5. Python中字符运算的优先级

    表1-2 运算符优先级 运算符 描述 lambda Lambda表达式 or 布尔“或” and 布尔“与” not x 布尔“非” in,not in 成员测试 is,is not 同一性测试 &l ...

  6. SPOJ QTREE6 lct

    题目链接 岛娘出的题.还是比較easy的 #include <iostream> #include <fstream> #include <string> #inc ...

  7. 开发Nodejs(rest框架)版本的百度新闻系统--开发环境配置

    项目介绍:配置好开发环境,制作前端百度新闻界面,后台开发成Nodejs版本,做成做成rest风格API形式搭载mysql,使用Bootstrap搭建后台页面,完成对新闻的增删改查功能,利用Ajax配合 ...

  8. spring boot redis缓存入门

    摘要: 原创出处 泥瓦匠BYSocket 下载工程 springboot-learning-example ,工程代码注解很详细.JeffLi1993/springboot-learning-exam ...

  9. JSONArray ja = JSONArray.fromObject(list);//特殊类 用于将list转化为JSON 数据并返回 out.print(ja);

    JSONArray ja = JSONArray.fromObject(list);//特殊类 用于将list转化为JSON 数据并返回out.print(ja);

  10. HDU - 2063 过山车(最大匹配数)(模板)

    1.男生女生一起坐过山车,每一排有两个座位,但是有个条件,就是每个女生必须找个男生做同伴一起(但是女生只愿意和某几个男生中的一个做同伴),求最多可以有多少对男女生组合坐上过山车. 2.二分图的最大匹配 ...