BZOJ3468 : 滑雪
根据公式$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 : 滑雪的更多相关文章
- tyvj1004 滑雪
描述 trs喜欢滑雪.他来到了一个滑雪场,这个滑雪场是一个矩形,为了简便,我们用r行c列的矩阵来表示每块地形.为了得到更快的速度,滑行的路线必须向下倾斜. 例如样例中的那个矩形,可以从某 ...
- bzoj 2753: [SCOI2012] 滑雪与时间胶囊 Label:MST
题目描述 a180285非常喜欢滑雪.他来到一座雪山,这里分布着M条供滑行的轨道和N个轨道之间的交点(同时也是景点),而且每个景点都有一编号i(1<=i<=N)和一高度Hi.a180285 ...
- USACO 2014 JAN 滑雪录像
2. 滑雪录像{silver题3} [问题描述] 冬奥会的电视时刻表包含N (1 <= N <= 150)个节目,每个节目都有开始和结束时间.农民约翰有两台录像机,请计算他最多可以录制多少 ...
- USACO 滑雪课程
#include<cstdio> #include<iostream> using namespace std; int T,S,N,maxd; ],lv[],next[],f ...
- Bzoj2753 [SCOI2012]滑雪与时间胶囊
2753: [SCOI2012]滑雪与时间胶囊 Time Limit: 50 Sec Memory Limit: 128 MBSubmit: 2282 Solved: 796 Descriptio ...
- 滑雪 why WA
滑雪 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 587 Solved: 219 Description 小明喜欢滑雪,因为滑雪的确很刺激,可是为了获 ...
- 滑雪(简单dp)
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 81099 Accepted: 30239 Description Mic ...
- Code[VS] 2152 滑雪题解
Code[VS] 2152 滑雪题解 题目描述 Description trs喜欢滑雪.他来到了一个滑雪场,这个滑雪场是一个矩形,为了简便,我们用r行c列的矩阵来表示每块地形.为了得到更快的速度,滑行 ...
- E - 滑雪
Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Status Pract ...
随机推荐
- 20145206邹京儒《Java程序设计》课程总结
20145206邹京儒<Java程序设计>课程总结 (按顺序)每周读书笔记链接汇总 第一周:http://www.cnblogs.com/ZouJR/p/5213572.html http ...
- python中的时间处理函数
Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime.time模块我在之前的文章已经有所介绍,它提供 的接口与C标准库time.h基本一致.相比于time模块 ...
- Spring学习笔记—装配Bean
在Spring中,对象无需自己负责查找或创建与其关联的其他对象.相反,容器负责把需要相互协作的对象引用赋予各个对象.创建应用对象之间协作关系的行为通常称为装配(wiring),这也是依赖注入的本质. ...
- 自定义log日志
Log.cs (这个已经不能用了,用下面的问题解决方案) using System; using System.Collections.Generic; using System.Web; u ...
- 与你相遇好幸运,Sail.js其他字段查询
query: function (req, res) { var par = req.query; for(var key in par){ var options = {}; ...
- ASP.NET Web Api 实现数据的分页(转载)
转载地址:http://www.cnblogs.com/fzrain/p/3542608.html 前言 这篇文章我们将使用不同的方式实现手动分页(关于高端大气上档次的OData本文暂不涉及,但有可能 ...
- 【转载】python super的用法
转载地址: http://blog.csdn.net/cxm19830125/article/details/20610533 super的用法是调用继承类的初始化方法,如下面的代码: class A ...
- 基于MyEclipse6.5的ssh整合
1.编写目的 为了学习,为了更好的学习java. 为了让想要学习这个整合的人少走弯路! ! ! 2.实验环境 l MyEclipse6.5 l JBoss4.2.1 l SQL2005 l 数据库脚本 ...
- hdu 1754:I Hate It(线段树,入门题,RMQ问题)
I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- 【openGL】画圆
#include "stdafx.h" #include <GL/glut.h> #include <stdlib.h> #include <math ...