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 =p​k​​ 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 (大犇推导的更多相关文章

  1. 数论 HDOJ 5407 CRB and Candies

    题目传送门 题意:求LCM (C(N,0),C(N,1),...,C(N,N)),LCM是最小公倍数的意思,C函数是组合数. 分析:先上出题人的解题报告 好吧,数论一点都不懂,只明白f (n + 1) ...

  2. 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][ ...

  3. HDU 5407——CRB and Candies——————【逆元+是素数次方的数+公式】

    CRB and Candies Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  4. 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 ...

  5. HDU 5407 CRB and Candies(LCM +最大素因子求逆元)

    [题目链接]pid=5407">click here~~ [题目大意]求LCM(Cn0,Cn1,Cn2....Cnn)%MOD 的值 [思路]来图更直观: 这个究竟是怎样推出的.说实话 ...

  6. 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 ...

  7. HDU 5407 CRB and Candies

    题意:给一个正整数k,求lcm((k, 0), (k, 1), ..., (k, k)) 解法:在oeis上查了这个序列,得知答案即为lcm(1, 2, ..., k + 1) / (k + 1),而 ...

  8. hdu 5407 CRB and Candies(组合数+最小公倍数+素数表+逆元)2015 Multi-University Training Contest 10

    题意: 输入n,求c(n,0)到c(n,n)的所有组合数的最小公倍数. 输入: 首行输入整数t,表示共有t组测试样例. 每组测试样例包含一个正整数n(1<=n<=1e6). 输出: 输出结 ...

  9. CRB and Candies LCM 性质

    题目 CRB and Candies 题意 \[ \text{给定正整数N,求} LCM \lbrace C \left(N , 0 \right),C\left(N , 1 \right),..., ...

随机推荐

  1. android mvp高速开发框架介绍(dileber使用之图片下载工具)

    这几天忙着工作- 今天抽时间又把框架的bug处理了一下--并且把volley的源代码改动了一下 android mvp框架:dileber(https://github.com/dileber/dil ...

  2. java.io.IOException: Cannot find any registered HttpDestinationFactory from the Bus.

    转自:https://blog.csdn.net/u012849872/article/details/51037374

  3. 使用右键打开Visual Code

    Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\Visual Code]@="Edit with Visual ...

  4. CentOS 6.7操作系统安装

    如果由于是显卡驱动不兼容的话,在选择安装界面按tab键,进入命令行,然后在命令行后加上 nodmraid 关键字回车开始安装. 接下来选择hard driver   选择最后一个分区进行系统安装,然后 ...

  5. Mac 安装cmake小问题

    今天用 brew install cmake. ==> Downloading https://homebrew.bintray.com/bottles/cmake-3.9.6.sierra.b ...

  6. marge into操作

    动机: 想在Oracle中用一条SQL语句直接进行Insert/Update的操作. 说明: 在进行SQL语句编写时,我们经常会遇到大量的同时进行Insert/Update的语句 ,也就是说当存在记录 ...

  7. Java 系列之spring学习--springmvc注解参数传递(六)

    一.绑定参数注解如下 @RequestParam     绑定单个请求数据,既可以是URL中的参数,也可以是表单提交的参数或上传的文件. 它有三个属性:  value    用于设置参数名. defa ...

  8. StatusBarUtils工具类

    import android.app.Activity; import android.app.Dialog; import android.content.Context; import andro ...

  9. 「JavaSE 重新出发」05.01.01 equals 方法

    equals 方法示例 // 代码来自<Java核心技术 卷I>P167 // 父类 public class Employee{ ... public boolean equals(Ob ...

  10. 不懂技术也可以轻松开发一款APP

    这是个衣食住行都离不开手机的时代,甚至可以说,我们不用考虑其他的东西,只要拿着手机,就可以出门做自己想做的事情. 这就是手机app的强大之处,覆盖面极广,小到聊天交友,大到投资理财.每次都是app为我 ...