P4700 算

P4700 算

时间: 1000ms / 空间: 125829120KiB / Java类名: Main

背景

zhx和他的妹子出去玩。

描述

请在此填写题目描述

输入格式

仅一行,包含两个数N和M.

输出格式

仅一行,包含所求的答案mod 10^9 + 7的值。

【样例输入】

3 3

【样例输出】

56

备注

对于 50%的数据,所有1≤N,M≤1000。

对于100% 的数据,所有1≤N,M≤50000 。

题解:

等比数列:{a,aq1,aq2,aq3,aq4,aq5...aqn,...}

前m项的前缀和:s=a(1-qm)/(1-m);

费马小定理:若p为质数,ap-1%p=1

逆元:若ax%p=1(p为质数),则a,x互为逆元

则ans=sigma(1,n)q(1-qm)/(1-m)

由于同余定理不支持除法,逆元处理:

ans=sigma(1,n)q(1-qm)/(1-q)mod-2

考虑到负数问题

ans=sigma(1,n)q(qm-1)/(q-1)mod-2

最终

  ans=sigma(1,n)q(qm-1)/(q-1)mod-2

代码:

#include<cstdio>
#include<iostream>
#define ll long long
using namespace std;
const ll mod=1e9+7;
ll n,m;
inline ll fpow(ll a,ll p){
    ll res=1;
    for(;p;p>>=1,a=a*a%mod) if(p&1) res=res*a%mod;
    return res%mod;
}
inline void solve(){
    ll ans=n;
    for(ll i=2,tmp,s;i<=n;i++){
        /*自己推的*/
        //tmp=fpow(i,m+1);
        //s=((tmp-1+mod)%mod)*fpow(i-1,mod-2)%mod;
        //ans=(ans+s-1+mod)%mod;
        /*学哥讲的等比数列*/
        tmp=i*(fpow(i,m)-1)%mod;
        s=fpow((i-1),mod-2);
        tans=(ans+tmp*s%mod)%mod;
    }//应该是都对
    cout<<ans%mod;
}
int main(){
    ios::sync_with_stdio(false);
    cin>>n>>m;
    solve();
    return 0;
}
时间: 2024-10-26 07:23:40

P4700 算的相关文章

C语言实现时间差、星期、天数算日期(转)

原文地址:http://blog.csdn.net/coder_xia/article/details/6566708 最近因为一个项目需要,默认一个时间值,即当天的前一天日期,顺手就将其他的几个功能一并实现了,主要为 1.两个日期之间的时间差 2.某个日期之后,绝对值差值之后的某个日期 3.某年日期,算出星期几 下面见源码: #ifndef CALCULATE_H #define CALCULATE_H typedef struct { int year; int month; int day

医疗时鲜(Running)资讯(ZSSURE):移动医疗不算事儿

背景 最近在看Dr.2的书<移动医疗那点事儿>,所以此次博文就厚颜无耻的叫做"移动医疗不算事儿".新的一年,新的积累与进步,继续关注医疗行业的最新动态.此次主要介绍吐槽一下关于"自由执业"和"电子病例"的新闻.Running-- 自由执业 在<移动医疗那点事儿>中,Dr.2开篇问了一个问题"什么样的医生会出来自由执业?刚毕业的孩子会出来自由执业么?",其观点认为:会从体制内出来的医生通常都是一些在临床业

最小生成树 Prim(普里姆)算法和Kruskal(克鲁斯特尔)算法

Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小.该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(英语:Vojtěch Jarník)发现:并在1957年由美国计算机科学家罗伯特·普里姆(英语:Robert C. Prim)独立发现:1959年,艾兹格·迪科斯彻再次发现了该算法.因此,在某些场

润乾集算报表使用远程HTTP数据源的示例

报表的数据来源多种多样,有时会接收来自HTTP服务器的数据进行报表展现,一般报表工具只能通过报表自定义数据源使用高级语言(如JAVA)进行处理,实现较为复杂.集算报表简单地通用集算器接收HTTP数据源完成报表展现.这里通过一个实例说明. 学生成绩信息存储在远程的JSON格式文件中,其所在HTTP服务器对外提供统一HTTP访问接口,现需要读取学生成绩信息开发报表,汇总学生成绩并按总成绩排名.报表样式如下: JSON文件中包含班级.编号.姓名.学科.成绩等信息,格式如下: [ { "class&qu

使用Apriori算法和FP-growth算法进行关联分析(Python版)

===================================================================== <机器学习实战>系列博客是博主阅读<机器学习实战>这本书的笔记也包含一些其他python实现的机器学习算法 算法实现均采用python github 源码同步:https://github.com/Thinkgamer/Machine-Learning-With-Python ==================================

人事不干人事,这算什么事

人事? 人事不干人事,这算个什么事? 无论是白天还是黑夜,总有那么几个鬼鬼祟祟的称之为人事的东西在抓人,抓别人的把柄?抓别人玩游戏,抓别人看小说...这尼玛是一个人干的活?这是一个人应该干的事?那么人事到底算个什么事?是东西呢还是不是个东西呢?搞不懂人事到底是不是东西,好烦恼..... 人事的另外一个名称是叫做人力资源部吗,高端大气的名字,人力资源是为了突出人的重要性,从而从人事发展而来,这是一种高级形态的进化吗? 人力资源提供的是一种资源,人才也算是一种资源,那么如何来管理这种资源呢? 无效的

【DFS】算24点

[tyvj2802/RQNOJ74]算24点 描述 几十年前全世界就流行一种数字游戏,至今仍有人乐此不疲.在中国我们把这种游戏称为“算24点”.您作为游戏者将得到4个1~9之间的自然数作为操作数,而您的任务是对这4个操作数进行适当的算术运算,要求运算结果等于24.  您可以使用的运算只有:+,-,*,/,您还可以使用()来改变运算顺序.注意:所有的中间结果须是整数,所以一些除法运算是不允许的(例如,(2*2)/4是合法的,2*(2/4)是不合法的).下面我们给出一个游戏的具体例子:  若给出的4

用Python开发小学二年级口算自动出题程序

版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:[email protected] 武汉光谷一小二年级要求家长每天要给小孩出口算题目,让孩子练习. 根据老师出题要求编写了Python程序自动出题,结果保存为txt文件,打印出来作为练习用,这样就不用每天繁琐地人工出题了,其中的数字用randint随机产生. 程序如下: # -*- coding:utf-8 -*- __author__ = 'zhengbiqing [email protected]' __doc__ = "&qu

Unity预计算全局光照的学习(速度优化,LightProbe,LPPV)

1.基本参数与使用 1.1 常规介绍 使用预计算光照需要在Window/Lighting面板下找到预计算光照选项,保持勾选预计算光照并保证场景中有一个光照静态的物体 此时在编辑器内构建后,预计算光照开始生效. 相关的文章有很多,unity官方有一系列文章不错: https://unity3d.com/cn/learn/tutorials/topics/graphics/introduction-precomputed-realtime-gi 在Lighting面板的Scene页签下可以设置全局光