dp1[i][j]表示只走x轴走j步到i位置有多少总走法,dp2同,dp方程就很好写

wa了无数发,发现MOD写在INF上了

 #include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
using namespace std;
#define MOD 9999991
const int INF=;
const double eps=1e-;
typedef long long ll;
#define cl(a) memset(a,0,sizeof(a))
#define ts printf("*****\n");
const int MAXN=;
int n,m,tt;
int x,y,k;
int c[][];
int sum1[],sum2[];
int dp1[MAXN][],dp2[MAXN][];
void add(int &a,int b)
{
a=(a+b)%MOD;
}
void fun()
{
cl(dp1),cl(dp2);
c[][]=c[][]=c[][]=;
for(int i=;i<=;i++)
{
c[i][]=;
for(int j=;j<i;j++)
{
c[i][j]=c[i-][j]+c[i-][j-];
c[i][j]%=MOD;
}
c[i][i]=;
}
dp1[x][]=;
for(int i=;i<=k;i++)
{
for(int j=;j<=n;j++)
{
if(j+<=n) add(dp1[j][i],dp1[j+][i-]);
if(j+<=n) add(dp1[j][i],dp1[j+][i-]);
if(j->=) add(dp1[j][i],dp1[j-][i-]);
if(j->=) add(dp1[j][i],dp1[j-][i-]);
}
}
dp2[y][]=;
for(int i=;i<=k;i++)
{
for(int j=;j<=m;j++)
{
if(j+<=m) add(dp2[j][i],dp2[j+][i-]);
if(j+<=m) add(dp2[j][i],dp2[j+][i-]);
if(j->=) add(dp2[j][i],dp2[j-][i-]);
if(j->=) add(dp2[j][i],dp2[j-][i-]);
}
}
cl(sum1),cl(sum2);
for(int i=;i<=k;i++)
{
for(int j=;j<=n;j++)
{
add(sum1[i],dp1[j][i]);
}
}
for(int i=;i<=k;i++)
{
for(int j=;j<=m;j++)
{
add(sum2[i],dp2[j][i]);
}
}
}
int main()
{
int i,j;
#ifndef ONLINE_JUDGE
freopen("1.in","r",stdin);
#endif
int ca=;
scanf("%d",&tt);
while(tt--)
{
scanf("%d%d%d%d%d",&n,&m,&k,&x,&y);
fun();
printf("Case #%d:\n",ca++);
ll sum=;
for(i=;i<=k;i++)
{
sum += (long long)c[k][i]*sum1[i]%MOD*sum2[k-i]%MOD;
sum %= MOD;
}
printf("%d\n",(int)sum);
}
}

hdu 4832 dp ***的更多相关文章

  1. HDU 4832(DP+计数问题)

    HDU 4832 Chess 思路:把行列的情况分别dp求出来,然后枚举行用几行,竖用几行.然后相乘累加起来就是答案 代码: #include <stdio.h> #include < ...

  2. hdu 3016 dp+线段树

    Man Down Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  3. HDU 5928 DP 凸包graham

    给出点集,和不大于L长的绳子,问能包裹住的最多点数. 考虑每个点都作为左下角的起点跑一遍极角序求凸包,求的过程中用DP记录当前以j为当前末端为结束的的最小长度,其中一维作为背包的是凸包内侧点的数量.也 ...

  4. HDU 4832 Chess (DP)

    Chess Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  5. hdu 4832 Chess(dp)

    Chess Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  6. HDU 4832 Chess(DP+组合数学)(2014年百度之星程序设计大赛 - 初赛(第二轮))

    Problem Description 小度和小良最近又迷上了下棋.棋盘一共有N行M列,我们可以把左上角的格子定为(1,1),右下角的格子定为(N,M).在他们的规则中,“王”在棋盘上的走法遵循十字路 ...

  7. HDU 1069 dp最长递增子序列

    B - Monkey and Banana Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I6 ...

  8. HDU 1160 DP最长子序列

    G - FatMouse's Speed Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64 ...

  9. hdu 4826(dp + 记忆化搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4826 思路:dp[x][y][d]表示从方向到达点(x,y)所能得到的最大值,然后就是记忆化了. #i ...

随机推荐

  1. Java设计原则:面向接口的设计

    前言:在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的.在这种情况下,各个对象内部是如何实现对系统设计人员来说就不那么重要:而各个对象之间的协作关系则成为系统设计的关键.小到不同 ...

  2. Matlab数值计算最简单的一个例子——指数衰减

    放射性衰变是指数衰减的典型例子.另外还有化学反应某反应物的减少,RC电路电流的减小,大气压随海拔高度的减小等. 指数衰减的方程: \begin{equation} \frac{dN(t)}{dt}=- ...

  3. Tautology(structure)

    Tautology Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10061   Accepted: 3826 Descri ...

  4. 数据库的设计(E-R图,数据库模型图,三大范式)

    一.数据库设计的概念 数据库设计是将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程. 二.数据库设计的重要性 如果一个数据库没有进行一个良好的设计,那么这个数据库完成之后他的缺点是 ...

  5. 第7章 使用RAID与LVM磁盘阵列技术

    章节简述: 您好,此章节为新增加的知识内容,正在努力的排版完善,预习2016年9月中旬完成,感谢您的支持,QQ群:340829. 7.1  磁盘冗余阵列 1988年由加利福尼亚大学伯克利分校发表的文章 ...

  6. Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

    原文:http://blog.csdn.net/abcjennifer/article/details/7700772 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...

  7. CreateRemoteThread远程线程注入Dll与Hook

    CreateRemoteThread虽然很容易被检测到,但是在有些场合还是挺有用的.每次想用的时候总想着去找以前的代码,现在在这里记录一下. CreateRemoteThread远程注入 DWORD ...

  8. 栈应用hanoi

    /* 课本p54页*/ #include<stdio.h> #include <iostream> using namespace std; void move(int n, ...

  9. 【Linux】/dev/null 2>&1 详解

     今天一个朋友突然在自己的维护的Linux中, /var/spool/cron/root 中看到了以下的内容: 30 19 * * * /usr/bin/**dcon.sh > /dev/nul ...

  10. Master-Worker模式

    并行程序设计模式--Master-Worker模式 简介 Master-Worker模式是常用的并行设计模式.它的核心思想是,系统有两个进程协议工作:Master进程和Worker进程.Master进 ...