Gym 101194H / UVALive 7904 - Great Cells - [数学题+快速幂][2016 EC-Final Problem H]
题目链接:
http://codeforces.com/gym/101194/attachments
题意:
给出 $N$ 行 $M$ 列的网格,每个格子内可以填入 $[1,K]$ 内的任意整数。
如果某个格子,它是它所在行上严格最大的,同时也是所在列上严格最大的,则认为这个格子是好格子。
对于一个非负整数 $g$,可以有 $A_g$ 种填法使得网格内好格子数目正好为 $g$。
现在要求 $\sum_{g=0}^{NM}(g+1) A_g$,输出答案模 $1e9+7$ 后的结果。
题解:
首先,一个 $N \times M$ 的网格最多有 $\min(N,M)$ 个好格子,不可能更多了,因此 $\sum_{g=0}^{NM}(g+1) A_g = \sum_{g=0}^{\min(N,M)}(g+1) A_g$。
又 $\sum_{g=0}^{\min(N,M)}(g+1) A_g = \sum_{g=0}^{\min(N,M)}g\cdot A_g + \sum_{g=0}^{\min(N,M)} A_g$,
显然,$\sum_{g=0}^{\min(N,M)} A_g$ 即 $[1,K]$ 内的数无限制任意填入网格的所有填法数目 $K^{NM}$。
那么剩下来就是求 $\sum_{g=0}^{\min(N,M)}g\cdot A_g$:
单独考虑 $g \cdot A_g$ 的意义,现在我每一种能产生 $g$ 个好格子的方案,都要乘上一个 $g$。相当于对这 $g$ 个格子里的每个格子都累计上一个方案数 $A_g$。
那么换言之,$\sum_{g=0}^{\min(N,M)} A_g$ 就相当于,对每个格子让其成为好格子的方案数的累加。
而某一个格子,可以使得它成为好格子的填法有 $\sum_{i=2}^{K}(i-1)^{n-1+m-1}\cdot K^{(N-1)(M-1)}$ 种,
总共 $N \times M$ 个好格子,因此 $\sum_{g=0}^{\min(N,M)}g\cdot A_g = NM \sum_{i=2}^{K}(i-1)^{n-1+m-1}\cdot K^{(N-1)(M-1)}$。
综上,答案为 $\sum_{g=0}^{NM}(g+1) A_g = K^{NM} + NM \sum_{i=2}^{K}(i-1)^{n-1+m-1}\cdot K^{(N-1)(M-1)}$。
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1e9+;
int n,m,k;
ll fpow(ll a,ll n)
{
ll res=,base=a%mod;
while(n)
{
if(n&) res*=base, res%=mod;
base*=base, base%=mod;
n>>=;
}
return res%mod;
}
int main()
{
int T;
cin>>T;
for(int kase=;kase<=T;kase++)
{
cin>>n>>m>>k;
ll ans=;
for(int i=;i<=k;i++)
{
ans+=fpow(i-,n+m-)*fpow(k,(n-)*(m-))%mod;
ans%=mod;
}
ans*=(n*m)%mod, ans%=mod;
ans+=fpow(k,n*m), ans%=mod;
printf("Case #%d: %lld\n",kase,ans);
}
}
Gym 101194H / UVALive 7904 - Great Cells - [数学题+快速幂][2016 EC-Final Problem H]的更多相关文章
- UVaLive 7361 Immortal Porpoises (矩阵快速幂)
题意:求Fibonacci的第 n 项. 析:矩阵快速幂,如果不懂请看http://www.cnblogs.com/dwtfukgv/articles/5595078.html 是不是很好懂呢. 代码 ...
- Gym 101194D / UVALive 7900 - Ice Cream Tower - [二分+贪心][2016 EC-Final Problem D]
题目链接: http://codeforces.com/gym/101194/attachments https://icpcarchive.ecs.baylor.edu/index.php?opti ...
- Gym 101194C / UVALive 7899 - Mr. Panda and Strips - [set][2016 EC-Final Problem C]
题目链接: http://codeforces.com/gym/101194/attachments https://icpcarchive.ecs.baylor.edu/index.php?opti ...
- Gym 102056L - Eventual … Journey - [分类讨论][The 2018 ICPC Asia-East Continent Final Problem L]
题目链接:https://codeforces.com/gym/102056/problem/L LCR is really an incredible being. Thinking so, sit ...
- All X_数的快速幂
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission( ...
- HDU 6185 Covering 矩阵快速幂
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6185 题意:用 1 * 2 的小长方形完全覆盖 4 * n的矩形有多少方案. 解法:小范围是一个经典题 ...
- Codeforces Round #536 (Div. 2) F 矩阵快速幂 + bsgs(新坑) + exgcd(新坑) + 欧拉降幂
https://codeforces.com/contest/1106/problem/F 题意 数列公式为\(f_i=(f^{b_1}_{i-1}*f^{b_2}_{i-2}*...*f^{b_k} ...
- CH0101 a^b、 CH0102 64位整数乘法(快速幂、快速乘)【模板题】
题目链接:传送门 //a^b 传送门 //64位整数乘法 题目: 描述 求 a 的 b 次方对 p 取模的值,其中 ≤a,b,p≤^ 输入格式 三个用空格隔开的整数a,b和p. 输出格 ...
- Educational Codeforces Round 60 D dp + 矩阵快速幂
https://codeforces.com/contest/1117/problem/D 题意 有n个特殊宝石(n<=1e18),每个特殊宝石可以分解成m个普通宝石(m<=100),问组 ...
随机推荐
- Docker入门 - 005 Docker 容器连接
Docker 容器连接 前面我们实现了通过网络端口来访问运行在docker容器内的服务.下面我们来实现通过端口连接到一个docker容器 网络端口映射 我们创建了一个 python 应用的容器. do ...
- utf-8 编码问题
使用下面直接进行处理$str = preg_replace('/[\x{10000}-\x{10FFFF}]/u', '', $str);
- IoC之AutoFac(一)——简单使用和组件注册
阅读目录 一.AutoFac简单使用 二.注册 2.1 注册方式 2.2 带参数注册 回到顶部 一.AutoFac简单使用 1 namespace AutofacDemo 2 { 3 class Pr ...
- Linux中安装mongodb
1,使用二进制包安装Mongodb 使用wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.0.tgz 下载编译好的二进制包( ...
- Python实现im2col和col2im函数
今天来说说im2col和col2im函数,这是MATLAB中两个内置函数,经常用于数字图像处理中.其中im2col函数在<MATLAB中的im2col函数>一文中已经进行了简单的介绍. 一 ...
- Python 简单入门指北(二)
Python 简单入门指北(二) 2 函数 2.1 函数是一等公民 一等公民指的是 Python 的函数能够动态创建,能赋值给别的变量,能作为参传给函数,也能作为函数的返回值.总而言之,函数和普通变量 ...
- caffe项目工程化封装FRCNN
各种坑!!想要做好,一定要自己一步步试,下载别人的总会出现各种问题. 步骤如下:(可以把这些文件打包在一个文件加下,分两个文件libs,include,一定要是自己的文件) 1 首先是配置caffe的 ...
- 解决space-between最后一排问题
display:flex + justify-content: space-between 能够实现2端对齐的布局,这种布局在网页中很常见.不过这种布局方式有一个问题.举个例子,我们假设现在一排放4个 ...
- SSH使用小记
0.是什么 SSH(Secure Shell)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境.(更多详情可参阅维基百科 https://zh.wikipedia.org/wi ...
- sql日期格式小应用 记录一下
比如这样的数据 20170317 要转成2017-03-17 单独一步做不到 两步思想 先转成日期格式 在进行格式化 select CONVERT(varchar(10),(CAST(CONVERT( ...