题目:
https://codeforces.com/gym/101480

给一个 n ∗ n n*n n∗n的矩阵,告诉第一行和第一列的数,并且有递推式
F ( i , j ) = a F ( i , j − 1 ) + b F ( i − 1 , j ) + c 2 ≤ i , j ≤ n F(i,j)=aF(i,j-1)+bF(i-1,j)+c\quad 2\le i,j\le n F(i,j)=aF(i,j−1)+bF(i−1,j)+c2≤i,j≤n
求 F ( n , n ) m o d 1 0 6 + 3 F(n,n)\;mod\;10^6+3 F(n,n)mod106+3, 2 ≤ n ≤ 200000 2\le n\le 200000 2≤n≤200000。

思路:

  • 我们首先考虑求出每个初始值的贡献。
    F ( 1 , i ) F(1,i) F(1,i)对 F ( n , n ) F(n,n) F(n,n)的贡献是 ( 2 n − 2 − i n − 2 ) a n − i b n − 1 F ( 1 , i ) {2n-2-i\choose n-2}a^{n-i}b^{n-1}F(1,i) (n−22n−2−i​)an−ibn−1F(1,i)。
    可以这样理解, F ( 1 , i ) F(1,i) F(1,i)会对下面和右面有贡献,就相当于 F ( 1 , i ) F(1,i) F(1,i)每次可以向下或向右走,向右走会乘 a a a,向下走乘 b b b,所以 a a a的幂就是横向距离,同理 b b b。至于系数,就是从初始点往下往右走到 ( x , y ) (x,y) (x,y)的方案数。初始位置为 ( 2 , i ) (2,i) (2,i),因为刚开始只能往下走。所以就是 ( 2 n − 2 − i n − 2 ) {2n-2-i\choose n-2} (n−22n−2−i​)。同理 F ( i , 1 ) F(i,1) F(i,1)的贡献为 ( 2 n − 2 − i n − 2 ) a n − 1 b n − i F ( i , 1 ) {2n-2-i\choose n-2}a^{n-1}b^{n-i}F(i,1) (n−22n−2−i​)an−1bn−iF(i,1).。
  • 对于 c c c的处理可以参考高中的求解递推数列,假设有
    a n = k a n − 1 + m a_n=ka_{n-1}+m an​=kan−1​+m
    可以构造变成等比数列
    ( a n + d ) = k ( a n − 1 + d ) a n = k a n − 1 + ( k − 1 ) d \begin{aligned} (a_n+d)&=k(a_{n-1}+d)\\ a_n&=ka_{n-1}+(k-1)d\\ \end{aligned} (an​+d)an​​=k(an−1​+d)=kan−1​+(k−1)d​
    则 d = m k − 1 d=\frac{m}{k-1} d=k−1m​。
    所以类似的
    F ( i , j ) = a F ( i , j − 1 ) + b F ( i − 1 , j ) + c ( F ( i , j ) + d ) = a ( F ( i , j − 1 ) + d ) + b ( F ( i − 1 , j ) + d ) F ( i , j ) = a F ( i , j − 1 ) + b F ( i − 1 , j ) + d ( a + b − 1 ) \begin{aligned} F(i,j)&=aF(i,j-1)+bF(i-1,j)+c\\ \big(F(i,j)+d\big)&=a\big(F(i,j-1)+d\big)+b\big(F(i-1,j)+d\big)\\ F(i,j)&=aF(i,j-1)+bF(i-1,j)+d(a+b-1)\\ \end{aligned} F(i,j)(F(i,j)+d)F(i,j)​=aF(i,j−1)+bF(i−1,j)+c=a(F(i,j−1)+d)+b(F(i−1,j)+d)=aF(i,j−1)+bF(i−1,j)+d(a+b−1)​
    则 d = c a + b − 1 d=\frac{c}{a+b-1} d=a+b−1c​,所以我们令 f ( i , j ) = F ( i , j ) + d f(i,j)=F(i,j)+d f(i,j)=F(i,j)+d
    f ( i , j ) = a f ( i , j − 1 ) + b f ( i − 1 , j ) f(i,j)=af(i,j-1)+bf(i-1,j) f(i,j)=af(i,j−1)+bf(i−1,j)
    再用上面的贡献算,则
    f ( n , n ) = ∑ i = 2 n ( 2 n − 2 − i n − 2 ) a n − i b n − 1 f ( 1 , i ) + ∑ i = 2 n ( 2 n − 2 − i n − 2 ) a n − 1 b n − i f ( i , 1 ) F ( n , n ) = f ( n , n ) − d \begin{aligned} f(n,n)&=\sum_{i=2}^{n}{2n-2-i\choose n-2}a^{n-i}b^{n-1}f(1,i)+\sum_{i=2}^{n}{2n-2-i\choose n-2}a^{n-1}b^{n-i}f(i,1)\\ F(n,n)&=f(n,n)-d \end{aligned} f(n,n)F(n,n)​=i=2∑n​(n−22n−2−i​)an−ibn−1f(1,i)+i=2∑n​(n−22n−2−i​)an−1bn−if(i,1)=f(n,n)−d​

Problem F: Frightful Formula相关推荐

  1. 【NTT】Gym - 101480 - F - Frightful Formula

    题目链接https://codeforces.com/gym/101480/attachments 题意 给出一个矩阵,第一行是数组 t t t,第一列是数组 l l l,其余的值为 F [ i ] ...

  2. 2015-2016 ACM-ICPC, Central Europe Regional Contest (CERC 15) F.Frightful Formula(大数NTT)

    题目链接:http://codeforces.com/gym/101480/attachments mark一下O(1)快速乘,啥原理啊?还有这个长度计算,貌似也得好好学学啊? 代码: #includ ...

  3. Frightful Formula Gym - 101480F (待定系数法)

    Problem F: Frightful Formula \[ Time Limit: 10 s \quad Memory Limit: 512 MiB \] 题意 题意就是存在一个\(n*n\)的矩 ...

  4. bzoj 4451 : [Cerc2015]Frightful Formula FFT

    4451: [Cerc2015]Frightful Formula Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 177  Solved: 57 [S ...

  5. 2018 Multi-University Training Contest 3 Problem F. Grab The Tree 【YY+BFS】

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6324 Problem F. Grab The Tree Time Limit: 2000/1000 MS ...

  6. Problem F: 结构体--学生信息排序

    Problem F: 结构体–学生信息排序 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 378 Solved: 192 [Submit][Status ...

  7. Problem F: Matrix Problem (III) : Array Practice Time Limit: 1 Sec Memory Limit: 4 MB Submit: 8787

    Problem F: Matrix Problem (III) : Array Practice Time Limit: 1 Sec  Memory Limit: 4 MB Submit: 8787  ...

  8. Problem F: 凹凸四边形

    Problem F: 凹凸四边形 Description 四边形分为凸四边形和凹四边形,如下图,图1为凸四边形,图2为凹四边形. 按照连边顺序给出四边形的四个顶点坐标,判断该四边形是凹四边形还是凸四边 ...

  9. Problem F: 计票

    Problem F: 计票 Description 美国总统大选终于拉开了正式帷幕,大家都预计希拉里会获胜.各州的统计结果陆续出来了,你能帮忙统计下总得票吗? Input 多组测试数据,每组先输入一个 ...

最新文章

  1. 在文本每一行的行首和行尾都插入特定的相同字符或文本
  2. 为什么python中不需要变量名和变量类型声明?
  3. wget python3_python wget
  4. 工具类集和_gblfy版本
  5. matlab chan算法定位,MATLAB实现基于Chan氏算法的三维TDOA定位
  6. 前端框架--React props与React state
  7. c语言 指正判断字符串大小
  8. Java 并发编程之同步工具类闭锁 CountDownLatch
  9. c++如何获取文件时间_3分钟短文 | PHP 如何优雅地获取文件扩展名?别再explode了
  10. networkx 点的属性_在NetworkX中分配节点属性时发生类型错误
  11. android插件依赖和aar依赖,Android Studio添加aar依赖的两种方式
  12. CefSharp 实现拖拉滑动验证Demo
  13. oracle19c报价_Oracle 19c下载
  14. 头条小程序登录40014 bad params
  15. [CSP2020]儒略日
  16. pigx框架费用_【开源项目】一篇文章搞掂:Pig微服务框架
  17. 如何查看 安卓证书 的签名
  18. android之RecyclerView.Adapter介绍
  19. pyppeteer文件下载
  20. 数据库中的参照完整性(Foreign Key)

热门文章

  1. Nessus安装解除ip限制和卸载
  2. 实习面试:一天内时针和分针能相遇几次?
  3. 【链助手】苹果App签名后闪退有哪些原因?
  4. Chrome 自动填充的表单是淡黄色的背景解决办法,
  5. 十个很好用的工具类网站
  6. java过滤map去除重复数据,javascript模拟map输出与去除重复项的方法
  7. 【LeetCode第 80 场双周赛】
  8. 厦门大学计算机学院控制系,厦门大学自动化系简介
  9. “剥皮”法求区域中心
  10. 【考研英语笔记】现阶段还没有掌握的考研核心词汇