hdu 5407
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5407
题意:给定一个数n,求LCM(C(n,0),C(n,1),C(n,2)...,C(n,n))
根据官方题解,g(n) = LCM(C(n,0),C(n,1),C(n,2)...,C(n,n))
g(n) = f(n+1)/(n+1)
而 f(n) = LCM(1,2,3,...,n)
对于f(n)中的每一个数,对LCM的贡献值并不一样,可以想一下,对n进行因式分解,n = p1^x1*p2^x2*...+pt*xt;比n小的数中必然有p1^x1,p2^x2...
所以,只有当n可以分解为n=p^x的时候,才对LCM值有贡献。
#include<iostream> #include<cstdio> #include<cstring> typedef long long LL; using namespace std; ; ; ]; int ans[MAXN]; int fra[MAXN]; // 打印素数表 bool notprime[MAXN];//值为false表示素数,值为true表示非素数 void init1() { memset(notprime,false,sizeof(notprime)); notprime[]=notprime[]=true; ;i<MAXN;i++) if(!notprime[i]) { if(i>MAXN/i)continue;//防止后面i*i溢出(或者i,j用long long) //直接从i*i开始就可以,小于i倍的已经筛选过了,注意是j+=i for(int j=i*i;j<MAXN;j+=i) notprime[j]=true; } } void getPrime() { memset(prime,,sizeof (prime)); ;i<=MAXN;i++) { ]]=i; ;j<=prime[]&&prime[j]<=MAXN/i;j++) { prime[prime[j]*i]=; ) break; } } } // 求逆元 long long inv(long long a,long long mod) { ); return inv(mod%a,mod)*(mod-mod/a)%mod; } void init2(){ ans[] = ; int i, j; ; i < MAXN; i++){ ; bool flag = false; ; prime[j]*prime[j]<= i+; ++j){ ){ tmp /= prime[j]; flag = true; } if(flag) break; } ){ ans[i] = 1LL*ans[i-]*i%mod*prime[j]%mod*inv((i+),mod)%mod; } ]){ ans[i] = 1LL*ans[i-]*i%mod*(i+)%mod*inv((i+),mod)%mod; } else{ ans[i] = 1LL*ans[i-]*i%mod*inv((i+),mod)%mod; } } } int main(){ getPrime(); init1(); init2(); int T, N; scanf("%d",&T); while(T--){ scanf("%d",&N); printf("%d\n",ans[N]); } ; }
hdu 5407的更多相关文章
- HDU 5407(2015多校10)-CRB and Candies(组合数最小公倍数+乘法逆元)
题目地址:pid=5407">HDU 5407 题意:CRB有n颗不同的糖果,如今他要吃掉k颗(0<=k<=n),问k取0~n的方案数的最小公倍数是多少. 思路:首先做这道 ...
- Hdu 5407 CRB and Candies (找规律)
题目链接: Hdu 5407 CRB and Candies 题目描述: 给出一个数n,求lcm(C(n,0),C[n,1],C[n-2]......C[n][n-2],C[n][n-1],C[n][ ...
- HDU 5407 CRB and Candies(LCM +最大素因子求逆元)
[题目链接]pid=5407">click here~~ [题目大意]求LCM(Cn0,Cn1,Cn2....Cnn)%MOD 的值 [思路]来图更直观: 这个究竟是怎样推出的.说实话 ...
- LCM性质 + 组合数 - HDU 5407 CRB and Candies
CRB and Candies Problem's Link Mean: 给定一个数n,求LCM(C(n,0),C(n,1),C(n,2)...C(n,n))的值,(n<=1e6). analy ...
- HDU 5407 CRB and Candies
题意:给一个正整数k,求lcm((k, 0), (k, 1), ..., (k, k)) 解法:在oeis上查了这个序列,得知答案即为lcm(1, 2, ..., k + 1) / (k + 1),而 ...
- hdu 5407 CRB and Candies(组合数+最小公倍数+素数表+逆元)2015 Multi-University Training Contest 10
题意: 输入n,求c(n,0)到c(n,n)的所有组合数的最小公倍数. 输入: 首行输入整数t,表示共有t组测试样例. 每组测试样例包含一个正整数n(1<=n<=1e6). 输出: 输出结 ...
- hdu 5407【LCM性质】+【逆元】(结论题)
<题目链接> <转载于 >>> > Problem Description CRB has N different candies. He is going ...
- hdu 5407(LCM好题+逆元)
CRB and Candies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- HDU 5407——CRB and Candies——————【逆元+是素数次方的数+公式】
CRB and Candies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
随机推荐
- IOS中(类似于进度条哪种效果)MBProgressHUD的使用
1.显示HUD MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; hud.labelText = ...
- Typed Message模式与Event Sourcing
引言 在<设计模式沉思录>(Pattern Hatching: Design Patterns Applied,[美]JohnVlissides著)一书的第4章中,围绕事件Message传 ...
- I.MX6 ov5640 camera
/************************************************************************ * I.MX6 ov5640 camera * 说明 ...
- Linux下Web服务器环境搭建LNMP一键安装包[20130911更新]
2012年08月14日 ⁄ LNMP ⁄ 评论数 73 ⁄ 被围观 25,200次+ 最新版本:lnmp-2.4 安装说明:请保证服务器能够正常上网.服务器系统时间准确.yum命令可以正常使用! 1. ...
- 【自动化测试】Selenium的智能等待
dr.implicitly_wait(30) --- 智能等待 http://www.cnblogs.com/fnng/p/3214112.html =========== selenium 调用键盘 ...
- 【自动化测试】Selenium - 定位
http://easonhan007.github.io/selenium/2014/01/10/se-secret_01/ 你应该遵照这个规则来选择定位元素的属性.name > id > ...
- Android中Bitmap, Drawable, Byte,ID之间的转化
Android中Bitmap, Drawable, Byte,ID之间的转化 1. Bitmap 转化为 byte ByteArrayOutputStream out = new ByteArray ...
- sound tips
ASaudio&SoundAS 两个开源项目阅读: ASaudio&SoundAS 都是比较小巧的声音控制,但似乎都不能直接拿到项目只直接使用. ASaudio ASaudio的Tra ...
- 基于HTTP的直播点播HLS
HLS(HTTP Live Streaming) 是Apple在2009年发布的,可以通过普通的web服务器进行分发的新型流媒体协议.苹果官方对于视频直播服务提出了 HLS 解决方案 ...
- Android之Socket群组聊天
在这只做了一个简单的例子,没有用到数据库,思路就是客户端发送信息到服务器端,服务器端转发所有数据到客户端,校验服务器端发来消息是否是自己发出的,如果是自己发出的,则不显示自己的消息 贴一下Androi ...