洛谷——P3414 SAC#1 - 组合数
P3414 SAC#1 - 组合数
题目背景
本题由世界上最蒟蒻最辣鸡最撒比的SOL提供。
寂月城网站是完美信息教室的官网。地址:http://191.101.11.174/mgzd 。
题目描述
辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌!
今天他萌上了组合数。现在他很想知道simga(C(n,i))是多少;其中C是组合数(即C(n,i)表示n个物品无顺序选取i个的方案数),i取从0到n所有偶数。
由于答案可能很大,请输出答案对6662333的余数。
输入输出格式
输入格式:
输入仅包含一个整数n。
输出格式:
输出一个整数,即为答案。
输入输出样例
说明
对于20%的数据,n <= 20;
对于50%的数据,n <= 1000;
对于100%的数据,n <= 1 000 000 000 000 000 000 (10^18)
排列组合(卢卡斯定理)能得50分、、
n的范围太大,数组开不开,因此就不能用lus定理了,我们应该在找一种做法
- #include<cstdio>
- #include<cstring>
- #include<iostream>
- #include<algorithm>
- #define N 1000000
- #define mod 6662333
- #define ll long long
- using namespace std;
- int n,ans,jie[N];
- int read()
- {
- ,f=; char ch=getchar();
- ;ch=getchar();}
- +ch-',ch=getchar();
- return x*f;
- }
- ll qpow(ll a,ll b,ll p)
- {
- ll res=;
- while(b)
- {
- ) res=res*a%p;
- a=a*a%p;b>>=;
- }return res;
- }
- ll C(ll n,ll m,ll p)
- {
- ;
- ,p)%p;
- }
- ll Lus(ll n,ll m,ll p)
- {
- ) ;
- return Lus(n/p,m/p,p)*C(n%p,m%p,p);
- }
- int main()
- {
- n=read();jie[]=;
- ;i<=n;i++)
- jie[i]=1ll*jie[i-]*i%mod;
- ;i<=n;i+=)
- ans=(ans+Lus(n,i,mod))%mod;
- printf("%d",ans);
- ;
- }
50分卢卡斯定理
打表找规律
- #include<cstdio>
- #include<cstring>
- #include<iostream>
- #include<algorithm>
- #define N 1000000
- #define mod 6662333
- #define ll long long
- using namespace std;
- int n,ans,jie[N];
- int read()
- {
- ,f=; char ch=getchar();
- ;ch=getchar();}
- +ch-',ch=getchar();
- return x*f;
- }
- ll qpow(ll a,ll b,ll p)
- {
- ll res=;
- while(b)
- {
- ) res=res*a%p;
- a=a*a%p;b>>=;
- }return res;
- }
- ll C(ll n,ll m,ll p)
- {
- ;
- ,p)%p;
- }
- ll Lus(ll n,ll m,ll p)
- {
- ) ;
- return Lus(n/p,m/p,p)*C(n%p,m%p,p);
- }
- int main()
- {
- jie[]=;
- ;i<;i++)
- jie[i]=1ll*jie[i-]*i%mod;
- ;n<=;n++)
- {
- ans=;
- ;i<=n;i+=)
- ans=(ans+Lus(n,i,mod))%mod;
- printf("%d %d\n",n,ans);
- }
- ;
- }
表
我们可以发现,ans=2^(n-1),因此用快速幂就可以搞定了
n输入的时候要用long long、、(老是RE。。。)
- #include<cstdio>
- #include<cstring>
- #include<iostream>
- #include<algorithm>
- #define mod 6662333
- #define ll long long
- using namespace std;
- long long n;int ans;
- ll read()
- {
- ll x=,f=; char ch=getchar();
- ;ch=getchar();}
- +ch-',ch=getchar();
- return x*f;
- }
- int qpow(int a,ll b,int p)
- {
- ;
- while(b)
- {
- ) res=1ll*res*a%p;
- a=1ll*a*a%p;b>>=;
- }return res;
- }
- int main()
- {
- n=read();
- ans=qpow(,n-,mod);
- printf("%d",ans);
- ;
- }
洛谷——P3414 SAC#1 - 组合数的更多相关文章
- 洛谷P3414 SAC#1 - 组合数
P3414 SAC#1 - 组合数 218通过 681提交 题目提供者ProjectWTA 标签 难度普及/提高- 时空限制1s / 128MB 提交 讨论 题解 最新讨论更多讨论 讨论区出bug ...
- P3414 SAC#1 - 组合数 题解
https://www.luogu.org/problemnew/show/P3414(题目传送) 这道题提醒大家一定要认真审题.看清楚后发现n的数据范围稍微小于long long类型的范围(看不清被 ...
- P3414 SAC#1 - 组合数
题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:http://191.101.11.174/mgzd . 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数 ...
- 洛谷P4492 [HAOI2018]苹果树(组合数)
题意 题目链接 Sol 有点自闭,.我好像对组合数一窍不通(~~~~) Orz shadowice // luogu-judger-enable-o2 #include<bits/stdc++. ...
- 洛谷——P1869 愚蠢的组合数
P1869 愚蠢的组合数 题目描述 最近老师教了狗狗怎么算组合数,狗狗又想到了一个问题... 狗狗定义C(N,K)表示从N个元素中不重复地选取K个元素的方案数. 狗狗想知道的是C(N,K)的奇偶性. ...
- 洛谷 P2518 [HAOI2010]计数 (组合数)
题面 luogu 题解 本来想练数位dp的,结果又忍不住写了组合数.. 去掉一个\(0\)可以看作把\(0\)移到前面去 那么题目转化为 \(n\)有多少个排列小于\(n\) 强制某一位比\(n\)的 ...
- 洛谷P3926 SAC E#1 - 一道不可做题 Jelly【模拟/细节】
P3926 SAC E#1 - 一道不可做题 Jelly [链接]:https://www.luogu.org/problem/show?pid=3926 题目背景 SOL君(炉石主播)和SOL菌(完 ...
- 洛谷—— P1869 愚蠢的组合数
https://www.luogu.org/problemnew/show/1869 题目描述 最近老师教了狗狗怎么算组合数,狗狗又想到了一个问题... 狗狗定义C(N,K)表示从N个元素中不重复地选 ...
- luogu P3414 SAC#1 - 组合数(组合数学)
题意 求sigma(C(n,i))其中C是组合数(即C(n,i)表示n个物品无顺序选取i个的方案数),i取从0到n所有偶数. 由于答案可能很大,请输出答案对6662333的余数. (n<=101 ...
随机推荐
- Ant打jar包时,参数名被修改的问题
https://blog.csdn.net/landehuxi/article/details/42678117 使用Ant打jar包后,发现jar包中的方法名会在前面自动添加了“param”前缀,导 ...
- javascript拖拽原理与简单实现方法[demo]
美国人有一句常用的俗语—“Re-inventing the Wheel”,从字面上来解释就是“重新发明轮子”.可是轮子早已问世,再要去发明岂非劳而无功? 产品经理发下需求,实施者再到网上搜索代码,也许 ...
- HDU 1548 A strange lift (广搜)
题目链接 Problem Description There is a strange lift.The lift can stop can at every floor as you want, a ...
- java 深度拷贝 复制 深度复制
1.深度拷贝.复制代码实现 最近需要用到比较两个对象属性的变化,其中一个是oldObj,另外一个是newObj,oldObj是newObj的前一个状态,所以需要在newObj的某个状态时,复制一个一样 ...
- js 的function为什么可以添加属性
(1) function person(){ this.name = 'Tom'; } (2) function person(){} person.name = 'Tom'; (3) functio ...
- JAVA Frame 响应窗口关闭事件
/* * To change this license header, choose License Headers in Project Properties. * To change this t ...
- 查看服务器是否被DDOS攻击的方法
伴随着现代互联网络快速发展,更加容易出现被攻击.尤其是ddos攻击已经不在是大网站需要关心的事情了.不少中小型企业,也在遭受ddos攻击.站长对ddos攻击不了解,所以网站被ddos攻击的时候,都不会 ...
- python开发第二十六天CMDB
概要: 1.采集资产 2.API 一.资产采集 1.采集方式的配置 2.插件的定制 3.测试模式 4.错误日志(必须是行级的详细错误信息) 5.汇报数据-->遵循资产的唯一性 (1)只针对物理机 ...
- shell中的IFS和$*变量
本文转载自http://blog.chinaunix.net/uid-22566367-id-381955.html 自我记录内容.在工程中遇到了相关内容的shell脚本.在此处记录 STRING1= ...
- python基础===discover函数介绍
discover(start_dir,pattern='test*.py',top_level_dir=None) 找到指定目录下所有测试模块,并可递归查到子目录下的测试木块,只有匹配到的文件名才会被 ...