简单数学题

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 580    Accepted Submission(s): 257

Problem Description
已知

F(n)=∑i=1n(i×∑j=inCij)

求 F(n) mod 1000000007

 
Input
多组输入,每组输入占一行,包含一个整数n(1 <= n <= 1e18)。
数据不超过300000组。
 
Output
对于每组输入,输出一行,包括一个数代表答案。
 
Sample Input
5
100
 
Sample Output
129
660756544
 
Source
 
写的时候,推了好几次,每次都能优化一点点,最后发现就是一个公式。
优化过程代码中注释掉了。
 

推的过程中用到的一个公式

对于C(n,k)*k求和,k从1到n
n为常量,要求和的式子如下:
1*C(n,1)+2*C(n,2)+3*C(n,3)+.+n*C(n,n)
其中,C(n,k)的意义是组合数,n为下标,k为上标
最终结果为化简后的式子

C(n,k)*k
=k*n!/[(n-k)!k!]
=n*(n-1)!/[(k-1)!(n-k)!]
=n*C(n-1,k-1)
1*C(n,1)+2*C(n,2)+3*C(n,3)+.+n*C(n,n)
=n[C(n-1,0)+C(n-1,1)+C(n-1,2)+.+C(n-1,n-1)]
=n*2^(n-1)

 
代码:
 //
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e5+;
const int mod=;
//
//ll fac[maxn],inv[maxn];
//
//void init()
//{
// fac[0]=fac[1]=1;
// inv[0]=inv[1]=1;
// for(ll i=2;i<maxn;i++)
// {
// fac[i]=fac[i-1]*i%mod;
// inv[i]=1ll*(mod-mod/i)*inv[mod%i]%mod;
// }
// for(ll i=2;i<maxn;i++)
// inv[i]=inv[i-1]*inv[i]%mod;
//}
//ll C(ll x,ll y)
//{
// if(y>x) return 0;
// if(y==0||x==0) return 1;
// return fac[x]*inv[y]%mod*inv[x-y]%mod;
//} ll pow_mod(ll a,ll b){
ll ans=;
while(b){
if(b%==){
ans=ans*a%mod;
}
a=a*a%mod;
b=b/; //这里是转化为二进制之后的进位---左进位
}
return ans;
} //ll a[maxn]; int main()
{
// init();
// for(int i=1;i<=1e3;i++){
//// for(int j=1;j<=i;j++){
//// a[i]=(a[i]+j*C(i,j)%mod)%mod;
//// }
// a[i]=i*pow_mod(2,(i-1))%mod;
// a[i]=(a[i]+a[i-1])%mod;
// //a[i]+=a[i-1];
// }
ll n;
while(~scanf("%lld",&n)){
ll ans=(((n-)%mod)*pow_mod(,n)+)%mod;
cout<<ans<<endl;
}
}

HDU 6467.简单数学题-数学题 (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)的更多相关文章

  1. HDU 6463.超级无敌简单题-卡边界的暴力 (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)

    超级无敌简单题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

  2. HDU 6464.免费送气球-动态开点-权值线段树(序列中第first小至第second小的数值之和)(感觉就是只有一个状态的主席树) (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)

    免费送气球 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

  3. HDU 6462.人类史上最大最好的希望事件-递推 (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)

    人类史上最大最好的希望事件 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tot ...

  4. “字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛 1010 Count

    思路:矩阵快速幂.推一下初始矩阵就好了 #include<bits/stdc++.h> #define LL long long #define fi first #define se s ...

  5. HDU 6467 简单数学题 【递推公式 && O(1)优化乘法】(广东工业大学第十四届程序设计竞赛)

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6467 简单数学题 Time Limit: 4000/2000 MS (Java/Others)    M ...

  6. HDU 6464 免费送气球 【权值线段树】(广东工业大学第十四届程序设计竞赛)

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6464 免费送气球 Time Limit: 2000/1000 MS (Java/Others)    M ...

  7. HDU 6470 Count 【矩阵快速幂】(广东工业大学第十四届程序设计竞赛 )

    题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6470 Count Time Limit: 6000/3000 MS (Java/Others)    ...

  8. (未完结)“文远知行杯”GDET第十四届竞赛(网络赛共10题,仅整理出6题)

    刚开学没多久就打了一个网络赛,通过这次网络赛我是发现我是真的菜... 放假前校赛的排名让我有些自满,寒假丝毫没有接触ACM,一直沉迷于Steam,这个真的值得好好反省. 虽然现在大一课有点多,在学校也 ...

  9. HDU 6467 简单数学题 (组合数学推导)

    题意 题解 Step 1 把原式进行了最基本的变换,把 i 移到右边,并先枚举 j ,这里 i 从 0 开始枚举,并不影响答案,因为 C(j,0) 乘 0 后没有影响,但是这样方便后面的推导 Step ...

随机推荐

  1. window10下的solr6.1.0入门笔记之---安装部署

    1.安装部署java1.6+ ,确保jre安装[安装步骤略] 安装后的环境为jdk1.8+ jre1.8+ 2.安装ant 下载:官网=>http://ant.apache.org/=>  ...

  2. [LeetCode] Binary Tree Level Order Traversal 与 Binary Tree Zigzag Level Order Traversal,两种按层次遍历树的方式,分别两个队列,两个栈实现

    Binary Tree Level Order Traversal Given a binary tree, return the level order traversal of its nodes ...

  3. 浅谈移动端三大viewport

    我们通常在写移动端页面时,往往都会在html页面中加入这样一段话 <meta name="viewport" content="width=device-width ...

  4. sun.security.x509.CertAndKeyGen;找不到

    导入已有项目编译时出错,报: import sun.security.x509.CertAndKeyGen;找不到 而这个包属于sun公司的jar包.不是项目本身的问题,而是开发环境的问题. 最后原因 ...

  5. elasticsearch 创建索引,以及检索一条数据

    elasticsearch的重要概念 我们可以把elasticsearch当做数据库来理解: index:索引库名称,相当于关系型数据库中的表名,一个elasticsearch集群中可以有多个索引库. ...

  6. 【Codeforces441E】Valera and Number [DP]

    Valera and Number Time Limit: 20 Sec  Memory Limit: 512 MB Description Input Output Sample Input 5 3 ...

  7. eureka服务端

    服务注册与发现——Eureka Eureka Server:服务的注册中心,负责维护注册的服务列表. Service Provider:服务提供方,作为一个Eureka Client,向Eureka ...

  8. 数组返回NULL绕过

    BUGKU:http://120.24.86.145:9009/19.php 还没看完源码,我就直接加了一个password[]=1结果就拿到flag了.然后再看源码我自己都搞不懂为什么可以得到源码. ...

  9. 最简单的基于FFMPEG的图像编码器(YUV编码为JPEG)(转)

    原文转自 https://blog.csdn.net/leixiaohua1020/article/details/25346147/ 伴随着毕业论文的完成,这两天终于腾出了空闲,又有时间搞搞FFMP ...

  10. 2.Python3标准库--文本

    (一)string:文本常量和模板 1.函数 import string ''' string模块在最早的Python版本中就已经有了.以前这个模块中提供的很多函数已经移植到str对象中,不过这个模块 ...