洛谷P5160 WD与循环
我们看这段代码
int cnt = 0;
for (int a_1 = 0; a_1 <= m; a_1++) {
    for (int a_2 = 0; a_1 + a_2 <= m; a_2++) {
    ...
        for (int a_n = 0; a_1 + a_2 + ... + a_n <= m; a_n++) {
            cnt = (cnt + 1) % 19491001;
        }
    }
}
printf("%d\n", cnt);
其实是可以改写为
int cnt = 0;
for (int a_1 = 1; a_1 <= m + n; a_1++) {
    for (int a_2 = 1; a_1 + a_2 <= m + n; a_2++) {
    ...
        for (int a_n = 1; a_1 + a_2 + ... + a_n <= m + n; a_n++) {
            cnt = (cnt + 1) % 19491001;
        }
    }
}
printf("%d\n", cnt);
答案不变(就是把\(a_0, a_1, ... , a_n\)全部加了1,源代码里相应的\(m\)要增加\(n\),因为n个循环变量,每个变量都增加了1,所需增加即为\(n \times 1 = n\))
然后根据组合数学中组合数的定义,所求为C(m + n, n)
由于数特别大~,而且19491001是质数,所以这里使用了Lucas定理
哦对了还要用乘法逆元的线性求法
下面代码
#include <bits/stdc++.h>
#define int long long
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
using namespace std;
const int maxn = 20000000;
const int p = 19491001LL;
int n, inv[maxn], m, js[maxn];
int Lucas(int n, int m)
{
    if(n < m)return 0LL;
    if(n < p)return js[n] * inv[m] % p * inv[n - m] % p;
    return Lucas(n % p, m % p) * Lucas(n / p, m / p) % p;
}
signed main()
{
    int t;
    scanf("%lld", &t);
    js[0] = 1LL;
    for(register int i = 1LL; i <= p; i++)js[i] = js[i - 1] * i % p;
    inv[1] = 1LL; inv[0] = 1LL;
    for(register int i = 2LL; i <= p; i++)inv[i] = (p - p / i) * inv[p % i] % p;
    for(register int i = 2LL; i <= p; i++)inv[i] = inv[i] * inv[i - 1] % p;
    while(t--)
    {
        scanf("%lld%lld", &n, &m);
        printf("%lld\n", Lucas(n + m, m));
    }
    return 0;
}
三年OI一场空,不开long long见祖宗
洛谷P5160 WD与循环的更多相关文章
- 洛谷P5163 WD与地图
		只有洛谷的毒瘤才会在毒瘤月赛里出毒瘤题...... 题意:三个操作,删边,改变点权,求点x所在强连通分量内前k大点权之和. 解:狗屎毒瘤数据结构乱堆...... 整体二分套(tarjan+并查集) + ... 
- 洛谷 P5162 WD与积木 解题报告
		P5162 WD与积木 题目背景 WD整日沉浸在积木中,无法自拔-- 题目描述 WD想买\(n\)块积木,商场中每块积木的高度都是\(1\),俯视图为正方形(边长不一定相同).由于一些特殊原因,商家会 ... 
- 洛谷P5159 WD与矩阵
		题目背景 WD整日沉浸在矩阵中,无法自拔-- 题目描述 WD特别喜欢矩阵,尤其是\(01\)矩阵. 一天,CX给了WD一个巨大的\(n\)行\(m\)列的\(01\)矩阵,WD发现这个矩阵每行.每列的 ... 
- 洛谷训练P1008(循环+暴力)
		1 #include<stdio.h> 2 #include<string.h> 3 int a[10]; 4 int main(){ 5 for (int x=123;x&l ... 
- 洛谷P5162 WD与积木 [DP,NTT]
		传送门 思路 真是非常套路的一道题-- 考虑\(DP\):设\(f_n\)为\(n\)个积木能搭出的方案数,\(g_n\)为所有方案的高度之和. 容易得到转移方程: \[ \begin{align*} ... 
- 【洛谷 P3965】 [TJOI2013]循环格(费用流)
		题目链接 回路限制经典题. 每个点拆成入点和出点,源点连每个点的出点,流量1,费用0,每个点出点连汇点,流量1,费用0,入点和出点之间没有边. 也就是说每个点必须靠其他点流来的流量来流入汇点,同时自己 ... 
- 洛谷 P5162 WD与积木【多项式求逆】
		设f[i]为i个积木能堆出来的种类,g[i]为i个积木能堆出来的种类和 \[ f[n]=\sum_{i=1}^{n}C_{n}^{i}g[n-i] \] \[ g[n]=\sum_{i=1}^{n}C ... 
- 洛谷八月月赛Round1凄惨记
		个人背景: 上午9:30放学,然后因为学校举办读书工程跟同学去书城选书,中午回来开始打比赛,下午又回老家,中间抽出一点时间调代码,回家已经8:50了 也许是7月月赛时“连蒙带骗”AK的太幸运然而因同学 ... 
- [洛谷OJ] P1114 “非常男女”计划
		洛谷1114 “非常男女”计划 本题地址:http://www.luogu.org/problem/show?pid=1114 题目描述 近来,初一年的XXX小朋友致力于研究班上同学的配对问题(别想太 ... 
随机推荐
- 8、Situation-Dependent Combination of Long-Term and Session-Based Preferences in Group Recommendations: An Experimental Analysis ----组推荐中基于长期和会话偏好的情景依赖组合
			一.摘要: 背景:会话组推荐系统的一个主要挑战是如何适当地利用群组成员之间的交互引起用户偏好,这可能会偏离用户的长期偏好.长期偏好和群组诱导的偏好之间的相对重要性应该根据具体的群组设置而变化. 本文: ... 
- python的基础及练习
			1.变量变是指变化,量是指反映某种状态例:level =1 或 2 username = ‘xuanxuan’password = ‘123’python里的“=”是赋值的意思,并不是真的等于 变量有 ... 
- org.apache.hadoop.ipc.Client: Retrying connect to server
			这个问题导致jps查看结点进程时发现找不到NodeManager或一段时间后消失,网上查找了很多博客,因hadoop版本不一样且出错的原因也可能不同,所以找了老半天. 步骤:jps --> 看l ... 
- 洛谷 P1278 单词游戏
			P1278 单词游戏 题目描述 Io和Ao在玩一个单词游戏. 他们轮流说出一个仅包含元音字母的单词,并且后一个单词的第一个字母必须与前一个单词的最后一个字母一致. 游戏可以从任何一个单词开始. 任何单 ... 
- SPOJ 4491
			不妨先把所有要求的素数的对的个数写出来 f(2)=u(1)G(2)+u(2)*G(2*2)+u(3)*G(2*3)+.....u(k2)*G(2*k2) f(3)=u(1)G(3)+u(2)*G(2* ... 
- linux 内存不足时候 应该及时回收page cache
			另一起问题是24G内存的系统,空闲内存已经不到50M 1. 确认该系统的版本是64位 # uname -a Linux gxgd-nms-app 2.6.18-194.el5xen #1 SMP Tu ... 
- ES不设置副本是非常脆弱的,整个文章告诉了你为什么
			Delaying Shard Allocation As discussed way back in Scale Horizontally, Elasticsearch will automatica ... 
- angular4过滤器
			Angular4中过滤器 一.大小写转换过滤器 uppercase将字符串转换为大写 lowercase将字符串转换为小写 <p>将字符串转换为大写{{str | uppercase}}& ... 
- 手动配置IP网络
			1. #vi /etc/sysconfig/network-scripts/ifcfg-ens33 ifcfg-ens33 是网卡的名字,根据自己的计算机 2. 修改配置 ONBOOT=no改为ONB ... 
- BZOJ 2588 主席树
			思路: 主席树 做完BZOJ 3123 觉得这是道水啊-- 然后狂RE 狂MLE 要来数据 忘把deep[1]设成1了----------. 啊wocccccccccccccccc //By Siri ... 
