BZOJ1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛

来源:互联网 发布:东京食尸鬼 知乎 编辑:程序博客网 时间:2024/05/17 01:56

Portal

这里写图片描述

f[i][j][k]表示第i秒,到位置j,k的方案数。
没事刷刷水。。手速题。

【代码】

#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#include <queue> #define N 30005#define M 30005#define INF 1000000001using namespace std;typedef long long ll;int read(){    int x=0,f=1;char ch=getchar();    while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();}    while(isdigit(ch)){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}    return x*f;}int n,m,T,sx,sy,ex,ey;int f[16][105][105];char ch[105][105];int dx[]={0,0,1,-1};int dy[]={1,-1,0,0};void Input_Init(){    n=read(),m=read(),T=read();    for(int i=1;i<=n;i++) scanf("%s",ch[i]+1);    sx=read(),sy=read(),ex=read(),ey=read();}void DP(){    f[0][sx][sy]=1;    for(int i=1;i<=T;i++)    for(int j=1;j<=n;j++)    for(int k=1;k<=m;k++) if(ch[j][k]=='.')    for(int l=0;l<4;l++)    {        int xx=j+dx[l],yy=k+dy[l];        if(!xx||!yy||xx>n||yy>m||ch[xx][yy]=='*') continue;        f[i][j][k]+=f[i-1][xx][yy];    }    printf("%d\n",f[T][ex][ey]);}int main(){    Input_Init();    DP();    return 0;}
0 0
原创粉丝点击