COJ 2124 Day8-例1
Day8-例1 |
难度级别:B; 运行时间限制:1000ms; 运行空间限制:256000KB; 代码长度限制:2000000B |
试题描述
|
给定n、m的值,求
aaarticlea/png;base64,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" alt="" />的值。 答案对10^9+7取模。 |
输入
|
一行,两个整数n、m。
|
输出
|
一行,一个整数,表示答案mod 10^9+7的值。
|
输入示例
|
5 3
|
输出示例
|
36363
|
其他说明
|
n<=10^9 m<=50
|
题解:矩阵乘法+变形+二项式定理:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<stack>
#include<queue>
#include<cstring>
#define PAU putchar(' ')
#define ENT putchar('\n')
using namespace std;
typedef long long LL;
const LL mod=;
const int maxn=+;
struct matx{
int h,w;LL x[maxn][maxn];matx(){memset(x,,sizeof(x));}
matx operator*(matx a){
matx b;b.h=h;b.w=a.w;
for(int k=;k<w;k++)
for(int i=;i<h;i++)
for(int j=;j<a.w;j++)b.x[i][j]=(b.x[i][j]+x[i][k]*a.x[k][j])%mod;return b;
}
void init(int h,int w){this->h=h;this->w=w;return;}
}A,B;
LL C[maxn][maxn];int n,m;
LL powi(LL x,LL y){
LL ans=;x%=mod;for(int i=y;i;i>>=,x=x*x%mod)if(i&)ans=ans*x%mod;return ans;
}
matx powm(matx a,int n){
matx ans=a,tmp=a;n--;for(int i=n;i;i>>=,tmp=tmp*tmp)if(i&)ans=ans*tmp;return ans;
}
LL inv(LL a){return powi(a,mod-);}
void initc(){
for(int i=;i<=m;i++)C[i][]=,C[i][i]=;
for(int i=;i<=m;i++)for(int j=;j<i;j++)C[i][j]=(C[i-][j]+C[i-][j-])%mod;return;
}
void initmatx(){
A.init(,m+);B.init(m+,m+);A.x[][]=;
for(int i=;i<=m;i++)for(int j=;j<=i;j++)B.x[j][i]=C[i][j];
for(int i=;i<=m;i++)B.x[i][m+]=C[m][i];
B.x[m+][m+]=inv(m);return;
}
inline int read(){
int x=,sig=;char ch=getchar();
for(;!isdigit(ch);ch=getchar())if(ch=='-')sig=;
for(;isdigit(ch);ch=getchar())x=*x+ch-'';
return sig?x:-x;
}
inline void write(long long x){
if(x==){putchar('');return;}if(x<)putchar('-'),x=-x;
int len=;long long buf[];while(x)buf[len++]=x%,x/=;
for(int i=len-;i>=;i--)putchar(buf[i]+'');return;
}
int main(){
n=read();m=read();initc();initmatx();A=powm(B,n);
write((A.x[][m+]*powi(m,n))%mod);
return ;
}
COJ 2124 Day8-例1的更多相关文章
- Catalyst揭秘 Day8 Final 外部数据源和缓存系统
Catalyst揭秘 Day8 Final 外部数据源和缓存系统 今天是Catalyst部分的收官,主要讲一些杂项内容. 外部数据源处理 什么叫外部数据源,是SparkSql自己支持的一些文件格式,以 ...
- COJ 0801 非传统题(一)
非传统题(一) 难度级别:A: 运行时间限制:1000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 大家好!我是COJ第一道非传统题,是不是感觉非常的excite ...
- shell常见脚本30例
shell常见脚本30例 author:headsen chen 2017-10-19 10:12:12 本文原素材出自网上,特此申明.有些地方加入我自己的改动 常见的30例shell脚本 1.用 ...
- loj #6046. 「雅礼集训 2017 Day8」爷
#6046. 「雅礼集训 2017 Day8」爷 题目描述 如果你对山口丁和 G&P 没有兴趣,可以无视题目背景,因为你估计看不懂 …… 在第 63 回战车道全国高中生大赛中,军神西住美穗带领 ...
- .NET Core 首例 Office 开源跨平台组件(NPOI Core)
前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C ...
- 以向VS 程序打包集成自动写入注册表功能为例,介绍如何实现自由控制安装过程
最近由于项目部署时需要更灵活的控制程序安装的流程以及自定义安装行为,特意研究了一下VS程序打包,把解决办法和大家分享一下. 以VS2010为例: 这是一个已经设置好最基本的Visual Studio ...
- UWP开发:APP之间的数据交互(以微信为例)
目录 说明 UWP应用唤醒方式 跟微信APP交互数据 APP之间交互数据的前提 说明 我们经常看到,在手机上不需要退到桌面,APP之间就可以相互切换,并且可以传递数据.比如我在使用知乎APP的时候,需 ...
- C++的性能C#的产能?! - .Net Native 系列《三》:.NET Native部署测试方案及样例
之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...
- CSharpGL(34)以从零编写一个KleinBottle渲染器为例学习如何使用CSharpGL
CSharpGL(34)以从零编写一个KleinBottle渲染器为例学习如何使用CSharpGL +BIT祝威+悄悄在此留下版了个权的信息说: 开始 本文用step by step的方式,讲述如何使 ...
随机推荐
- RxJava使用场景小结
一.Scheduler线程切换 这种场景经常会在“后台线程取数据,主线程展示”的模式中看见 Observable.just(1, 2, 3, 4) .subscribeOn(Schedulers.io ...
- 9.22 noip模拟试题
水灾(sliker.cpp/c/pas) 1000MS 64MB 大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的地方都将会被洪水淹没. CCY ...
- DataTbale取值
有一个DataTable数据 //创建DataTable对象 DataTable dt = new DataTable("Table_AX"); //为DataTable创建列 / ...
- Adb工具常用操作-转(二)
一. PC与模拟器或真机交换文件(adb pull和adb push) 在开发阶段或其他原因,经常需要将PC上的文件复制到模拟器或真机上,或将模拟机和真机上的文件复制到PC上.使用adb pull和a ...
- Web通信中的Get、Post方法
首先我们要了解Tomcat,Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选. ...
- springMVC -- 整合UEditor(富文本编辑器)
工作中需要用到UEditor编辑文本,在与springMVC进行整合时,出现了一些问题,结果导致,在进行图片上传时出现如下提示: 上网查询了很多相关资料,此处简要记录下,防止以后遇到类似问题. 一种方 ...
- Axis,axis2,Xfire以及cxf对比 (转)
Axis,axis2,Xfire以及cxf对比 http://ws.apache.org/axis/ http://axis.apache.org/axis2/java/core/ http:// ...
- oracle-同义词,又学到东西了
select col1 from tab1@db_link1; create or replace synonym test123 as se,ect col1 from tab1@db_link ...
- 《find技巧》-“linux命令五分系列”之一
一天一个命令,做个记录, 我要成大神,哈哈哈 本原创文章属于<Linux大棚>博客. 博客地址为http://roclinux.cn. 文章作者为roc 希望您能通过捐款的方式支持Linu ...
- php之购物车类思路及代码
<?php /* 购物车类 1.整站范围内,购物车--全局有效 解决:把购物车的信息,放在session里 2.既然全局有效,购物车的实例只有一个 解决:单例模式 技术选型:session+单例 ...