链接:https://ac.nowcoder.com/acm/contest/5881/D
来源:牛客网

题目描述
求以xx结尾的长度为ll的不下降正整数数列一共有多少个。对911451407911451407取模
输入描述:
\textbf{本题有多组数据。}本题有多组数据。
第一行一个正整数TT,表示数据组数。

对于每组数据:两个用空格隔开的整数l, xl,x。

输出描述:
TT行,每行一个答案。
示例1
输入
复制
2
2 1
2 3
输出
复制
1
3
备注:
对于前10%10%的数据,T = 10; l, x \leq 10T=10;l,x≤10
对于前20%20%的数据,T = 10;l, x \leq 1000T=10;l,x≤1000
对于前40%40%的数据,T = 10;l, x \leq 10^5T=10;l,x≤10
5

对于100%100%的数据,T \leq 10^5; 0 < l, x \leq 10^6T≤10
5
;0<l,x≤10
6

思路:
定义f[x][l]f[x][l]f[x][l]代表结尾数为xxx且长度为lll的方案数。
那么f[x][l]f[x][l]f[x][l]=∑f[k][l−1]∑f[k][l-1]∑f[k][l−1] (1≤k≤x)(1≤k≤x)(1≤k≤x)

那么f[x][l]f[x][l]f[x][l]=f[x−1][l]+f[x][l−1]f[x-1][l]+f[x][l-1]f[x−1][l]+f[x][l−1]
这实际就相当于x∗lx*lx∗l的平面,从(1,1)出发走到(x,l),只从往右和往下走。
所以答案是C(x+l−2,x−1)C(x+l-2,x-1)C(x+l−2,x−1)

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <iostream>
#include <map>
#include <string>using namespace std;typedef long long ll;const int mod = 911451407;
const int maxn = 2e6 + 7;ll fac[maxn],inv[maxn];ll qpow(ll a,ll b)
{ll res = 1;while(b){if(b & 1){res = (res * a) % mod;}a = (a * a) % mod;b = b >> 1;}return res % mod;
}ll C(ll n,ll m)
{if(m > n || m < 0)return 0;return fac[n] * ((inv[n - m] * inv[m]) % mod) % mod;
}void init()
{fac[0] = 1;inv[0] = 1;for(int i = 1;i <= maxn - 2;i++){fac[i] = (fac[i - 1] * i) % mod;inv[i] = qpow(fac[i],mod - 2);}
}int main() {init();int T;scanf("%d",&T);while(T--) {int l,x;scanf("%d%d",&l,&x);swap(l,x);printf("%lld\n",C(x + l - 2,l - 1));}return 0;
}

牛客IOI周赛17-普及组 数列统计(组合数)相关推荐

  1. 牛客IOI周赛26-提高组(逆序对,对序列,未曾设想的道路) 题解

    文章目录 逆序对 对序列 未曾设想的道路 牛客IOI周赛26-提高组 逆序对 这种套路之前已经见过几次了,肯定不是模拟操作数列 opt 1 对于i∈[1,l)⋃(r,n]i∈[1,l)\bigcup( ...

  2. 牛客IOI周赛27-普及组

    牛客IOI周赛27-普及组 A题(小H的小猫) (来源:nowcoder_牛客IOI周赛27-普及组_A题) 题目链接:https://ac.nowcoder.com/acm/contest/1915 ...

  3. 牛客IOI周赛22-提高组 华丽转身 C++

    牛客IOI周赛22-提高组 华丽转身 C++ 原题链接 在红星中学,一个年级一学年共有 n 场考试,每场考试都有 m 名同学参加,有一个巨佬叫李华 ,他已经不屑于通过AK考试来获得快感,于是他找到了一 ...

  4. 牛客IOI周赛22-普及组

    战争尾声 链接:https://ac.nowcoder.com/acm/contest/11038/A 来源:牛客网 当攻占主城成功的信号弹与敌人的子弹同时射出,信号弹照亮了民众对于和平的渴望与对于未 ...

  5. 牛客IOI周赛17-普及组题解

    题目链接 A.夹娃娃 题意: 给定n个值ai给定n个值a_i给定n个值ai​ q次询问,每次给出l和rq次询问,每次给出l和rq次询问,每次给出l和r 求出区间l到r的和求出区间l到r的和求出区间l到 ...

  6. 牛客IOI周赛19-普及组 C.小y的旅行

    题目链接 题意 n个点m条边的无向图,最少需要删除多少条边,使得编号≤k\le k≤k的点不在一个环上. 思路 采用并查集将编号都大于K的边进行合并,这样相当于将一些无关的边进行缩点,然后再进行一次并 ...

  7. 牛客IOI周赛19-普及组 B.小y的序列

    题目链接 题意 长度为n的序列,最少需要修改多少个数字,满足a[i+1]=a[i]+i,i∈[2,n]a[i+1] = a[i] + i,\ i\in[2, n]a[i+1]=a[i]+i, i∈[2 ...

  8. 牛客IOI周赛16-普及组

    比赛链接 文章目录 求导 题目描述 题解: 猜数 题意: 题解: 方法一 贪心 方法二 暴力 答题卡 题意: 题解: 代码: 求导 链接: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C+ ...

  9. 牛客IOI周赛22-普及组 路线规划 查并集

    路线规划 戳我找原题 成为热门手记人偶的薇尔莉特伊芙嘉登最近收到了非常多的委托,这些委托者分散在世界的各地,各个国家都有.但正值战争的尾声,穿行于各个国家之间是非常危险的,一路上会有许多的敌人,这些敌 ...

  10. 牛客OI周赛2-提高组

    A.游戏 链接:https://www.nowcoder.com/acm/contest/210/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他 ...

最新文章

  1. 27岁华裔小伙一战成名!搞出美国新冠最准预测模型
  2. Java并发编程之ConcurrentHashMap
  3. 微软Edge扩展工具箱旨在将Chrome扩展带至Edge
  4. Python的函数参数传递:传值?引用?
  5. OpenCV+Python实现视频文件裁剪功能
  6. 中农大计算机组成原理在线作业1,河北农大2017计算机组成原理_在线作业_1课案.docx...
  7. Linux CH340驱动安装
  8. 英文环境中Wine微信不能显示中文
  9. 基于YOLOv5的银行卡卡号识别(一)
  10. angular 万年历_世界豪华手表
  11. 这才是索罗斯暴富的真实秘密
  12. 厉害了!自己动手也能做一个推荐系统!
  13. GGNMOS ESD保护器件
  14. SparkStreaming读Kafka- Couldn't find leaders for Set
  15. 解决ios13 cydia更新出现http/1.1 404 not found
  16. Python3爬取前程无忧招聘数据教程
  17. 金刚java_KgHost
  18. 现代信号分析与处理简答题期末总结BISTU
  19. java实现老鼠迷宫游戏
  20. 如何下载百度离线地图瓦片数据

热门文章

  1. Facebook币Libra学习-6.发行属于自己的代币Token案例(含源码)
  2. Linux 中task_struck
  3. python:series详解和数据获取
  4. 关于适配器网络出现/键盘注册表损坏
  5. How to craw the Info of BiliBIli with python
  6. vue 解决跨域时报错 Cannot read property ‘split‘ of null
  7. CS:APP第六章知识总结(内存、缓存、locality)
  8. ▶ajax 完整参数
  9. 隐式微分方程求解Matlab
  10. 10 杀手级的网络管理员的工具