【*1900 DP+Tree】CF9D

news2025/1/4 19:27:58

Problem - 9D - Codeforces

题意:

思路:

计数问题,考虑计数DP

因为它是二叉树,比较特殊,所以可以考虑一下线性DP
按照题目最后要算的答案,状态可以这样设计:

设dp[i][j]表示树高为i,结点数<=j的方案数

它其实就是按照树高为阶段的DP

怎么去转移呢

如果我们按照最后一层,即都是叶子结点的那一层来转移,发现根本不知道怎么算贡献

关于树的DP,一般都是以子树作为主体的

如果我们按照最上面那一层转移,就会发现,转移的过程中,DP的主体就是子树

 这样就很好转移了

dp[i][j]为树高是i,总结点数是j的方案数,主体是整棵树

dp[i-1][j]为树高是i-1(去掉第一层),总结点数是j的方案数,此时这个DP数组的主体就是根节点的两棵子树

这样转移方程就是:

Code:

#include <bits/stdc++.h>

#define int long long

using namespace std;

const int mxn=1e2+10;
 
int N,h;
int dp[mxn][mxn];//树高为i,该树除了子树根节点的子树有j个结点的方案数

void solve(){
    cin>>N>>h;
    for(int i=0;i<=N;i++) dp[i][0]=1ll;
    for(int i=1;i<=N;i++){
        for(int j=1;j<=N;j++){
            for(int k=0;k<j;k++){
                dp[i][j]+=dp[i-1][k]*dp[i-1][j-k-1];
            }
        }
    }
    cout<<dp[N][N]-dp[h-1][N]<<'\n';
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int __=1;//cin>>__;
    while(__--)solve();return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/582862.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux设备驱动程序(二)——建立和运行模块

文章目录 前言一、设置测试系统二、Hello World 模块1、代码详解2、执行效果 三、内核模块相比于应用程序1、用户空间和内核空间2、内核的并发3、当前进程4、几个别的细节 四、编译和加载1、编译模块2、加载和卸载模块3、版本依赖 五、内核符号表六、预备知识七、初始化和关停1…

旗鱼优化(SFO)算法(含MATLAB代码)

先做一个声明&#xff1a;文章是由我的个人公众号中的推送直接复制粘贴而来&#xff0c;因此对智能优化算法感兴趣的朋友&#xff0c;可关注我的个人公众号&#xff1a;启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法&#xff0c;经典的&#xff0c;或者是近几年…

Thread.sleep( )线程休眠的优化写法

TimeUnit.SECONDS.sleep(10)和Thread.sleep(10 * 1000)都可以用于线程休眠 代码如下&#xff1a; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.concurrent.TimeUnit; /*** program: moon-cloud-car* author: 阿水* create…

MT6765 处理器参数 MTK6765芯片性能配置|详细参数

MT6765处理器&#xff0c;也被称为Helio P35&#xff0c;是联发科(MediaTek)推出的高性能智能芯片。作为目前市场上受欢迎的低成本智能芯片之一&#xff0c;MT6765以其卓越的性能和创新技术为用户提供了更加顺畅和高效的使用体验。 MT6765作为一款八核芯片&#xff0c;MT6765的…

最佳实践:基于vite3的monorepo前端工程搭建 | 京东云技术团队

一、技术栈选择 1.代码库管理方式-Monorepo&#xff1a; 将多个项目存放在同一个代码库中 ▪选择理由1&#xff1a;多个应用&#xff08;可以按业务线产品粒度划分&#xff09;在同一个repo管理&#xff0c;便于统一管理代码规范、共享工作流 ▪选择理由2&#xff1a;解决跨项…

Homeassistant --openwrt docker 安装

openwrt homeassistant安装教程 前提&#xff1a;在N1盒子上面烧录 f大的openwrt系统 (安装81o 或者82o都可以) 一.进入openwrt系统 通常为192.168.1.1 打开网络配置 点击网络点击接口然后修改 这样网络是属于旁路由上网了 可以联通网络了 主要需要填写正确 二.点击docker …

南大通用数据库-Gbase-8a-报错集锦-02-metadata is incomplete on localhost

一、版本信息 名称值CPUIntel(R) Core(TM) i5-1035G1 CPU 1.00GHz操作系统CentOS Linux release 7.9.2009 (Core)内存3G逻辑核数2Gbase8a版本8.6.2-R43 二、问题原因 由于gbase.table_distribution存储了所有引擎为express的表元数据信息&#xff0c;如果此表出现数据损坏&a…

Linux使用PowerShell模块管理MsSql-Server

1.安装PowserShell 更新包列表 sudo apt-get update 安装依赖: sudo apt-get install -y wget apt-transport-https software-properties-common 下载 key: wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb&…

第三方apple pencil哪个好?好用的电容笔排行榜

由于Apple Pencil的推出&#xff0c;让iPad变成了一个轻量化的办公室工具&#xff0c;它的优点就是可以让画家在iPad上作画&#xff0c;能够适用于各种各样的绘画&#xff0c;并且非常适合一些上班族。今天就来为大家推荐几支适合画画的电容笔&#xff01; 第一部分、电容笔选…

「实在RPA·服装制造数字员工」助力服装「智」造数字升级

服装制造业作为衣食住行的重要组成部分&#xff0c;除了在百姓生活中扮演者着重要角色之外&#xff0c;同时在经济发展中具有重要的地位和作用。它不仅提供了大量就业机会&#xff0c;促进国际贸易和经济发展&#xff0c;同时也推动了技术创新和消费需求的满足。为顺应数字经济…

Vue组件化、通过自定义指令子组件向父组件传递

1.如何安装Vue脚手架&#xff1f; 第一步&#xff08;仅第一次执行&#xff09;&#xff1a;全局安装vue/clinpm install -g vue/cli 第二步&#xff1a;切换到你要创建项目的目录&#xff0c;然后使用命令创建项目vue create xxxx 第三步&#xff1a;启动项目npm run serve 2…

C语言中二维数组和二维数组分析

问题 最近有个同事发现一个问题&#xff1a;一个二维数组&#xff0c;想把它传给一个函数&#xff0c;具体代码如下&#xff1a; char array[3][128]; void fun(char** array) {strcpy(array[0],"confirm"); }当我试图直接把二维数组名传给函数的时候&#xff0c;f…

接入淘宝API接口,获取店铺详情轻松迈入大数据时代

随着电商行业的飞速发展&#xff0c;API接口已经成为了一种不可或缺的技术。作为中国最大的电商平台&#xff0c;淘宝也拥有着自己的API接口。本文将重点讲解淘宝API接口技术&#xff0c;包括其基本原理、使用方法、优缺点等方面&#xff0c;帮助大家进一步了解淘宝API接口的奥…

年度发布 | MeterSphere一站式开源持续测试平台发布v2.10 LTS版本

2023年5月25日&#xff0c;MeterSphere一站式开源持续测试平台正式发布v2.10 LTS版本。这是继2022年5月发布v1.20 LTS版本后&#xff0c;MeterSphere开源项目发布的第三个LTS&#xff08;Long Term Support&#xff09;版本。MeterSphere开源项目组将对MeterSphere v2.10 LTS版…

一个完整的APP定制开发流程是怎样的?

随着移动互联网的发展&#xff0c;越来越多的 APP应用软件进入人们的生活&#xff0c;让我们的生活更便捷、更舒适。而随着互联网技术的进步&#xff0c;移动互联网应用软件开发行业也越来越成熟&#xff0c;为了适应市场需求&#xff0c;各种功能强大、性能良好的 APP应用软件…

电商API接口系列封装(提高工程师时效性,降低错误率)

API接口封装是指将原本分散在各个模块或系统中的API接口进行封装&#xff0c;形成一个可重用且独立的API库。通过API接口封装&#xff0c;可以提高系统的可维护性和可扩展性&#xff0c;降低开发成本和维护难度。 API接口封装通常分为两个步骤&#xff1a; 定义API接口&#x…

涨知识!一文带你读懂空气质量数据(附Java 和小程序接入示例代码)

空气污染对人类健康和环境造成了巨大的危害。据统计&#xff0c;每年因空气污染导致的早逝人数超过数百万人。长期暴露在污染物中&#xff0c;人们易患呼吸系统疾病、心血管疾病、癌症等。此外&#xff0c;空气污染还对生态系统、农作物和能源消耗产生负面影响。 在解决空气质…

首届百度商业AI技术创新大赛启动 点燃AIGC革新“星火”

随着生成式AI在全球范围的热议&#xff0c;AIGC前沿技术也在快速迭代&#xff0c;正如百度CEO李彦宏所说 “人工智能发生了方向性改变&#xff0c;从辨别式AI走向生成式AI&#xff0c;生成式AI会带来极大的效率提升” 。而这一领域的发展&#xff0c;将推动AI产品应用深化&…

Spark入门这篇就够了(万字长文)

本文已收录至Github&#xff0c;推荐阅读 &#x1f449; Java随想录 文章目录 Spark是什么Spark组件Spark的优势Word Count Spark基本概念ApplicationDriverMaster和WorkerExecutorJobTaskStageStage的划分 窄依赖 & 宽依赖ShuffleRDDDAG Spark执行流程Spark运行模式RDDRDD…

项目开发-依赖倒置、里式替换、接口隔离的应用深入理解

文章目录 前言依赖倒置定义不符合依赖倒置原则是什么样子&#x1f604;完善 里式替换定义具体应用 接口隔离定义具体应用 前言 最近在做.net项目和学习这个设计模式中的依赖倒置和工厂方法&#xff0c;这个过程当中发现在开发这个.net项目中有很多不合理的地方&#xff0c;就是…