洛谷 U86501 趣味擂台

题目传送门

题目背景

\(JDFZ\)\(2019\)秋季运动会开始辣!运动会中有一个叫做“趣味擂台”的游戏......

题目描述

游戏内容是这样的:擂台是一个\(N\times M\)的矩阵。由两支班级队伍参与游戏:攻擂方和守擂方。攻擂方由第一排的任意点出发,每次能向上下左右任一方向行进,经过擂台矩阵到达最后一排。而守擂方会在擂台矩阵除第一排和最后一排的任何一个点布置一个同学守擂,这个同学的强壮程度为\(P\)。分数核算方式是这样的:攻擂方通过擂台矩阵后,他付出的代价为他走过的路径中最强壮同学的强壮程度,而这个代价越小,证明攻擂方的选择越明智,自然得到的分数也最高。现在,强大的高一 · \(6\)班即将作为攻擂方参加比赛。\(6\)班知道守擂方的擂台布置情况(即每个点守擂同学的强壮程度)。作为一个强大的班级,\(6\)班当然想夺得魁首。所以他派出了班级中的\(OIer\)\(Seaway\)和\(iamrjj\)来解决这个问题,使得班级的得分最多。但他们俩太弱了,所以\(Seaway\)找到了你,请你编程解决这个问题。

输入格式

第一行有两个整数\(N,M\),表示擂台的大小。

接下来的\(N\)行,每行\(M\)个整数,第\(i\)行的第\(j\)个数表示这个位置的同学的强壮程度\(P[i] [j]\)。

输出格式

一个正整数,表示\(6\)班要付出的最小代价。

样例输入

4 4
0 0 0 0
1 2 3 4
4 3 2 1
0 0 0 0

样例输出

3

提示:

数据范围:

对于50%的数据,有\(1\le N,M\le 100\)。

对于全部的数据,有\(1\le N,M\le 2000\),\(P[i] [j]\le 1000\)。

题解:

二分答案+搜索。

二分表示的是这个最大代价的最小值。搜索是判断是否可行,最后的check环节是用flag变量完成的。

代码:

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int n,m,l,r,flag;
int map[1010][1010],v[1010][1010],vis[1010][1010];
int dx[10]={0,0,0,-1,1};
int dy[10]={0,1,-1,0,0};
void check(int x)
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(map[i][j]<=x)
vis[i][j]=0;
else
vis[i][j]=1;
}
}
void dfs(int x,int y)
{
if(x==n)
{
flag=1;
return;
}
for(int i=1;i<=4;i++)
{
int xx=x+dx[i];
int yy=y+dy[i];
if(xx>0 && xx<=n && yy>0 && yy<=m)
{
if(v[xx][yy]==0 && vis[xx][yy]==0)
{
v[xx][yy]=1;
dfs(xx,yy);
if(flag==1)
break;
}
}
}
}
int main()
{
//freopen("6.in","r",stdin);
//freopen("6.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
scanf("%d",&map[i][j]);
r=max(r,map[i][j]);
}
while(l+1<r)
{
int mid=(l+r)>>1;
flag=0;
check(mid);
memset(v,0,sizeof v );
dfs(1,1);
if(flag==1)
r=mid;
else
l=mid;
}
printf("%d",r);
return 0;
}

洛谷 U86501 趣味擂台的更多相关文章

  1. 洛谷P1072 [NOIP2009] Hankson 的趣味题

    P1072 Hankson 的趣味题 题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson 正在思考一 ...

  2. 【题解】洛谷P1072 Hankson的趣味题 (gcd和lcm的应用)

    洛谷P1072:https://www.luogu.org/problemnew/show/P1072 思路 gcd(x,a0)=a1 lcm(x,b0)=b1→b0*x=b1*gcd(x,b0) ( ...

  3. 洛谷 U87052 一线天

    洛谷 U87052 一线天 题目传送门 题目背景 \(JDFZ\)即将举办第一届"一线天"趣味运动会...... 题目描述 "一线天"运动会在\(JLU\)南岭 ...

  4. 【noip】跟着洛谷刷noip题

    传送门 1.铺地毯 d1t1 模拟 //Twenty #include<cstdio> #include<cstdlib> #include<iostream> # ...

  5. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  6. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

  7. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

  8. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

  9. 洛谷P1710 地铁涨价

    P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交  讨论  题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...

随机推荐

  1. 从项目中理解let和const为什么如此重要

    变量声明 变量声明方式 伴随js诞生的var // 语法 var varName = value var a = 1 // 这样子你就得到了一个变量 var缺陷场景分析 var specialUser ...

  2. vue通过v-for渲染的列表,可以单独操作的其中的列表的两种方法

    如图,三个标题分别有多个子元素.通过点击三个标题分别控制显示和隐藏.上代码 第一种情况:点击 青1,其所有的标题下的列表全部隐藏,也就是只有一个标题的会显示子元素 <div class=&quo ...

  3. ASP.NET Core快速入门(第2章:配置管理)- 学习笔记(转载)

    原文地址:https://mp.weixin.qq.com/s?__biz=MjM5NjMzMzE2MA==&mid=2451733443&idx=2&sn=6d01721c5 ...

  4. 【Java语言特性学习之五】版本差异新特性

  5. Linux iSCSI 磁盘共享管理

    Linux iSCSI 磁盘共享管理 iSCSI 服务是通过服务端(target)与客户端(initiator)的形式来提供服务.iSCSI 服务端用于存放存储源的服务器,将磁盘空间共享给客户使用,客 ...

  6. 【UOJ#48】【UR #3】核聚变反应强度(质因数分解)

    [UOJ#48][UR #3]核聚变反应强度(质因数分解) 题面 UOJ 题解 答案一定是\(gcd\)除掉\(gcd\)的最小质因子. 而\(gcd\)的最小值因子一定是\(a_1\)的质因子. 所 ...

  7. Java匹马行天下之学编程的起点——走进编程的殿堂

    学编程的起点——走进编程的殿堂 前言: 知其然,知其所以然,努力固然重要,但是思维的提升会让你事半功倍,我会用我花费时间换来的“思维”带更多的朋友入门,让你们明明白白学编程,学编程,不迷茫. 转变思维 ...

  8. 使用 Xbox Game 录制桌面视频(录制音频)

    使用 Xbox Game 录制桌面视频(附带音频) 前言:可能自己音频输出的问题,一直无法用工具录制桌面的音频,而最后发现利用 Xbox Game 录制游戏视频的功能很好地解决我们的问题. 1)打开游 ...

  9. 2019-11-29-win10-uwp-列表模板选择器

    原文:2019-11-29-win10-uwp-列表模板选择器 title author date CreateTime categories win10 uwp 列表模板选择器 lindexi 20 ...

  10. 解决 bash: vue command not found

    背景  : win10 使用  yarn  全局 安装  vue/cli 后   yarn  global add  @vue/cli 提示安装成功 使用vue create   提示  bash: ...