2018/8/4训练日记 生成函数

A题 Singing Contest

用结构体存储每个歌手各首歌的愉悦值。排序后依次加入队列,每次将队首的两个人出对列。用二人最大值的愉悦值比较输赢后利用二分查找修改胜者的愉悦值数组。并且将胜者加入队尾,直到队列只剩下最后一个元素。

c题 Generation i

相当于染色问题。每一次染色就相当于从某个位置到末端扫一遍

然后假设一共是m个颜色,假设染 k 种颜色  就是C(m,k)

第一个位置肯定是要染色的,有k种选择方法。然后剩下的,有的需要染,有的不需要就是在n-1个位置里选出k-1个位置为开头进行染色,然后具体怎么染色还要有(k-1)!

所以 就是   C(m,k)*k*C(n-1,k-1)*(k-1) !,   k从1到min(位置数,总颜色数)

J题 Heritage of skywalkert

题意:给出n,a,b,c,按照题目给的式子求a[1]~a[n]。最后求所有(i,j)的最大LCM。

思路:保留最大的20项,然后暴力求就能过。大多数人是保留的100项也可以。

 

还有几天上午看的跟生成函数有关。。。

/*生成函数 解决一大系列的排列组合问题*/
/*无限个 一块钱,五块钱,十块钱   组合出x*/
/* 
   只用一块钱硬币的情况
 p=0个一+ 1个一 + 2个一 +....+  = z的零次方+z的一次方+...
 n=(0个五+ 1个五 + 2个五 +....+ )p=(z的零次方+z的五次方+z的十次方)p
 d=(0个十 +1个十 + ....+  )n =(z的零次方+z的十次方+z的二十)n
 等比数列求和
 p=(1-z的n次方)/(1-z) //z的绝对值小于一  收敛的
  =1/(1-z)  
  p(1-z)=1
  p-pz=1
  p(n)=p(n-1)+[n=0]  //下标
  n(n)=n(n-5)+p(n)
  d(n)=d(n-10)+n(n)
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值