洛谷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 的由大小写英文字母或数字组成的字符串,请把这个字符串的所有非空后缀按字典序从小到大排序,然后按顺序输出后缀的第一个字符在原串中的位置. ...
随机推荐
- mongodb or and 条件拼凑 Query.And Query.Or
查询 1月 7月 8月 的数据 list - [0] { "$or" : [{ "JobDate" : { "$gte" : ISODate ...
- RabbitMQ消息队基本概念
RabbitMQ简介 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的 ...
- Android源代码解析之(四)-->HandlerThread
转载请标明出处:一片枫叶的专栏 上一篇文章中我们解说了AsyncTast的基本使用以及实现原理,我们知道AsyncTask内部是通过线程池和Handler实现的.通过对线程池和handler的封装实现 ...
- UINavigationController(二)
在使用UINavigtionController的时候,常常会弄不清哪些属性是UINavigationController的,哪些属性是UIViewController的.并且在更改导航栏和工具栏的样 ...
- php中的正则表达式
一.定位字符 定位字符是正则表达式中又一类非常重要的字符,它的主要作用是用于对字符在匹配对象中的位置进行描述. ^:表示匹配的模式出现在匹配对象的开头(和在"[]"里面不同) $: ...
- redis主从持久化讨论
Redis有两种持久化方式,AOF和RDB,AOF持久化是指追加写命令到aof文件的方式,RDB是指定期保存内存快照到rdb文件的方式. RDB虽然可以通过bgsave指令后台保存快照,但fork() ...
- nginx location 或操作
location ~* (\.(7z|bat|bak|ini|log|rar|sql|swp|tar|zip|gz|git|asp|svn)|/phpmyadmin) { deny all; }
- Atitit.aticmd v4 新特性q39 添加定时器释放功能
Atitit.aticmd v4 新特性q39 添加定时器释放功能 V1 实现兰cmd V2 标准输入,标准输出,标准错误与重新定向 V3 stdout stderr统一重新定向 V4 添加定 ...
- gdb 详解
环境:gcc (OpenWrt/Linaro GCC 4.8) 以如下的简单代码为例,说明gdb的使用. void func1(int a, int b) { int c; c = a + b; } ...
- jquery中绑定点击事件
$("body").on("click",".tab-contentBox td",function(){}; $(".tab-c ...