根据公式$x^k=\sum_{i=1}^k Stirling2(k,i)i!C(x,i)$,

设$f[i][j][k]$表示从$(i,j)$出发的所有路径的$C(路径长度,k)$的和,

根据$C(n,m)=C(n-1,m-1)+C(n-1,m)$,则有:

$f[now][k]=\sum(f[nxt][k]+f[nxt][k-1]+C(1,k))$

然后根据公式求出每种幂的答案即可。

时间复杂度$O(nmk+k^2)$。

#include<cstdio>
#include<algorithm>
const int N=305,M=N*N,P=12345;
int n,m,K,cnt,i,j,k,o,x,y,d,C[N],ans[N],fac[N],S[N][N];
int a[N][N],pos[N][N],f[2][M],dx[4]={-1,1,0,0},dy[4]={0,0,-1,1};
struct E{int x,y;E(){}E(int _x,int _y){x=_x,y=_y;}}b[M];
inline bool cmp(const E&x,const E&y){return a[x.x][x.y]<a[y.x][y.y];}
int main(){
scanf("%d%d%d",&n,&m,&K);
for(i=1;i<=n;i++)for(j=1;j<=m;j++)scanf("%d",&a[i][j]),b[++cnt]=E(i,j);
std::sort(b+1,b+cnt+1,cmp);
for(i=1;i<=cnt;i++)pos[b[i].x][b[i].y]=i;
for(k=o=0;k<=K;k++,o^=1)for(i=1;i<=cnt;i++){
f[o][i]=0;
for(d=0;d<4;d++){
x=b[i].x+dx[d],y=b[i].y+dy[d];
if(x<1||x>n||y<1||y>m||a[x][y]>=a[b[i].x][b[i].y])continue;
j=pos[x][y];
(f[o][i]+=f[o][j]+f[o^1][j]+(k<=1))%=P;
}
(C[k]+=f[o][i])%=P;
}
for(fac[1]=1,i=2;i<=K;i++)fac[i]=fac[i-1]*i%P;
for(i=1;i<=K;i++)for(S[i][i]=j=1;j<i;j++)S[i][j]=(j*S[i-1][j]+S[i-1][j-1])%P;
for(ans[0]=C[0],i=1;i<=K;i++)for(j=1;j<=i;j++)(ans[i]+=S[i][j]*fac[j]%P*C[j])%=P;
for(i=0;i<=K;i++)printf("%d\n",ans[i]);
return 0;
}

  

BZOJ3468 : 滑雪的更多相关文章

  1. tyvj1004 滑雪

    描述     trs喜欢滑雪.他来到了一个滑雪场,这个滑雪场是一个矩形,为了简便,我们用r行c列的矩阵来表示每块地形.为了得到更快的速度,滑行的路线必须向下倾斜.    例如样例中的那个矩形,可以从某 ...

  2. bzoj 2753: [SCOI2012] 滑雪与时间胶囊 Label:MST

    题目描述 a180285非常喜欢滑雪.他来到一座雪山,这里分布着M条供滑行的轨道和N个轨道之间的交点(同时也是景点),而且每个景点都有一编号i(1<=i<=N)和一高度Hi.a180285 ...

  3. USACO 2014 JAN 滑雪录像

    2. 滑雪录像{silver题3} [问题描述] 冬奥会的电视时刻表包含N (1 <= N <= 150)个节目,每个节目都有开始和结束时间.农民约翰有两台录像机,请计算他最多可以录制多少 ...

  4. USACO 滑雪课程

    #include<cstdio> #include<iostream> using namespace std; int T,S,N,maxd; ],lv[],next[],f ...

  5. Bzoj2753 [SCOI2012]滑雪与时间胶囊

    2753: [SCOI2012]滑雪与时间胶囊 Time Limit: 50 Sec  Memory Limit: 128 MBSubmit: 2282  Solved: 796 Descriptio ...

  6. 滑雪 why WA

    滑雪 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 587  Solved: 219 Description 小明喜欢滑雪,因为滑雪的确很刺激,可是为了获 ...

  7. 滑雪(简单dp)

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 81099   Accepted: 30239 Description Mic ...

  8. Code[VS] 2152 滑雪题解

    Code[VS] 2152 滑雪题解 题目描述 Description trs喜欢滑雪.他来到了一个滑雪场,这个滑雪场是一个矩形,为了简便,我们用r行c列的矩阵来表示每块地形.为了得到更快的速度,滑行 ...

  9. E - 滑雪

    Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Pract ...

随机推荐

  1. Mac 制作 10.11.3 U盘安装盘

    U盘要且只分一个区  Mac OS 拓展(日志式)  GUID分区表: 将“安装 OS X El Capitan” 放到  应用程序文件夹下 命令: sudo /Applications/Instal ...

  2. Tomcat在Linux上的安装与配置

    以下使用的Linux版本为: Redhat Enterprise Linux 6.5 x86_64,Tomcat版本为tomcat-7.0.54. 1.下载JDK与Tomcat.    jdk下载地址 ...

  3. 红外解码编码学习----verilog

    在设计中运用红外遥控器可以很好的解决按键缺少的问题,还可以方便的控制产品. 红外发射部分: 红外发射管: 判断红外发射管的好坏 : 电路原理图: 接收部分: 传输的NEC协议: 本实验电路: veri ...

  4. MVC基础知识 – 2.新语法

    1.自动属性 Auto-Implemented Properties 2.隐式类型 var 3.参数默认值 和 命名参数 4.对象初始化器 与 集合初始化器 { } 5.匿名类 & 匿名方法 ...

  5. MyBatis 特殊字符处理

    http://blog.csdn.net/zheng0518/article/details/10449549

  6. JVM内存区域与内存溢出异常

    Java虚拟机在执行java程序时会把它所管理的内存会分为若干个不同的数据区域,不同的区域在内存不足时会抛出不同的异常. >>运行时数据区域的划分 (1)程序计数器程序计数器(Progra ...

  7. 使用Asyncio的Coroutine来实现一个有限状态机

    如图: #!/usr/bin/env python # -*- coding: utf-8 -*- import asyncio import datetime import time from ra ...

  8. thinkphp 两表、三表联合查询

    //两表联合查询 $Model = M('T1');$Model->join('left join t2 on t1.cid = t2.id')->select();// $list = ...

  9. phpcms调用一级栏目和二级栏目

    {loop subcat(,,,$siteid) $r}  {php $num++} <strong><a href=} <br /> {elseif $n!=$c} | ...

  10. CmRegisterCallback使用方法

    部分代码 #include "my_sys_fun.h"#ifdef __cplusplusextern "C"{#endif //驱动加载函数 NTSTATU ...