【HDOJ 5407】 CRB and Candies (大犇推导
pid=5407">【HDOJ 5407】 CRB and Candies
赛后看这题题解仅仅有满眼的迷茫………………
g(N) = LCM(C(N,0),C(N,1),...,C(N,N))
f(n)\
=\ LCM(1, 2, ..., n)f(n) = LCM(1,2,...,n),
the fact g(n)\
=\ f(n+1) / (n+1)g(n) = f(n+1)/(n+1)
f(n)\ =\ LCM(1, 2, ..., n)f(1)
= 1
If n\
=p^{k}n =pk then f(n)\
=\ f(n-1) \times \ pf(n) = f(n−1)× p,
else f(n)\
=\ f(n-1)f(n) = f(n−1).
和不断的woc…… 后来QAQ巨找到了推导的文章。
。。
恩……贴上来……
http://www.zhihu.com/question/34859879
感觉我有公式恐惧症。。
。
看到长串公式就犯晕= = 巨巨们研究研究吧…………
感觉依据题解能做出来已经非常好了
事实上这题另一点是要取余 因为须要取余 不能做除法 因此要求个分母的乘法逆元 刚好在攻数论的扩欧,扩欧小费马都能做 前一篇有扩欧的不错的帖子链接 有兴趣的能够去瞅瞅
本题代码例如以下:
#include <iostream>
#include <cstdio>
#include <cstring> using namespace std;
#define sz 1000000
#define ll long long
const int mod = 1e9+7; int p[sz+1];
ll f[sz+1]; bool ok(ll x)
{
int t = p[x];
while(x%t == 0 && x > 1) x /= t;
return x == 1;
} void Init()
{
int i,j;
for(i = 1; i <= sz; ++i) p[i] = i;
for(i = 2; i <= sz; ++i)
if(p[i] == i)
for(j = i+i; j <= sz; j += i)
if(p[j] == j) p[j] = i; f[0] = 1;
for(i = 1; i <= sz; ++i)
{
if(ok(i)) f[i] = f[i-1]*p[i]%mod;
else f[i] = f[i-1];
}
}
//扩欧
//int e_gcd(int a,int b,int &x,int &y)
//{
// if(!b)
// {
// x = 1;
// y = 0;
// return a;
// }
// ll tmp = x,ans = e_gcd(b,a%b,x,y);
// tmp = x;
// x = y;
// y = tmp - a/b*y;
// return ans;
//} ll pow(ll a,int m)
{
ll ans = 1;
for(;m; m >>= 1, a= a*a%mod)
if(m&1) ans = ans*a%mod;
return ans;
} ll cal(int a,int m)
{
//扩欧
// int x,y;
// int gcd = e_gcd(a,m,x,y);
// return (x/gcd+m)%m;
//小费马
return pow(a,m-2);
} int main()
{
Init();
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("%lld\n",f[n+1]*cal(n+1,mod)%mod);
}
return 0;
}
【HDOJ 5407】 CRB and Candies (大犇推导的更多相关文章
- 数论 HDOJ 5407 CRB and Candies
题目传送门 题意:求LCM (C(N,0),C(N,1),...,C(N,N)),LCM是最小公倍数的意思,C函数是组合数. 分析:先上出题人的解题报告 好吧,数论一点都不懂,只明白f (n + 1) ...
- 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——————【逆元+是素数次方的数+公式】
CRB and Candies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- 2015 Multi-University Training Contest 10 hdu 5407 CRB and Candies
CRB and Candies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- 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). 输出: 输出结 ...
- CRB and Candies LCM 性质
题目 CRB and Candies 题意 \[ \text{给定正整数N,求} LCM \lbrace C \left(N , 0 \right),C\left(N , 1 \right),..., ...
随机推荐
- Android应用之——微信微博第三方sdk登录分享使用过程中的一些常见问题
前言 近期在使用第三方登录和分享的过程中遇到了非常多问题,一方面能够归结为自己经验的不足,还有一方面事实上也说明了官方文档的含糊不清.这篇博文不会写关于怎样使用第三方登录分享,由于官方文档已经写明了步 ...
- Android学习笔记(十二)——使用意图传递数据的几种方式
使用意图传递数据的几种方式 点此获取完整代码 我们除了要从活动返回数据,也经常要传递数据给活动.对此我们能够使用Intent对象将这些数据传递给目标活动. 1.创建一个名为PassingData的项目 ...
- 微信小程序发送模板消息
微信小程序发送模板消息 标签(空格分隔): php 看小程序文档 [模板消息文档总览]:https://developers.weixin.qq.com/miniprogram/dev/framewo ...
- 弹出ifame页面(jquery.reveal.js)
<body> <a data-reveal-id="myModalDailyModify" data-animation="fade" tit ...
- Sentry: Python 实时日志平台
Links https://docs.getsentry.com/on-premise/quickstart/ https://docs.getsentry.com/on-premise/server ...
- node.js流复制文件
转自:http://segmentfault.com/a/1190000000519006 nodejs的fs模块并没有提供一个copy的方法,但我们可以很容易的实现一个,比如: var source ...
- TCP基本概念
TCP协议是一个复杂的.可靠的字节流协议.不通用UDP协议. TCP提供客户与服务器之间的连接.TCP客户先与给定的服务器建立一个连接,再跨该连接与服务器交换数据,最后终止这个连接. TCP提供了可靠 ...
- selenium基础
浏览器 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转.输入.点击.下拉等来拿到网页渲染之后的结果,可支持多种浏览器 官网链接:http://selenium-python.re ...
- Django中ORM之创建模型
ORM 数据库与ORM映射关系 表名 --- 类名 字段 --- 属性 表记录 --- 类示例对象 创建表(建立模型) 模型建立如下 class Book(models.Model): title = ...
- WiFi无线连接过程中有哪几个主要步骤?
WiFi无线连接过程中有哪几个主要步骤?[1]在使用WIFI功能时,经常性的操作是打开手机上的WiFi设备,搜索到心目中的热点,输入密码,联网成功,成功上网.这个看似简单的过程,背后却是隐藏着大量的无 ...