HDU-5793 A Boring Question(打表找规律)
来源:互联网 发布:linux重启命令init 编辑:程序博客网 时间:2024/05/22 17:09
题意:
求(∑0≤k1,k2...km≤n(∏1≤j<m C(kj+1, kj)))%1000000007的值;
思路:
打个表很容易就找到ans[n] = m*ans[n-1]+1;
代码:
#include <algorithm> #include <string.h> #include <cstdio> #define LL long long using namespace std; const LL mod = 1e9+7;struct node { LL m[2][2]; }; int n, m;node multi(node x, node y) { node res = {0, 0, 0, 0}; for(int i = 0; i < 2; ++i) for(int j = 0; j < 2; ++j) for(int k = 0; k < 2; ++k) res.m[i][j] += x.m[i][k]*y.m[k][j], res.m[i][j] %= mod; return res; } LL qpow(LL n) { node ans = {1, 0, 0, 1}; node bas = {m%mod, 1, 0, 1}; node col = {1, 0, 1, 0}; while(n) { if(n&1) ans = multi(ans, bas); bas = multi(bas, bas); n >>= 1; } return multi(ans, col).m[0][0]; } int main() { int t; scanf("%d", &t); while(t--) { scanf("%d %d", &n, &m); if(n == 0) {puts("1"); continue;} printf("%lld\n", qpow(n)); } return 0; }
继续加油~
阅读全文
1 0
- HDU 5793 A Boring Question 打表找规律
- hdu-5793 A Boring Question 打表找规律
- HDU-5793 A Boring Question(打表找规律)
- HDU-5793-A Boring Question(打表找规律)
- HDU 5793 A Boring Question (打表找规律)
- HDU-5793-A Boring Question-打表找规律加模逆元
- HDU 5793 A Boring Question (找规律+快速幂)
- 【HDU】5793 A Boring Question
- A Boring Question HDU
- Hdu 5793 A Boring Question【暴力打表+找规律+求逆元+快速幂+快速积】
- (HDU 5793)2016 Multi-University Training Contest 6 A Boring Question (规律)
- HDU 5793 A Boring Question (数学)
- hdu 5793 A Boring Question 数学
- HDU 5793 A Boring Question(多校6)
- HDU 5793 A Boring Question(数论)
- hdu 5793 A Boring Question 数学
- 打表找规律+快速幂+求逆元______A Boring Question(hdu 5793 2016多校第六场)
- hdoj5793 A Boring Question【找规律】
- UNIX环境编程学习笔记(19)——进程管理之fork 函数的深入学习
- 猜数字游戏--基于python
- 积累_知识_成长
- Servlet response中文乱码的解决
- 悦读---《万万没想到-用理工科思维理解世界》(2)
- HDU-5793 A Boring Question(打表找规律)
- 树状数组 区间修改 全网最简单最清楚
- object之toString方法深入剖析
- UVALive3126[Taxi Cab Scheme] DAG最小路径覆盖模型
- RabbitMQ简介
- vim插件之quickfix
- MVC在b/s系统下的应用图解
- centos 7.2关闭防火墙
- 安装node