母函数基础

 

关于母函数的基本定义和初步认识参见杭电lcy的课件 (传送门) 另外还有一篇比较好的文章(传送门)。听着貌似不是那么简单的东西,其实很简单,看一下就懂了。

母函数解决的主要是这样一个问题:几组不同的数,每组选取一个数,相加得到一个结果,问可以有哪些结果并且每种结果的组合方案有几种。巧妙地利用了多项式的乘法以及多项式的化简(合并同类项)来解决问题。

下面是几道题目:(源自于HDU的DIY:http://acm.hdu.edu.cn/diy/contest_show.php?cid=9068

 

Problem A:问一个整数有多少种拆分方法,如:4=4;4=1+3;4=2+2;4=1+1+2;4=1+1+1+1,即4有5种拆分方法

解析:这题最早做的时候用的是DP,是一种比较高效的方法,母函数也可以拿过来解这道题。

 

 

Problem B:问用289以内的平方数构成所给的数的方案有多少,与上题雷同

 

 

 

Problem C:有1 2 5三种硬币,给你每种硬币的个数,问最小的不能得到的钱数是多少

解析:如对面值为2的硬币,个数有n个,则其所对应的多项式为(1+x^2+x^3+.....+x^(2*n))

 

 

 

 

 

另外,这题用多重背包做更快更好

 
PROBLEM D:石子分堆问题,若干已知重量的石头,尽可能的平分 这题本来就是一个背包,母函数也可以解决
 
Problem E:求水果拼盘的方案数 要求水果的数量是a到b 那么其所对应的多项式为(x^a+..+x^b)
 
Problem F: 有一个天平(不带游标) 几个已知重量的砝码 问是否可以测量【1,s】内的重量 由于砝码不是只能放在一边的,所以用母函数的时候要加上负幂的情况,而解决负幂的一种方法就是将每一项的指数都加上s,这样就保证没有负幂了。最后结果判断的时候再减去s即可
 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Matlab中,矩阵函数是指对矩阵进行特殊的数学运算或操作的函数。其中一些常见的矩阵函数包括: 1. 点乘运算(.*):矩阵的点乘运算指的是对矩阵中的每个元素进行乘法操作。这种运算符通过在乘法符号前加一个点来表示。例如,对于矩阵A和矩阵B,A .* B 表示对A和B中对应位置的元素进行乘法运算。 2. 点除运算(./):矩阵的点除运算指的是对矩阵中的每个元素进行除法操作。这种运算符通过在除法符号前加一个点来表示。例如,对于矩阵A和矩阵B,A ./ B 表示对A和B中对应位置的元素进行除法运算。 3. 点方运算(.^):矩阵的点方运算指的是对矩阵中的每个元素进行幂运算。这种运算符通过在幂运算符号前加一个点来表示。例如,对于矩阵A,A .^ n 表示对A中的每个元素进行n次幂运算。 此外,在Matlab中还存在其他一些数学函数,如指数函数、三角函数和对数函数等。这些函数在对矩阵进行操作时,相当于对矩阵中的每个元素进行相应的数学运算。例如,对于矩阵A,sin(A)表示对A中的每个元素求正弦值。 需要注意的是,矩阵函数的使用要根据具体的计算目的来确定,有时候点乘运算和矩阵乘法运算可能是等效的。同时,在进行矩阵的点乘、点除和点方运算时,需要保证参与运算的矩阵具有相同的维度。此外,在进行除法运算时,还要注意避免除以零,因为除以零在数学上是没有定义的。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Matlab 常见自带函数总结](https://blog.csdn.net/qq_43493562/article/details/95759435)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值