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

1006C简单题(计数式子的组合意义 + dp式子联立)

http://cplusoj.com/d/senior/p/SS241006C

在这里插入图片描述

对于这个式子,我们可以从它的组合意义入手。

假设我们有 n + 1 n+1 n+1 个白球要染色,中间有一个绿球,绿球左边有 a a a 个红球,右边有 b b b 球。染完后绿球左边每个白球有 x x x 的贡献,右边每个白球有 y y y 的贡献。

但接下来怎么做呢?这列出来的式子不是一样吗?注意,当我们转化为组合意义的时候,我们就可以不考虑计数的方法了,我们可以用dp了。

d p ( n , a , b ) dp(n,a,b) dp(n,a,b) 表示当前的答案。保证绿球一定存在。

转移的话,我们可以考虑最左边和最右边的球的颜色:

d p ( n , a , b ) = d p ( n − 1 , a − 1 , b ) + x d p ( n − 1 , a , b ) dp(n,a,b)=dp(n-1,a-1,b)+xdp(n-1,a,b) dp(n,a,b)=dp(n1,a1,b)+xdp(n1,a,b)
d p ( n , a , b ) = d p ( n − 1 , a , b − 1 ) + y d p ( n − 1 , a , b ) dp(n,a,b)=dp(n-1,a,b-1)+ydp(n-1,a,b) dp(n,a,b)=dp(n1,a,b1)+ydp(n1,a,b)

考虑边界条件 a = 0 a=0 a=0,或 b = 0 b=0 b=0

  • a = 0 a=0 a=0 d p ( n , 0 , b ) = x d p ( n − 1 , 0 , b ) + ( n − 1 b ) y n − b − 1 dp(n,0,b)=xdp(n-1,0,b)+\binom{n-1}{b}y^{n-b-1} dp(n,0,b)=xdp(n1,0,b)+(bn1)ynb1
  • b = 0 b=0 b=0 d p ( n , a , 0 ) = y d p ( n − 1 , a , 0 ) + ( i − 1 a ) x i − a − 1 dp(n,a,0)=ydp(n-1,a,0)+\binom{i-1}{a}x^{i-a-1} dp(n,a,0)=ydp(n1,a,0)+(ai1)xia1

然后就到了这题最巧妙的地方了。我们发现 n n n 很大,但是是定值。而 a , b a,b a,b 很小,这启示我们并不是往矩阵来想,而是我们考虑把 n n n 丢掉。

我们直接联立最前面两条式子:

d p ( n − 1 , a − 1 , b ) + x d p ( n − 1 , a , b ) = d p ( n − 1 , a , b − 1 ) + y d p ( n − 1 , a , b ) ( x − y ) d p ( n − 1 , a , b ) = d p ( n − 1 , a , b − 1 ) − d p ( n − 1 , a − 1 , b ) dp(n-1,a-1,b)+xdp(n-1,a,b)=dp(n-1,a,b-1)+ydp(n-1,a,b)\\ (x-y)dp(n-1,a,b)=dp(n-1,a,b-1)-dp(n-1,a-1,b) dp(n1,a1,b)+xdp(n1,a,b)=dp(n1,a,b1)+ydp(n1,a,b)(xy)dp(n1,a,b)=dp(n1,a,b1)dp(n1,a1,b)

d p ( n − 1 , a , b ) = d p ( n − 1 , a , b − 1 ) − d p ( n − 1 , a − 1 , b ) x − y dp(n-1,a,b)=\dfrac{dp(n-1,a,b-1)-dp(n-1,a-1,b)}{x-y} dp(n1,a,b)=xydp(n1,a,b1)dp(n1,a1,b)

这时就可以把 n n n 丢掉了。

对于边界条件的处理,我们照样联立即可。

联立 a = 0 a=0 a=0 b = 0 b=0 b=0,可以解出 d p ( 0 , 0 ) dp(0,0) dp(0,0) 时的答案

联立 a = 0 a=0 a=0 b ≠ 0 b\neq 0 b=0,可以解出 d p ( 0 , b ) dp(0,b) dp(0,b) 的答案。

然后就做完了

现在我们还有最后一个问题, x = y x=y x=y 怎么处理。

我们直接回归原式,然后把 x n − a − b x^{n-a-b} xnab 提到外面,再重新剩下那坨式子的组合意义,此时红色蓝色已经没有意义了,相当于就是 n + 1 n+1 n+1 个球选 a + b + 1 a+b+1 a+b+1 个球,即为 ( n + m + 1 a + b + 1 ) \binom{n+m+1}{a+b+1} (a+b+1n+m+1)

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

相关文章:

  • 千益畅行,旅游创业新模式的创新与发展
  • 单调栈day54|42. 接雨水(高频面试题)、84. 柱状图中最大的矩形、两道题思维导图的汇总与对比
  • 关于Excel将列号由字母改为数字
  • 曾黎第二次受邀巴黎时装周看秀 为新疆棉代言引人瞩目
  • No.6 笔记 | Linux操作系统基础:全面概览与核心要点
  • MySQL之分库分表后带来的“副作用”你是怎么解决的?
  • 【Python】Python-JOSE:Python 中的 JSON Web Token 处理库
  • SpringBoot3+Druid YAML配置
  • 【c语言——指针详解(3)】
  • QT系统学习篇(2)- Qt跨平台GUI原理机制
  • 运用MinIO技术服务器实现文件上传——在Linux系统上安装和启动(一)
  • Python技术深度探索:从基础到进阶的实践之旅(第一篇)
  • 利士策分享,旅游是否要舟车劳顿才能尽兴?
  • C++入门——类的默认成员函数(取地址运算符重载)
  • 学习记录:js算法(四十九):二叉树的层序遍历
  • 【PCB工艺】表面贴装技术中常见错误
  • 3.使用条件语句编写存储过程(3/10)
  • Effective C++中文版学习记录(三)
  • VBA学习(76):文件合并神器/代码
  • 非农就业数据超预期,美联储降息步伐或放缓?
  • 每日OJ题_牛客_乒乓球筐_哈希_C++_Java
  • 基于SpringBoot+Vue的酒店客房管理系统
  • 检索增强思考 RAT(RAG+COT):提升 AI 推理能力的强大组合
  • python脚本实现Redis未授权访问漏洞利用
  • 简单线性回归分析-基于R语言
  • 上海理工大学《2023年+2019年867自动控制原理真题》 (完整版)
  • 计算机网络面试题——第三篇
  • Elasticsearch 开放推理 API 增加了对 Google AI Studio 的支持
  • react-问卷星项目(7)
  • 【git】main|REBASE 2/6