zoukankan      html  css  js  c++  java
  • 1314:【例3.6】过河卒(Noip2002)

    http://ybt.ssoier.cn:8088/problem_show.php?pid=1314


    #include<iostream>
    using namespace std;
    const int maxn=20+5;
    long long f[maxn][maxn];//数据可能超出int
    int b[maxn][maxn];//障碍,1表示障碍
    int m,n,x,y;
    // 八个xy坐标的偏移
    int xy[][2]={
         {-1,-2},{-1, 2},
         {1, -2},{1, 2},
         {-2,-1}, {-2, 1},
         {2,-1}, {2, 1}
    };

    void dumpb()
    {
         for(int i=0;i<=m;i++)
         {
             for(int j=0;j<=n;j++)
             {
                 cout<<b[i][j]<<" ";
             }
             cout<<endl;
         }   
    }


    void dumpf()
    {
         for(int i=0;i<=m;i++)
         {
             for(int j=0;j<=n;j++)
             {
                 cout<<f[i][j]<<" ";
             }
             cout<<endl;
         }   
    }
    int main()
    {
         cin>>m>>n>>x>>y;
         b[x][y]=1;// 马的位置也不能通过(题目没说,坑)
         for(int i=0;i<8;i++)
         {
             int nx=x+xy[i][0];
             int ny=y+xy[i][1];
    //        cout<<nx<<" " <<ny<<endl;
             if(nx>=0 && nx<=m && ny>=0 && ny<=n)
                 b[nx][ny]=1;
         }
    //dumpb();
         f[0][0]=1;
        
         //初始化第0行
         for(int i=1;i<=n;i++)
             if(b[0][i]==1) f[0][i]=0;
             else f[0][i]=f[0][i-1];
            
         //初始化第0列
         for(int i=1;i<=m;i++)
         {
             if(b[i][0]==1)
                 f[i][0]=0;
             else
                 f[i][0]=f[i-1][0];
         }


    //dumpf();
            
         for(int i=1;i<=m;i++)
             for(int j=1;j<=n;j++)
             {
                 if(b[i][j]==1) f[i][j]=0;
                 else f[i][j]=f[i-1][j]+f[i][j-1];//只能从上和左下来
             }
         cout<<f[m][n]<<endl;
         
    //dumpf();

        return 0;
    }

  • 相关阅读:
    万字长文:大规模 Elasticsearch 高可用集群环境调优实践
    jenkins 配置。
    Xcode的多种Build Configuration
    FZUOJ 2214 Knapsack problem 背包
    Atcoder 070 D Transit Tree Path
    POJ 3903 Stock Exchange LIS
    POJ 2533 Longest Ordered Subsequence 简单DP
    HDU 1260 Tickets 简单DP
    HDU 1114 Piggy-Bank 简单DP
    HDU 1176 免费馅饼 简单DP
  • 原文地址:https://www.cnblogs.com/cute/p/15213367.html
Copyright © 2011-2022 走看看