当前位置: 首页 > news >正文

整数划分——DP

j j j 个数表示 i i i 的方案数,考虑dp

转移考虑最小值是否为1

无限制

  1. 若为1,则转移到 f ( i + 1 , j + 1 ) f(i+1, j+1) f(i+1,j+1)
  2. 不为1,则全部+1,转移到 f ( i + j , j ) f(i+j, j) f(i+j,j)

数之间不能重复

那么相当于每次整体+1

  1. 若为1,转移到 f ( i + j + 1 , j + 1 ) f(i+j+1, j+1) f(i+j+1,j+1)
  2. 不为1,转移到 f ( i + j , j ) f(i+j, j) f(i+j,j)

数的上界有限制

考虑 f ( i , j ) f(i,j) f(i,j) 所有数都合法,我们现在整体+1,那么不合法的数只会变成 n + 1 n+1 n+1

而我们在上面保证数两两不同,所以我们可以直接让 f ( i , j ) − = f ( i − ( n + 1 ) , j − 1 ) f(i,j)-=f(i-(n+1),j-1) f(i,j)=f(i(n+1),j1),相当于钦定一个数为 n + 1 n+1 n+1

题目:https://www.luogu.com.cn/problem/P4104

http://www.lryc.cn/news/186527.html

相关文章:

  • Git切换用户常用命令
  • 一般香港服务器带宽选多大够用?(带宽计算方法)
  • vue中使用ali-oss上传文件到阿里云上
  • php实战案例记录(17)计算时间的函数及其示例说明
  • 基于Keil a51汇编 —— MPL 宏定义
  • Android 13 骁龙相机点击拍照流程分析(二)——点击拍照到存入相册
  • 常见算法-巴斯卡三角形(Pascal)
  • AI:09-基于深度学习的图像场景分类
  • uni-app:引入echarts(使用renderjs)
  • 使用wireshark解析ipsec esp包
  • linux如何删除最近操作的日志
  • android端MifareClassicTool
  • 设计模式 - 迭代器模式
  • Docker之Dockerfile搭建lnmp
  • 排序算法——选择排序
  • 【数据结构C/C++】双向链表的增删改查
  • Godot 添加Nuget 引用
  • IC工程师职场必备《经典Verilog100多个代码案例》(附下载)
  • springboot项目做成公共项目
  • RTC 时间、闹钟
  • 【yolo系列:yolov7训练添加spd-conv】
  • 面向对象设计-UML六种箭头含义
  • 一本没有任何数学公式的自然语言处理入门书
  • 【数据结构C/C++】多维数组的原理、访问方式以及作用
  • 2023年中国烹饪机器人市场发展概况分析:整体规模较小,市场仍处于培育期[图]
  • Android原生实现控件选择背景变色方案(API28及以上)
  • 为什么要学C语言及C语言存在的意义
  • 数据结构——空间复杂度
  • uniapp:swiper-demo效果
  • Graphviz 作图工具