zoukankan      html  css  js  c++  java
  • [BJ United Round 3] 押韵

    简要讲一些细节部分,大体思路 EI 题解说的很清楚。

    第一个是 (d=4) 时组合数的推导。

    首先问题模型是按顺序执行恰好 (k) 个向量 (tin {(1,0),(-1,0),(0,1),(0,-1)}) ,求到达 ((a,b)) 的方案数。

    我们把坐标系选择 (45°),并且放大 (sqrt 2) 倍,这样一来 ((a,b) ightarrow (a+b,a-b)),我们的移动向量变成了 ({(1,1),(-1,-1),(-1,1),(1,-1)}) 于是就有两维独立,算出两维分别等于 (a)(b) 的方案相乘即可。

    (k)(±1) 和为 (a) 的方案可以直接组合数。

    第二个是 (d=6) 时的递推方法。

    问题模型是按顺序执行恰好 (k) 个向量 (tin {(1,0),(-1,0),(-1,1),(0,1),(0,-1),(1,-1)}) ,求到达 ((a,b)) 的方案数。

    有负数不好进行生成函数操作,于是你把统一 +1 变成 ({(2,1),(0,1),(0,2),(1,2),(1,0),(2,0)})

    现在相当于求 (F(x,y)=y+y^2+x+xy^2+x^2+xy,G(x,y)=F(x,y)^k) 的所有系数。

    令对 (x) 求导得 (G'(x,y)=kF'(x,y)F(x,y)^{k-1}) 同乘以 (F(x,y)) 得到

    [F(x,y)G'(x,y)=kF'(x,y)G(x,y) ]

    考虑比较等式两边的 ([x^ny^m]) 系数以列出方程

    (n[x^n y^m ]+n[x^n y^{m-2} ]+(n-1)[x^{n-1} y^m ]+(n-1)[x^{n-1}y^{m-1}]+(n+1)[x^{n+1}y^{m-1}]+(n+1)[x^{n+1}y^{m-2}]=k[x^ny^m]+2k[x^{n-1}y^m]+2k[x^{n-1}y^{m-1}]+k[x^ny^{m-2}])

    这个方程涉及的未知数位置关系大概长这样:

    .oo
    o.o
    oo.
    

    然后你要递推需要的边界有 ([i,0]=[0,i]={kchoose i-k} (ige k), [i,k-i]={kchoose i} (ile k))

    一开始我是想从左下角开始推,然后发现会出现分母等于 (0)
    然后一种可行的推法是从上到下、从左到右推,用上面的方程每次解出 ([x^{n+1}y^{m-1}]) 即可。

  • 相关阅读:
    32位和64位系统区别及int字节数
    c语言指针占几个字节
    可重入和不可重入
    C中的volatile用法
    让你分分钟读懂CPU架构及芯片厂商
    手机CPU知识扫盲:谈谈手机CPU架构与原理 (全
    IO端口、IO内存、IO空间、内存空间的含义和联系
    IO端口和IO内存的区别及分别使用的函数接口
    linux终端下 编译c语言程序
    git各种撤销操作
  • 原文地址:https://www.cnblogs.com/bestwyj/p/12648812.html
Copyright © 2011-2022 走看看