bzoj1668 [Usaco2006 Oct]Cow Pie Treasures 馅饼里的财富

从起点开始bfs,用bfs更新dp,然后就很水了= =

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #define fo(i,a,b) for(int i=a;i<=b;i++)
    #define fd(i,a,b) for(int i=a;i>=b;i--)
    using namespace std;
    const int N=1e3+5;
    int map[N][N];
    int f[N][N];
    int n,m;    
    const int dx[3]={-1,0,1};
    const int dy[3]={1,1,1};
    struct node
    {
        int x,y;
    }q[N*N];
    bool vis[N][N];
    inline void bfs(int sx,int sy)
    {
        int t=0,w=1;
        q[1].x=sx;
        q[1].y=sy;
        vis[sx][sy]=1;
        f[sx][sy]=map[sx][sy];
        while (t<w)
        {
            ++t;
            fo(k,0,2)
            {
            int x=q[t].x+dx[k];
            int y=q[t].y+dy[k];
            if (x>=1&&x<=n&&y>=1&&y<=m)
            {
                f[x][y]=max(f[x][y],f[q[t].x][q[t].y]+map[x][y]);
                if(!vis[x][y])q[++w].x=x,q[w].y=y,vis[x][y]=1;
            }
            }
        }
    }
    int main()
    {
        scanf("%d%d",&n,&m);
        fo(i,1,n)
        {
            fo(j,1,m)
            scanf("%d",&map[i][j]);
        }   
        bfs(1,1);
        printf("%d\n",f[n][m]);
    }
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页

打赏

EMber _

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者