ZR#1009
2024-09-22 07:21:15
ZR#1009
解法:
因为无敌的SR给了一个大暴力算法,所以通过打表发现了了一些神奇的性质,即第一行和第一列的对应位置数值相等。
我们可以通过手算得出 $ F(n) = \frac{n(n + 1)(n + 2)}{6} $
然后就可以 $ O(1) $ 求出 $ ans = F(n) * F(m) $。
CODE:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
#define LL long long
const int mod = 1e9 + 7;
LL n,m,ans;
inline LL fast_pow(LL a,LL b,LL p) {
LL ans = 1;
while(b) {
if(b & 1) ans = ans * a % p;
a = a * a % p;
b >>= 1;
}
return ans % p;
}
inline LL calc(LL x) {
return (x % mod * (x + 1) % mod * (x + 2) % mod + mod) % mod * fast_pow(6,mod-2,mod) % mod;
}
int main() {
scanf("%lld%lld",&n,&m);
n %= mod,m %= mod;
ans = calc(n) % mod * calc(m) % mod;
printf("%lld\n",ans);
//system("pause");
return 0;
}
最新文章
- android贪吃蛇(超级简陋版)
- 数据人员Sql必会——行转列
- .net开发,html ajax开发架构之我见 bs ajax最简化法 Knock out Request,totally oo
- UVA 11419 SAM I AM(最大二分匹配&;最小点覆盖:K&#246;nig定理)
- struts.properties配置详解(转)
- ramdisk作为根文件系统的配置
- RedHat7搭建MongoDB集群
- TOJ 1139.Compromise
- ToDictionary() and ToList()
- Java 实现下载
- 字符串的拼接python
- H5仿微信界面教程(一)
- 洛谷2709 小B的询问(莫队)
- Obj-C中内存的管理一瞥
- 学习MACD指标
- Vue 入门. 如何在HTML代码里面快速使用Vue
- where 常用条件范例
- Oracle DB 使用子查询来解决查询
- ThinkPHP5 控制器中怎么实现 where id = 2 or id = 3 这个查询语句?
- VBox修改uuid