HDU 5793 A Boring Question ——(找规律,快速幂 + 求逆元)
参考博客:http://www.cnblogs.com/Sunshine-tcf/p/5737627.html。
说实话,官方博客的推导公式看不懂。。。只能按照别人一样打表找规律了。。。但是打表以后其实也不是很好看出规律的。。。而且这个表都写了半天233。。。(真是太弱了= =)为了打表,我们应当先知道k数列必须是不递减的才能满足值不为0,因此我们可以用递归来写这个表(类似于dfs)。
AC代码如下:
#include <stdio.h>
#include <algorithm>
#include <string.h>
using namespace std;
typedef long long ll;
const int mod = ; int qpow(int a,int b)
{
int ans = ;
while(b)
{
if(b & ) ans = 1LL * ans * a % mod;
b >>= ;
a = 1LL * a * a % mod;
}
return ans;
} int inv(int p)
{
return qpow(p,mod-);
} int main()
{
int T;scanf("%d",&T);
while(T--)
{
int n,m;scanf("%d%d",&n,&m);
int ans = qpow(m,n+);
ans = ((ans - ) % mod + mod) % mod;
ans = 1LL * ans * inv(m-) % mod;
printf("%d\n",ans);
}
}
打表代码如下:
#include <stdio.h>
#include <algorithm>
#include <string.h>
using namespace std; int c[][];
//int n,m; void init()
{
c[][] = c[][] = c[][] = ;
for(int i=;i<=;i++)
{
c[i][] = c[i][i] = ;
for(int j=;j<i;j++)
{
c[i][j] = c[i-][j-] + c[i-][j];
}
}
} int ans = ,a[];
void solve(int pos,int now,int n,int m)
{
a[pos] = now;
if(pos == m)
{
int t = ;
for(int i=;i<=m;i++) t *= c[a[i]][a[i-]];
ans += t;
return;
}
for(int i=now;i<=n;i++)
{
solve(pos+,i,n,m);
}
} void getAns(int n,int m)
{
memset(a,,sizeof(a));
ans = ;
for(int i=;i<=n;i++)
{
solve(,i,n,m);
}
} int main()
{
init();
for(int i=;i<=;i++)
{
for(int j=;j<=;j++)
{
getAns(i,j);
printf("f(%d,%d)=%d ",i,j,ans);
}
puts("");
}
/*while(scanf("%d%d",&n,&m)==2)
{
memset(a,0,sizeof(a));
ans = 0;
for(int i=0;i<=n;i++)
{
solve(1,i);
}
printf("%d\n",ans);
}*/
}
总感觉,,数论的题目都好难想到思路啊= =。。
HDU 5793 A Boring Question ——(找规律,快速幂 + 求逆元)的更多相关文章
- HDU 5793 A Boring Question (找规律 : 快速幂+乘法逆元)
A Boring Question Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- hdu 5187 zhx's contest [ 找规律 + 快速幂 + 快速乘法 || Java ]
传送门 zhx's contest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- HDU 5793 - A Boring Question
HDU 5793 - A Boring Question题意: 计算 ( ∑(0≤K1,K2...Km≤n )∏(1≤j<m) C[Kj, Kj+1] ) % 1000000007=? (C[ ...
- HDU4869:Turn the pokers(快速幂求逆元+组合数)
题意: 给出n次翻转和m张牌,牌相同且一开始背面向上,输入n个数xi,表示xi张牌翻转,问最后得到的牌的情况的总数. 思路: 首先我们可以假设一开始牌背面状态为0,正面则为1,最后即是求ΣC(m,k) ...
- HDU 5793 A Boring Question (找规律 : 快速幂+逆元)
A Boring Question 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5793 Description Input The first l ...
- HDU 5793 A Boring Question (逆元+快速幂+费马小定理) ---2016杭电多校联合第六场
A Boring Question Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- hdu 5793 A Boring Question(2016第六场多校)
A Boring Question Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- HDU 5793 A Boring Question 多校训练
There are an equation. ∑0≤k1,k2,⋯km≤n∏1⩽j<m(kj+1kj)%1000000007=?∑0≤k1,k2,⋯km≤n∏1⩽j<m(kj+1kj)%1 ...
- ACM-ICPC 2018 焦作赛区网络预赛 G. Give Candies (打表找规律+快速幂)
题目链接:https://nanti.jisuanke.com/t/31716 题目大意:有n个孩子和n个糖果,现在让n个孩子排成一列,一个一个发糖果,每个孩子随机挑选x个糖果给他,x>=1,直 ...
随机推荐
- 【原创】数据库基础之Sqlite
官方:https://www.sqlite.org/index.html 简介 SQLite is a C-language library that implements a small, fast ...
- mysql java jdbc 如何 update select
2019年8月6日17:28:07 sql 不知道怎么写,也没去查,因为需求可能中途需要修改值,有点麻烦 直接用jdbc实现. 查询出来的值,直接根据update条件更新,写在一个方法里 public ...
- Oracle连接字符串总结(转)
Oracle XE 标准连接 Oracle XE(或者"Oracle Database 10g Express Edition")是一个简单免费发布的版本. 以下是语法格式: Dr ...
- java字符串大小写转换
String test="SHA34cccddee"; System.out.println(test.toUpperCase());//小写转大写 String test= ...
- js之运算符(关系运算符)
关系运算符用于测试两个值之间的关系,根据关系是否存在而返回true或者是false.关系表达式总是返回一个布尔值. 具有如下8个关系运算符:大于(>),小于(<),小于等于(<=), ...
- 将xml作为输入参数传递给存储过程
1 查看存储过程的方式 exec sp_helptext 'GetTrackingFeedLogByMaxId' select definition from sys.sql_modules wher ...
- CentOS7 使用光盘镜像作为yum源
1. 首先,如果是虚拟机,则确认guest有光驱并且处于激活状态,如果是真机则在光驱中插入光盘 :-) 2. mkdir /media/cdrom mount /dev/cdrom /media/c ...
- kbmMWClientQuery判断一个字段是否修改?
function TForm5.IsFieldChanged(aDataSet: TkbmMWCustomClientQuery; aFieldName: string): Boolean; var ...
- 04.ZabbixWEB网站监控
1.Web场景监测概述 1.Web网站中什么是动态网站,什么是静态网站 静态网站:纯静态网站就是服务器的源代码和客户端的源代码一致. 动态网站:比如: <?php phpinfo()?> ...
- Type反射遍历类的属性
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup& ...