传送门

题目背景

第十五届东方人气投票 音乐部门 106名

第四次国内不知道东方的人对东方原曲的投票调查 51名

回忆京都副歌我tm吹爆,东方文花帖我tm吹爆!

题目描述

射命丸文在取材中发现了一个好玩的东西,叫做组合数。

组合数的定义如下:从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从nnn个不同元素中取出m个元素的一个组合。所有组合的数量,就是组合数。

其中保证m≤,表示在n个元素中选出m个元素的组合数。

为了方便理解,举一个例子:在th16.5秘封噩梦日记的第三周目中,每一天的战斗都有4个角色两两组合出场,那么很显然就有C42=6C^2_4=6C42​=6种组合方式。

关于这方面的更详细解释,请看样例说明。

由于她对新事物都存在着好奇,因此她想要知道CnmC^m_nCnm​是多少。这对她来说是个很简单的事情,因此她看了一眼就秒了,因此她决定求出下列式子:

∑i=1n∑j=1mCji​,其中当i>j的时候,钦定Cji​为0

她也很快就算出来了,不过对自己的答案不是很充满信心,因此你决定帮助她。然而没事找事的她一下子算了q次对于不同的n,m的结果,因此这只能劳烦你了。由于你不打算真正地帮助她,你无需把答案对998244353取模,也无需对64123取模,只要告诉她对19260817取模之后的答案即可。

输入输出格式

输入格式:

第一行输入一个q,表示有q次询问。

第二行开始,一共q行,每行两个数字n,m,意思如题所示。

输出格式:

一共q行,对于每一个询问,都输出一个答案。

输入输出样例

输入样例#1:
复制

5
2 3
1 4
4 3
2 5
3 5
输出样例#1: 复制

10
10
11
35
50

说明

关于组合数的样例说明。

例如有蕾米莉亚 芙兰朵露 圣白莲 丰聪耳神子在这一天组合出场,会有六种情况:

1、蕾米莉亚x芙兰朵露 背德组\text{\color{white}背德组}背德组

2、丰聪耳神子x圣白莲 宗教组\text{\color{white}宗教组}宗教组

3、蕾米莉亚x丰聪耳神子

4、芙兰朵露x丰聪耳神子

5、蕾米莉亚x圣白莲

6、芙兰朵露x圣白莲

---------------------------------------------------------------------------------------------------------

首先

我要吐槽一下这个“毒瘤”题目背景

我真的是看的一脸懵

(我才不会说我看到自闭)

我看在T2的面子上

我以为他很难很难

结果就是一个简简单单的前缀和

*********

生气

我dr怎么就那么傻啊啊啊啊

还以为是什么lucas定理

啊啊啊啊啊啊啊

(想把自己的脑袋拧下来当球踢了)

我jio的

我就是欠练和欠揍

(狠-

--------------------------------------------------------------------------------------------------------

用到二维前缀和

O(nm)预处理

O(1)查询

#include<cstdio>
using namespace std;
int c[][],sum[][];
int mod = ;
int n,m,q;
int main()
{
c[][] = c[][] = ;
for(int i = ;i <= ;i++)
{
c[i][] = ;
for(int j = ;j <= i;j++)
c[i][j] =(c[i - ][j] + c[i - ][j - ])% mod;
}
for(int i = ;i <= ;i++)
for(int j = ;j <= ;j++)
sum[i][j] =(sum[i-][j] + sum[i][j-] - sum[i-][j-] + c[i][j] + mod)%mod; scanf("%d",&q);
while(q--)
{
scanf("%d%d",&n,&m);
printf("%d\n",sum[m][n]);
}
return ;
}

还有一些情况就是在减去sum[i−1][j−1]sum[i-1][j-1]sum[i−1][j−1]的时候会减到负数,这个时候我们要加上模数,防止因为这个负数模负数出现负数之后,导致后面的结果全都混乱。

5239-回忆京都-洛谷3月赛gg祭的更多相关文章

  1. 5238-整数校验器-洛谷3月赛gg祭

    传送门 题目描述 有些时候需要解决这样一类问题:判断一个数 x是否合法. x合法当且仅当其满足如下条件: x格式合法,一个格式合法的整数要么是 0,要么由一个可加可不加的负号,一个 1到 9 之间的数 ...

  2. 洛谷五月月赛【LGR-047】划水记

    虽然月赛有些爆炸,但我永远资瓷洛谷! 因为去接水,所以迟到了十几分钟,然后洛谷首页就打不开了-- 通过洛谷题库间接打开了比赛,看了看\(TA\),WTF?博弈论?再仔细读了读题,嗯,判断奇偶性,不过要 ...

  3. 洛谷八月月赛Round1凄惨记

    个人背景: 上午9:30放学,然后因为学校举办读书工程跟同学去书城选书,中午回来开始打比赛,下午又回老家,中间抽出一点时间调代码,回家已经8:50了 也许是7月月赛时“连蒙带骗”AK的太幸运然而因同学 ...

  4. 洛谷九月月赛II

    题解:模拟 一旦不匹配就要break #include<iostream> #include<cstdio> #include<cstring> #include& ...

  5. 洛谷⑨月月赛Round2 P3393逃离僵尸岛[最短路]

    题目描述 小a住的国家被僵尸侵略了!小a打算逃离到该国唯一的国际空港逃出这个国家. 该国有N个城市,城市之间有道路相连.一共有M条双向道路.保证没有自环和重边. K个城市已经被僵尸控制了,如果贸然闯入 ...

  6. 洛谷⑨月月赛Round2 P3392涂国旗[DP]

    题目描述 某国法律规定,只要一个由N*M个小方块组成的旗帜符合如下规则,就是合法的国旗.(毛熊:阿嚏——) 从最上方若干行(>=1)的格子全部是白色的. 接下来若干行(>=1)的格子全部是 ...

  7. AC日记——松江1843路 洛谷七月月赛

    松江1843路 思路: 三分: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 100005 #define ...

  8. AC日记——小A和uim之大逃离 II 洛谷七月月赛

    小A和uim之大逃离 II 思路: spfa: 代码: #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f ...

  9. 【洛谷九月月赛T1】签到题(bsgs)(快速乘)

    说好的签到题呢qwq....怎么我签到题都不会啊qwq 之后看了bsgs才发现貌似不是那么那么难fake!!什么东西... 先贴上部分分做法(也就是枚举1的个数,然后每一步都进行取模(这和最后取模结果 ...

随机推荐

  1. 一文读懂机器学习大杀器XGBoost原理

    http://blog.itpub.net/31542119/viewspace-2199549/ XGBoost是boosting算法的其中一种.Boosting算法的思想是将许多弱分类器集成在一起 ...

  2. CentOS 7上VNCServer的安装使用

    1.安装 yum install tigervnc tigervnc-server 2.配置 vncserver的配置,创建一个新的配置文件 cp /lib/systemd/system/vncser ...

  3. java读取excel文件的两种方式

    方式一: 借用 package com.ij34.util; /** * @author Admin * @date 创建时间:2017年8月29日 下午2:07:59 * @version 1.0 ...

  4. python连接sqlserver数据库

    1.准备工作 python3.6连接sqlserver数据库需要引入pymssql模块 pymssql官方:https://pypi.org/project/pymssql/ 没有安装的话需要: pi ...

  5. EOS智能合约开发(三):EOS创建和管理账号

    没有看前面文章的小伙伴可以看一下 EOS智能合约开发(一):EOS环境搭建和启动节点 EOS智能合约开发(二):EOS创建和管理钱包 创建好钱包.密钥之后,接下来你就可以创建账号了,账号是什么?账号保 ...

  6. Django之--通过MVC架构的html模板展示Hello World!

    上一篇:Django之--网页展示Hello World! 初步说明了如何使用Django来显示hello world,本文略微进阶下使用html模板来展示hello world~ 首先在mysite ...

  7. 线程ThreadDemo04

    package day190109; public class 线程ThreadDemo04 { public static void main(String[] args) throws Inter ...

  8. Python语法的转义字符

    Python语法的转义字符 转义字符 说 明 \ 续行符 \n 换行符 \0 空  \t 水平制表符,用于横向跳到下一制表位 \'' 双引号 \' 单引号 \\ 一个反斜杠 \f 换页 \0dd 八进 ...

  9. Lua保留指定小数位数

    默认会四舍五入 比如:%0.2f 会四舍五入后,保留小数点后2位 print(string.format("%.1f",0.26)) ---会输出0.3,而不是0.2 Lua保留一 ...

  10. C# 中将月份格式化为英语缩写格式

    在测试Android 系统的时候,日期输入框需要输入英语短格式,如下. 考虑到系统日期格式和地域的关系紧密,地域不同,日期格式不同,所以经过查找,找到下面的解决方法. date.ToString(&q ...