//Accepted    468 KB    812 ms
 //bfs+dp
 #include <cstdio>
 #include <cstring>
 #include <iostream>
 using namespace std;
 #include <queue>
 ;
 int map[imax_n][imax_n];
 int dp[imax_n][imax_n];
 bool vis[imax_n][imax_n];
 ]={,,-,,,,,-};
 int n;
 int k;
 queue<int > qx;
 queue<int > qy;
 int max(int a,int b)
 {
     return a>b?a:b;
 }
 void bfs()
 {
     memset(dp,,sizeof(dp));
     memset(vis,,sizeof(vis));
     while (!qx.empty()) qx.pop();
     while (!qy.empty()) qy.pop();
     qx.push();
     qy.push();
     dp[][]=map[][];
     vis[][]=true;
     while (!qx.empty())
     {
         int x=qx.front();
         qx.pop();
         int y=qy.front();
         qy.pop();
         vis[x][y]=false;
         int nx,ny;
         ;j<;j++)
         ;i<=k;i++)
         {
             nx=x+i*d[j][];
             ny=y+i*d[j][];
              && nx<n && ny>= && ny<n && map[nx][ny]>map[x][y])
             {
                 if (dp[nx][ny]<dp[x][y]+map[nx][ny])
                 {
                     dp[nx][ny]=dp[x][y]+map[nx][ny];
                     if (!vis[nx][ny])
                     {
                         vis[nx][ny]=true;
                         qx.push(nx);
                         qy.push(ny);
                     }
                 }
             }
         }
     }
     ;
     ;i<n;i++)
     ;j<n;j++)
     ans=max(ans,dp[i][j]);
     printf("%d\n",ans);
 }
 int main()
 {
      && k==-))
     {
         ;i<n;i++)
         ;j<n;j++)
         scanf("%d",&map[i][j]);
         bfs();
     }
     ;
 }

hdu1078 bfs的更多相关文章

  1. 图的遍历(搜索)算法(深度优先算法DFS和广度优先算法BFS)

    图的遍历的定义: 从图的某个顶点出发访问遍图中所有顶点,且每个顶点仅被访问一次.(连通图与非连通图) 深度优先遍历(DFS): 1.访问指定的起始顶点: 2.若当前访问的顶点的邻接顶点有未被访问的,则 ...

  2. 【BZOJ-1656】The Grove 树木 BFS + 射线法

    1656: [Usaco2006 Jan] The Grove 树木 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 186  Solved: 118[Su ...

  3. POJ 3278 Catch That Cow(bfs)

    传送门 Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 80273   Accepted: 25 ...

  4. POJ 2251 Dungeon Master(3D迷宫 bfs)

    传送门 Dungeon Master Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 28416   Accepted: 11 ...

  5. Sicily 1215: 脱离地牢(BFS)

    这道题按照题意直接BFS即可,主要要注意题意中的相遇是指两种情况:一种是同时到达同一格子,另一种是在移动时相遇,如Paris在(1,2),而Helen在(1,2),若下一步Paris到达(1,1),而 ...

  6. Sicily 1048: Inverso(BFS)

    题意是给出一个3*3的黑白网格,每点击其中一格就会使某些格子的颜色发生转变,求达到目标状态网格的操作.可用BFS搜索解答,用vector储存每次的操作 #include<bits/stdc++. ...

  7. Sicily 1444: Prime Path(BFS)

    题意为给出两个四位素数A.B,每次只能对A的某一位数字进行修改,使它成为另一个四位的素数,问最少经过多少操作,能使A变到B.可以直接进行BFS搜索 #include<bits/stdc++.h& ...

  8. Sicily 1051: 魔板(BFS+排重)

    相对1150题来说,这道题的N可能超过10,所以需要进行排重,即相同状态的魔板不要重复压倒队列里,这里我用map储存操作过的状态,也可以用康托编码来储存状态,这样时间缩短为0.03秒.关于康托展开可以 ...

  9. Sicily 1150: 简单魔板(BFS)

    此题可以使用BFS进行解答,使用8位的十进制数来储存魔板的状态,用BFS进行搜索即可 #include <bits/stdc++.h> using namespace std; int o ...

随机推荐

  1. [借鉴] Android简便通用的SimpleBaseAdapter

    public abstract class SimpleBaseAdapter<T> extends BaseAdapter { protected Context context; pr ...

  2. ios 企业证书 ipa 重新签名发布

    提示:暂时不能用了,企业证书滥用 ios 企业证书 ipa 重新签名发布 1. 应用场景 当前有一个 未用企业证书签名的 ipa 文件,默认是不可以直接安装到设备上的:我们需要用企业版证书签名: 当前 ...

  3. 深入理解React(二) —— 数据流和事件原理

    版权声明:本文由左明原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/158 来源:腾云阁 https://www.qclou ...

  4. DBUtils学习

    1.       DBUtils是JDBC的简单封装,可以和JDBC混合使用. 2.       DBUtils对结果集自动封装为JavaBean是有着苛刻要求的:必须满足JavaBean的规范,其次 ...

  5. struts2 拦截器的注册在strut.xml中

    根据需要:需要在struts.xml中注册拦截器为以下内容  根据自己的业务需要更改参数 <!DOCTYPE struts PUBLIC "-//Apache Software Fou ...

  6. Python中一些内建函数及os等模块的用法

          len(obj)                   # 求长度:obj可以是str.list等对象    split(str, num)          # str-分割符,默认空格: ...

  7. Response返回JSON数据到前台页面

    转自博文:<Response JSON数据返回>http://blog.csdn.net/anialy/article/details/8665471 简述: 在servlet填充Resp ...

  8. prepareStatement和Statement的区别

    1:创建时的区别:    Statement stm=con.createStatement();    PreparedStatement pstm=con.prepareStatement(sql ...

  9. 集合框架,ArrayList和Vector的区别,让arrayList线程安全的几种方案

    boolean add(E e) 将指定的元素添加到此列表的尾部. void add(int index, E element) 将指定的元素插入此列表中的指定位置. boolean addAll(C ...

  10. MySql查找几个字段的值一样的记录

    ),name,class,charge_start,charge_end ) ; 注意:having在这里起到很大的作用,只有在having中,才可以对类似sum(),count()等等复合函数的结果 ...