洛谷P1902 刺杀大使
2024-10-21 18:54:16
二分加广搜
#include <bits/stdc++.h>
using namespace std;
int n, m, l, r, p[1001][1001], vis[1001][1001];
int dx[6] = {0, 1, -1, 0, 0};
int dy[6] = {0, 0, 0, 1, -1};
int qx[100100], qy[1001001];
bool check(int d)
{
memset(vis, 0, sizeof(vis));
int front = 0, tail = 0;
for (int i = 1; i <= m; i++)
qx[++tail] = i, qy[tail] = 1;
int tot = 0;
while (front <= tail)
{
int nx = qx[front], ny = qy[front++];
if (ny == n)
tot++;
for (int i = 1; i <= 4; i++)
{
int ax = nx + dx[i];
int ay = ny + dy[i];
if (p[ay][ax] <= d && !vis[ay][ax] && (ax <= m && ax >= 1 && ay <= n && ay >= 1))
qx[++tail] = ax, qy[tail] = ay, vis[ay][ax] = 1;
}
}
if (tot == m) return 1;
return 0;
}
int main()
{
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
scanf("%d", &p[i][j]), r = max(r, p[i][j]);
int mid = 0, ans = 0;
while (l <= r)
{
mid = (l + r) >> 1;
if (check(mid))
ans = mid, r = mid - 1;
else l = mid + 1;
}
printf("%d", ans);
return 0;
}
最新文章
- Android之圆形头像裁切
- python3.5学习笔记--一个简单的图片爬虫
- 实现JQuery EasyUI右键菜单变灰不可用效果
- [Server Running] [Node.js, PM2] Using PM2 To Keep Your Node Apps Alive
- Delphi- 连接MySQL数据库BDE
- redis beforesleep
- CentOS系统更换软件安装源aliyun的
- LINUX修改IP地址
- js中的3种弹出式消息提醒(警告窗口,确认窗口,信息输入窗口)的命令式
- Java 9 揭秘(8. JDK 9重大改变)
- RPC----Hadoop核心协议
- request之LIstener监听器
- 设计模式—模板方法的C++实现
- (后端)excel设置日期格式的步骤
- 生产环境使用nginx做负载均衡配置的五种策略
- piwik custom variables
- 温故而知新复习下PHP面向对象
- MySQL添加、删除索引
- docker中的命令参数(小白常用)
- Storm-源码分析-Topology Submit-Task-TopologyContext (backtype.storm.task)
热门文章
- .Net Core SignalR+LayUi(1)-简单入门
- 使用@Async注解创建多线程,自定义线程池
- dp的平行四边形优化
- shell截取字符串操作
- k8s--scope.yaml
- 【转载】C#中int.TryParse方法和int.Parse方法的异同之处
- 旋转图像 给定一个 n &#215; n 的二维矩阵表示一个图像。
- Android为TV端助力之点击Textview无效
- Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
- ansible中的常用循环模块with_items