#dp,高精度#洛谷 4295 [SCOI2003]严格N元树
题目
求有多少棵严格 \(n\) 叉树深度为 \(k\)
分析
考虑往下放子孙挺难维护的,考虑在上面换新的根。
设 \(dp[i]\) 表示深度不超过 \(i\) 的方案数,那么
\(dp[i]=dp[i-1]^n+1\)
就是新开一个根,每个子节点的选择独立,为 \(dp[i-1]^n\),再加上只有一个根节点的情况。
最后答案就是 \(dp[k]-dp[k-1]\)
代码
#include <cstdio>
#include <cstring>
using namespace std;
const int N=1011; int ans[N],Ans[N],C[N],t[N],k,n;
void one(int *ans){
int now=1;
while (ans[now]==9) ++now;
if (now>ans[0]) ans[0]=now;
++ans[now];
for (int i=1;i<now;++i) ans[i]=0;
}
void mul(int *A,int *B){
memset(C,0,sizeof(C));
for (int i=1;i<=A[0];++i)
for (int j=1;j<=B[0];++j)
C[i+j-1]+=A[i]*B[j];
C[0]=A[0]+B[0]+1;
for (int i=1;i<C[0];++i) C[i+1]+=C[i]/10,C[i]%=10;
while (C[0]&&!C[C[0]]) --C[0];
memcpy(A,C,sizeof(C));
}
void ksm(int *ans){
memset(t,0,sizeof(t)),t[t[0]=1]=1;
for (int y=k;y;y>>=1,mul(ans,ans))
if (y&1) mul(t,ans);
memcpy(ans,t,sizeof(t));
}
void dec(int *ans){
int g=0,s;
for (int i=1;i<=ans[0];++i){
s=ans[i]-Ans[i]-g;
if (s<0) g=1,ans[i]=s+10;
else g=0,ans[i]=s;
}
while (ans[0]&&!ans[ans[0]]) --ans[0];
}
int main(){
scanf("%d%d",&k,&n);
if (!n||k==1) return !printf("1");
ans[ans[0]=1]=1;
for (int i=1;i<=n;++i){
memcpy(Ans,ans,sizeof(ans));
ksm(ans),one(ans);
}
dec(ans);
for (int i=ans[0];i;--i) putchar(ans[i]+48);
return 0;
}
#dp,高精度#洛谷 4295 [SCOI2003]严格N元树的更多相关文章
- bzoj 1089 [SCOI2003]严格n元树(DP+高精度)
1089: [SCOI2003]严格n元树 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1250 Solved: 621[Submit][Statu ...
- 【线型DP】洛谷P2066 机器分配
[线型DP]洛谷P2066 机器分配 标签(空格分隔): 线型DP [题目] 题目描述 总公司拥有高效设备M台,准备分给下属的N个分公司.各分公司若获得这些设备,可以为国家提供一定的盈利.问:如何分配 ...
- 【BZOJ1089】[SCOI2003]严格n元树(高精度,动态规划)
[BZOJ1089][SCOI2003]严格n元树(高精度,动态规划) 题面 BZOJ 洛谷 题解 设\(f[i]\)表示深度为\(i\)的\(n\)元树个数.然后我们每次加入一个根节点,然后枚举它的 ...
- 洛谷 P3373 【模板】线段树 2
洛谷 P3373 [模板]线段树 2 洛谷传送门 题目描述 如题,已知一个数列,你需要进行下面三种操作: 将某区间每一个数乘上 xx 将某区间每一个数加上 xx 求出某区间每一个数的和 输入格式 第一 ...
- bzoj1089 [SCOI2003]严格n元树(dp+高精)
1089: [SCOI2003]严格n元树 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1899 Solved: 954[Submit][Statu ...
- BZOJ 1089: [SCOI2003]严格n元树
1089: [SCOI2003]严格n元树 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1591 Solved: 795[Submit][Statu ...
- BZOJ1089: [SCOI2003]严格n元树
1089: [SCOI2003]严格n元树 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 762 Solved: 387[Submit][Status ...
- SCOI2003 严格N元树
SCOI2003 严格N元树 Description 如果一棵树的所有非叶节点都恰好有n个儿子,那么我们称它为严格n元树.如果该树中最底层的节点深度为d (根的深度为0),那么我们称它为一棵深度为d的 ...
- Bzoj3197/洛谷3296 [SDOI2013]刺客信条assassin(树的重心+树Hash+树形DP+KM)
题面 Bzoj 洛谷 题解 (除了代码均摘自喻队的博客,可是他退役了) 首先固定一棵树,枚举另一棵树,显然另一棵树只有与这棵树同构才有可能产生贡献 如果固定的树以重心为根,那么另一棵树最多就只有重心为 ...
- 洛谷 P2495 [SDOI2011]消耗战(虚树,dp)
题面 洛谷 题解 虚树+dp 关于虚树 了解一下 具体实现 inline void insert(int x) { if (top == 1) {s[++top] = x; return ;} int ...
随机推荐
- EF Invalid column name 'Discriminator' Invalid column name 'TagCode'.
参考资料:Invalid column name 'TagCode'. 该异常和Discriminator没关系,一般原因:1.数据库中字段和实体类字段不一致导致的2.创建新增继承于数据库对应的实体类 ...
- 【Azure Redis】Azure Redis添加了内部虚拟网络后,其他区域的主机通过虚拟网络对等互连访问失败
问题描述 跨区域无法访问Azure Redis服务, Redis 启用了Network并设置在一个VNET中,现在客户端部署在另一个区域数据中心中,两个数据中心区域使用VNET Peer(对等互连)访 ...
- 【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
问题描述 PHP应用突然遇见了500 The page cannot be displayed because an internal server error has occurred.错误,但是如 ...
- 如何当个优秀的文档工程师?从 TC China 看技术文档工程师的自我修养
本文系 NebulaGraph Community Academic 技术文档工程师 Abby 的参会观感,讲述了她在中国技术传播大会分享的收获以及感悟. 据说,技术内容领域.传播领域的专家和决策者们 ...
- Jmeter 之正则表达式的使用
1 背景及用途: html.json数据都可以转化为文本,提供给正则去提取,使用正则可以提取全部数据,这就是正则表达式非常强大的一点. html格式响应更适合用xpath提取,性能比正则好一点 jso ...
- Zabbix“专家坐诊”第190期问答汇总
问题一 Q:请问为啥用拓扑图监控交换机接口流量,获取不到数据,显示未知,键值也没错 ,最新数据也能看到,是什么原因呢? A:把第一个值改成主机名. 问题二 Q:请问下zabbix server 有什么 ...
- 软件icon制作流程,就一张256-256的图即可,一键生成windows所有格式
软件icon制作流程,就一张256-256的图即可,一键生成windows所有格式 好久不用这个都有些生疏了,还特意做了好几个尺寸的图,结果白弄了,软件会自动生成. 1.准备256-256px的图 2 ...
- [转] VSCode中 Vetur插件排版Vue文件 Col 标签子标签不被缩进的问题 iview viewDesign 自动格式化
[转] VSCode中 Vetur插件排版Vue文件 Col 标签子标签不被缩进的问题 iview viewDesign 自动格式化 问题 Col标签不对齐 首先直接放解决办法 在 vsCode se ...
- vscode 快速重新启动 reload Window
vscode 快速重新启动 reload Window ctrl + shift + P 输入 reload
- GoFrame 优化接口的错误码和异常的思路
前言 你是否想在使用 GoFrame 的过程中,拥有一个能打印异常堆栈,能自定义响应状态码,能统一处理响应数据的接口.如果你回答是,那么,请耐心看完本文,或许会对你有所启发.若文中由表达不当之处,恳请 ...