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的更多相关文章

  1. Catalyst揭秘 Day8 Final 外部数据源和缓存系统

    Catalyst揭秘 Day8 Final 外部数据源和缓存系统 今天是Catalyst部分的收官,主要讲一些杂项内容. 外部数据源处理 什么叫外部数据源,是SparkSql自己支持的一些文件格式,以 ...

  2. COJ 0801 非传统题(一)

    非传统题(一) 难度级别:A: 运行时间限制:1000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 大家好!我是COJ第一道非传统题,是不是感觉非常的excite ...

  3. shell常见脚本30例

    shell常见脚本30例 author:headsen chen  2017-10-19  10:12:12 本文原素材出自网上,特此申明.有些地方加入我自己的改动 常见的30例shell脚本 1.用 ...

  4. loj #6046. 「雅礼集训 2017 Day8」爷

    #6046. 「雅礼集训 2017 Day8」爷 题目描述 如果你对山口丁和 G&P 没有兴趣,可以无视题目背景,因为你估计看不懂 …… 在第 63 回战车道全国高中生大赛中,军神西住美穗带领 ...

  5. .NET Core 首例 Office 开源跨平台组件(NPOI Core)

    前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C ...

  6. 以向VS 程序打包集成自动写入注册表功能为例,介绍如何实现自由控制安装过程

    最近由于项目部署时需要更灵活的控制程序安装的流程以及自定义安装行为,特意研究了一下VS程序打包,把解决办法和大家分享一下. 以VS2010为例: 这是一个已经设置好最基本的Visual Studio ...

  7. UWP开发:APP之间的数据交互(以微信为例)

    目录 说明 UWP应用唤醒方式 跟微信APP交互数据 APP之间交互数据的前提 说明 我们经常看到,在手机上不需要退到桌面,APP之间就可以相互切换,并且可以传递数据.比如我在使用知乎APP的时候,需 ...

  8. C++的性能C#的产能?! - .Net Native 系列《三》:.NET Native部署测试方案及样例

    之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...

  9. CSharpGL(34)以从零编写一个KleinBottle渲染器为例学习如何使用CSharpGL

    CSharpGL(34)以从零编写一个KleinBottle渲染器为例学习如何使用CSharpGL +BIT祝威+悄悄在此留下版了个权的信息说: 开始 本文用step by step的方式,讲述如何使 ...

随机推荐

  1. 关于jsp web项目中的javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/el/ELResolver错误

    错误: javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/el/ELResolver org.apache.j ...

  2. java web项目中的web.xml标签之context-param

    WEB项目初始化过程: 在启动Web项目时,容器(比如Tomcat)会读web.xml配置文件中的两个节点<listener>和<contex-param>. 接着容器会创建一 ...

  3. FaceBook要在视频领域打败YouTube?

    据<纽约时报>报道,FaceBook正在探索一项新的策略来直接把音乐视频嵌入到用户的News Feeds中.目前,具有代表性的视频网站有YouTube和Vimeo,它们可以在社交网络上分享 ...

  4. css 权威指南笔记(二)元素

    替换元素 用来替换元素内容的部分并非有文档内容直接表示. img input 非替换元素 其内容由用户代理(通常是一个浏览器)在元素本身生成的框中显示. 块级元素 块级元素生成一个 元素框,(默认)会 ...

  5. laravel扩展包开发步骤总结

    1. 创建包 php artisan workbench vendor/package --resources     注:  vendor:开发商名   package:包名   2.修改下包里co ...

  6. ecshop了解01

    ecshop 是一个基于b2c的开源商城系统,从现在起来我也来学习一下,它是基于面向对象的,当然里面也有类. ecshop 的目录介绍 上面简单介绍一个ecshop的几个主要的文件,上面已经截图给大家 ...

  7. (转载)[FFmpeg]使用ffmpeg从各种视频文件中直接截取视频图片

    你曾想过从一个视频文件中提取图片吗?在Linux下就可以,在这个教程中我将使用ffmpeg来从视频中获取图片. 什么是ffmpeg?What is ffmpeg? ffmpeg是一个非常有用的命令行程 ...

  8. PHP 开发API接口 注册,登录,查询用户资料

    服务端 <?php require 'conn.php'; header('Content-Type:text/html;charset=utf-8'); $action = $_GET['ac ...

  9. tomcat 正常启动,无法访问。且项目启动无问题。。。的解决办法。。

    Eclipes解决方法: 1.右击项目,选择propreties选项 2.在弹出的首选项窗口的左侧选择“Web Project Settings” 3.修改context root:输入框,修改成自己 ...

  10. centos 6.x 安装redis

    1.yum 安装 yum install redis 如果提示找不到包的话  可以yum install epel-release   先安装epel第三方库 2.源码安装 https://redis ...