算
来源:互联网 发布:sql delete一条数据 编辑:程序博客网 时间:2024/04/28 14:58
不是给清北打广告!!!!!!
其实就是个等比数列求和,只是除不满足同余的性质,需要求一下逆元
a/bmodp,在这个题中,b与p是互质的,可以用费马小定理去求逆元(还可以用拓展欧几里得,因为写了快速幂了,小费马可以直接搞,懒得弄了)
a/bmodp=a*b^p-2%p
这样就可以取模了
用上这个求和公式的方法大约的时间复杂度为O(n*logm),比暴力强多了
当然还需要注意一下,当公比是1时,要特判一下,因为分母不能为0
#include <cstdio>#include <iostream>using namespace std; long long sum;int n,m;const int p=1e9+7;const int mod=1e9+7;inline void Calculation(long long x){ long long b=x; for(int j=1;j<=m;j++) { sum=(sum+b)%p; b=(b*x)%p; }}inline long long power_mod(long long a,long long b) { long long ans=1; while (b) { if (b%2) ans=ans*a%mod; a=a*a%mod; b/=2; } return ans; } int main(){ scanf("%d%d",&n,&m); sum=(m%mod); for(int i=2;i<=n;i++) { sum=(sum+((i*(1-power_mod(i,m))%mod)%mod*(power_mod(1-i,p-2))%mod)%mod)%mod; } printf("%lld",sum); return 0; }
阅读全文
1 0
- 算
- 算24
- 算星期
- 算日期
- 怎么算
- 算最大公约数
- 算24
- 算24
- 算菜价
- 算菜价
- 算菜价
- 算菜价
- 算菜价
- 算24
- 算菜价
- 【小算】
- 算菜价
- 算阶乘
- 理解矩阵乘法
- setImageResource(),setImageBitmap()和setImageDrawable()的区别
- mariadb 远程访问
- SAS的数组array介绍
- Python-Learning-UnitTest
- 算
- STL之atio()数据类型转换 n-1位数
- WTL 在 x64 下编译找不到 atlapp.h 和 atlres.h 的解决办法
- Fiddler抓包3-查看get与post请求
- 数据库分库分表策略的具体实现方案
- c++对提取运算符与插入运算符的重载
- apk文件的解包和打包操作
- leetcode maximum-depth-of-binary-tree
- 行为型模式之策略模式(Strategy)