洛谷P5274 优化题(ccj)
题目背景
CCJCCJ 在前往参加 Universe \ OIUniverse OI 的途中。。。
题目描述
有一个神犇 CCJCCJ,他在前往参加 Universe \ OIUniverse OI 的途中发现了一个超星系群。
在这个超星系群,有着一群生物 ccjccj,他们有着神奇的 ccjccj 文化,蕴含文史哲艺等多方面内容,具有悠远的历史。
他们有自己的文学,自己的科学,当然,还有自己的四叶草和幸运数。在 ccjccj 文化中,不断进化是生存的必要条件,于是在这个星系群中,有 kk种数字,一个数是幸运数,当且仅当该数中从高位往低位每个数位上的数字单调不降。
CCJCCJ 想考验这个超星系群,于是有了一个任务:求由 kk 种数字组成的数中 nn 位数的幸运数的个数。
由于 ccjccj 文化中缺少超级计算机,你需要帮助他们解决这个简单的问题。
输入输出格式
输入格式:
第一行一个整数opop,表示该测试点所属SubtaskSubtask的编号。其中op=0op=0表示样例。
第二行两个整数,nn,kk,意义如题目描述中所述。
输出格式:
一行一个整数,答案ansans对1000001910000019取模。
输入输出样例
0
9 9
24310
0
15 24
1257167
说明
数据范围:
Subtask \ 1Subtask 1(10 \%10%):n \leq 1000n≤1000,k \leq 200k≤200;
Subtask \ 2Subtask 2(40 \%40%):n \leq 10000n≤10000,k \leq 5000k≤5000;
Subtask \ 3Subtask 3(40 \%40%):n \leq 10000000n≤10000000,k \leq 10000000k≤10000000;
Subtask \ 4Subtask 4(10 \%10%):n \leq 10^{18}n≤1018,k \leq 10^{18}k≤1018;
Subtask \ 5Subtask 5(0 \%0%):n \leq 10^{100000}n≤10100000,k \leq 10^{100000}k≤10100000。
题解Here!
从$k$个数中任选若干个,求单调不降序列的个数。
单调不降有点烦,我们将选出来的序列中每一位$i$上的数都加上$i$。
即:原数列为${a_i}$,新数列为${b_i=a_i+i}$。
于是变成:
从$n+k-1$个数中任选若干个,求单调上升序列的个数。
于是这个题的答案就是:$$Ans=C_{n+k-1}^n$$
直接$Lucas$即可。
附代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
#define MAXN 10000050
#define MOD 10000019LL
using namespace std;
long long n,k;
long long fact[MAXN],inv[MAXN];
inline long long read(){
long long date=0;char c=0;
while(c<'0'||c>'9')c=getchar();
while(c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();}
return date;
}
long long mexp(long long a,long long b,long long c){
long long s=1;
while(b){
if(b&1)s=s*a%c;
a=a*a%c;
b>>=1;
}
return s;
}
void make(){
int m=MOD-1;
fact[0]=1;
for(int i=1;i<=m;i++)fact[i]=fact[i-1]*i%MOD;
inv[m]=mexp(fact[m],MOD-2,MOD);
for(int i=m-1;i>=0;i--)inv[i]=inv[i+1]*(i+1)%MOD;
}
inline long long C(long long n,long long m){
if(n<m)return 0;
if(m==0||m==n)return 1;
if(m==1||m==n-1)return n;
return fact[n]*inv[m]%MOD*inv[n-m]%MOD;
}
long long Lucas(long long n,long long m){
if(n<m)return 0;
if(m==0||m==n)return 1;
if(m==1||m==n-1)return n;
return Lucas(n/MOD,m/MOD)*C(n%MOD,m%MOD)%MOD;
}
int main(){
int t=read();
make();
n=read();k=read();
printf("%lld\n",Lucas(n+k-1,n));
return 0;
}
洛谷P5274 优化题(ccj)的更多相关文章
- [洛谷P1707] 刷题比赛
洛谷题目连接:刷题比赛 题目背景 nodgd是一个喜欢写程序的同学,前不久洛谷OJ横空出世,nodgd同学当然第一时间来到洛谷OJ刷题.于是发生了一系列有趣的事情,他就打算用这些事情来出题恶心大家-- ...
- 洛谷 P4148 简单题 KD-Tree 模板题
Code: //洛谷 P4148 简单题 KD-Tree 模板题 #include <cstdio> #include <algorithm> #include <cst ...
- 洛谷 P1167 刷题
洛谷 P1167 刷题 洛谷传送门 题目描述 noip临近了,小A却发现他已经不会写题了.好在现在离竞赛还有一段时间,小A决定从现在开始夜以继日地刷题.也就是说小A废寝忘食,一天二十四小时地刷题. 今 ...
- 【noip】跟着洛谷刷noip题2
noip好难呀. 上一个感觉有点长了,重开一个. 36.Vigenère 密码 粘个Openjudge上的代码 #include<cstdio> #include<iostream& ...
- 【AC自动机】洛谷三道模板题
[题目链接] https://www.luogu.org/problem/P3808 [题意] 给定n个模式串和1个文本串,求有多少个模式串在文本串里出现过. [题解] 不再介绍基础知识了,就是裸的模 ...
- 【noip】跟着洛谷刷noip题
传送门 1.铺地毯 d1t1 模拟 //Twenty #include<cstdio> #include<cstdlib> #include<iostream> # ...
- 山东省济南市历城第二中学——洛谷图论入门题--基本题必做 图的遍历—3.骑马修栅栏(fence)
由于我这个破题提交了十四五遍,所以我决定写篇博客来记录一下. 这个题的题目描述是这样的 首先一看这个题我瞬间就想到了一笔画问题(欧拉回路). 对于能够一笔画的图,我们有以下两个定理. 定理1:存在欧拉 ...
- 【最大流ISAP】洛谷P3376模板题
题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...
- 【后缀数组】洛谷P3809模板题
题目背景 这是一道模板题. 题目描述 读入一个长度为 n n n 的由大小写英文字母或数字组成的字符串,请把这个字符串的所有非空后缀按字典序从小到大排序,然后按顺序输出后缀的第一个字符在原串中的位置. ...
随机推荐
- applicationContext.xml 文件头报错Referenced file contains errors
问题如下:原先运行正常的项目,突然在applicationContext.xml 文件头报错 内容:Referenced file contains errors (http://www.spring ...
- EF实体查询出的数据List<T>转DataTable出现【DataSet 不支持 System.Nullable<>】的问题
public static DataTable ToDataTable<T>(this IEnumerable<T> varlist, CreateRowDelegate< ...
- HTML学习笔记(四)
1. css行内样式要注意的问题: a) stylekeyword要作为标签的一个属性写在标签内: b) 等号后面是一对双引號包括的内容. c) Style属性和 ...
- Backup and Recovery Basics1
一.Backup and Recovery Overview 1.Backup and Recovery Overview 1.1 What is Backup and Recovery? 一般,备份 ...
- Charles 的几个调试技巧
Charles 是一个网络调试的代理工具,类似 Windows 下的 Fildder,这里介绍下几个常用的调试技巧,使用的版本是 Charles 4. 1.移动端抓包 在移动开发中,经常会遇到在手机上 ...
- mysql5.7.22 zip 版安装
2.将zip文件解压到本地,本文解压到如下目录:D:\softwares\mysql-5.7.14-winx64 3.新建一个配置文件(my.ini)用于配置字符集.端口等信息,用以覆盖原始的配置文件 ...
- [Tomcat]无法使用tomcat6.exe启动服务解决办法, The system cannot find the Registry key for service 'tomcat7'
重新配置环境变量后,可以使用startup.bat启动服务, 但是无法使用tomcat6.exe启动服务, 错误信息: [2011-03-10 18:51:49] [warn] The system ...
- java 调用cmd命令
public class Port{ public static void main(String[] args) { Runtime runtime=Runtime.getRuntime(); tr ...
- Python 双向链表 快速排序
1.创建链表: from random import randint class DLinkedNode(object): def __init__(self, data=None, pre=None ...
- sqoop1.4.4从oracle导数据到hive中
sqoop从oracle定时增量导入数据到hive 感谢: http://blog.sina.com.cn/s/blog_3fe961ae01019a4l.htmlhttp://f.dataguru. ...