//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. 扩展Date的format方法--格式化日期时间

    Date.prototype.format = function (format) { var o = { "M+": this.getMonth() + 1, "d+& ...

  2. TWaver HTML5 (2D)--基本概念

    基本概念 TWaver HTML5(以下简称TWaver)使用HTML5技术和javascript语言,可在支持HTML5的浏览器上进行绘图. 使用TWaver前,需熟悉几个基本概念:图元(Eleme ...

  3. js判断是不是chrome浏览器

    方法一: var isChrome = window.navigator.userAgent.indexOf("Chrome"); <script> var isChr ...

  4. 笔记11:GDI 制作数字验证码

    大二学长让我学下GDI绘制验证码,然后自己就试了试了.找了点视频看了下. 现在会画直线,矩形,字符串,制作验证码 一.绘制一条直线 private void button1_Click(object ...

  5. HDFS使用0

    创建上传文件的:

  6. css解决方案经验杂记

    文本垂直居中 单行文本:line-height的值等于height: 多行文本:padding上下值一致即可: 还可以使用position:absolute进行绝对定位,如果是相对父级元素,则需要设置 ...

  7. Java中Array的常用方法

    0.创建/声明一个数组 1 2 3 String[] aArray = new String[5]; String[] bArray = {"a","b",&q ...

  8. Css3动画缩放

    Css3缩放动画 transform-scale() scale();值 0~1   0-隐藏  1-默认 小于0缩放 大于1放大 例:transform:scale(0.98);

  9. 【北京站】详解Visual Studio 2013:开发iOS及android应用!现场图集

    现场图集: 活动介绍地址:http://huiyi.csdn.net/module/meeting/meeting/info/660/biz

  10. BZOJ1737 [Usaco2005 jan]Naptime 午睡时间

    断环然后裸DP就好了... $f[i][j][k]$表示1号时间段没有被算入答案,到了第$i$个时间段,一共选了$j$个时间段,$k = 0 /1$表示第i个时间段有没有被算进答案的最优值 $g[i] ...