POJ 2110 二分+暴搜
题意:
给你一个矩阵 ,你能往各个方向走(不走出去就行),每次只能上下左右走一格,问路径上的点权最大值和最小值的差最小是多少。
思路:
首先 二分最后的答案,
暴力枚举当前的区间是啥。
DFS 就OK 了
(我的代码可能有点儿小问题…… 枚举的时候没有判左上角的点)
(但是AC了哈哈哈)
//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,Map[105][105],a[105][105],maxx=0,minn=120,Right,Left,Mid,ans;
int xx[]={1,-1,0,0},yy[]={0,0,1,-1};
bool vis[105][105];
bool dfs(int x,int y,int Maxx,int Minn){
// printf("%d %d\n",x,y);
if(x==n&&y==n)return 1;
for(int i=0;i<=3;i++){
if(!vis[x+xx[i]][y+yy[i]]){
vis[x+xx[i]][y+yy[i]]=1;
if(a[x+xx[i]][y+yy[i]]>Maxx&&a[x+xx[i]][y+yy[i]]-Minn<=Mid){
if(dfs(x+xx[i],y+yy[i],a[x+xx[i]][y+yy[i]],Minn))return 1;
}
else if(a[x+xx[i]][y+yy[i]]<Minn&&Maxx-a[x+xx[i]][y+yy[i]]<=Mid){
if(dfs(x+xx[i],y+yy[i],Maxx,a[x+xx[i]][y+yy[i]]))return 1;
}
else if(a[x+xx[i]][y+yy[i]]>=Minn&&a[x+xx[i]][y+yy[i]]<=Maxx){
if(dfs(x+xx[i],y+yy[i],Maxx,Minn))return 1;
}
}
}
return 0;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf("%d",&Map[i][j]);
maxx=max(maxx,Map[i][j]);
minn=min(minn,Map[i][j]);
}
}
Right=100;Left=0;
while(Left<=Right){
// printf("%d %d\n",Left,Right);
Mid=(Left+Right)/2;int f=0;
for(int ii=minn;ii<=maxx;ii++){
memset(vis,0,sizeof(vis));memset(a,0xcf,sizeof(a));
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(Map[i][j]<=ii+Mid&&Map[i][j]>=ii){
a[i][j]=Map[i][j];
}
}
}
if(dfs(1,1,Map[1][1],Map[1][1]))f=1;
}
if(f)Right=Mid-1,ans=Mid;
else Left=Mid+1;
}
printf("%d\n",ans);
}
POJ 2110 二分+暴搜的更多相关文章
- poj 3080 Blue Jeans(水题 暴搜)
题目:http://poj.org/problem?id=3080 水题,暴搜 #include <iostream> #include<cstdio> #include< ...
- hdu 4400 离散化+二分+BFS(暴搜剪枝还超时的时候可以借鉴一下)
Mines Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Subm ...
- POJ 1945 暴搜+打表 (Or 暴搜+判重)
思路: 呃呃 暴搜+打表 暴搜的程序::稳稳的TLE+MLE (但是我们可以用来打表) 然后我们就可以打表过了 hiahiahia 可以证明最小的那个数不会超过200(怎么证明的我也不知道),然后就直 ...
- [POJ 1204]Word Puzzles(Trie树暴搜&AC自己主动机)
Description Word puzzles are usually simple and very entertaining for all ages. They are so entertai ...
- POJ 1414 暴搜
题意比较复杂 (但是很好理解) 大概意思是给你等边三角形(详见题目中的图). 最后一行有n个数,下一次要填的数是c. 里面预先已经填好了数字.(0为未填) 得分的标准是这个分数的连通块周围没有空的地方 ...
- POJ 3188暴搜
题意: 思路: 裸的暴搜 --. 但是要注意如果你不用所有的按键就能输出最优解的话一定要把所有的字母都安排到一个位置-. 我的一群PE就是这么来的-- 为什么写的人这么少-- // by Sirius ...
- POJ 2132 暴搜OR Floyd
题意: 给你一个邻接矩阵(n<=25)问所有1到2路径的gcd的lcm是多少. 一些经验(WA/TLE的经验): 1. 无脑暴搜 是会TLE的--. 2. 关于精度 dyf神牛说了:long l ...
- POJ 2133 暴搜
题意: 思路: 按照题意暴搜 注意 如果目标串==给的串 答案是2 //By SiriurRen #include <cstdio> #include <cstring> #i ...
- 模拟 + 暴搜 --- Help Me with the Game
Help Me with the Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3175 Accepted: ...
随机推荐
- U盘无法格式化的恢复
昨天装Ubuntu的系统可能把U盘搞崩溃了.然后今早起来U盘无法识别,格式化也不行,用Windows的磁盘管理工具格式化说是:Windows无法格式化U盘. 曾经没遇到这样的情况,所以百度了一下,试了 ...
- Sambaserver搭建
1. 安装Samba及相关包 $ sudo apt-getinstall samba samba-common smbfspython-glade2system-config-samba 2. 创建共 ...
- ARIMA模型实例讲解——网络流量预测可以使用啊
ARIMA模型实例讲解:时间序列预测需要多少历史数据? from:https://www.leiphone.com/news/201704/6zgOPEjmlvMpfvaB.html 雷锋网按:本 ...
- [jzoj 4668] [NOIP2016提高A组模拟7.19] 腐败 解题报告(质数分类+慢速乘)
题目链接: http://172.16.0.132/senior/#main/show/4668 题目: 题解: 考虑把A数组里的每个元素分解质因数,对于每个质因数开一个vector存一下包含这个质因 ...
- [jzoj NOIP2018模拟10.29]
OI生涯的最高分,来了纪中这么多天,在经历了这么多场“NOIP难度”的模拟赛之后,终于看到了真正的NOIP 今天考场上效率很高,很快码完了全部的题目,留下了足够的时间对拍和...发呆.不得不说看着电脑 ...
- python中各项目文件含义(新手可看)
其他不用多说,这里主要阐述三个概念,包.模块.类 包我们可以看作一个包含__init__.py 和一系列.py 文件的文件夹,包含__init__.py这样做的目的是为了区别包和普通字符串,读者可以试 ...
- 【算法】第二类斯特林数Stirling
第二类Stirling数实际上是集合的一个拆分,表示将n个不同的元素拆分成m个集合的方案数,记为 或者 . 第二类Stirling数的推导和第一类Stirling数类似,可以从定义出发考虑第n+1个元 ...
- select标签下option标签里value属性有什么用以及和text的区别
转自:http://blog.csdn.net/summer_sy/article/details/54572398 1:value的用处 <select > <option val ...
- iOS开发——heightForHeaderInSection设置高度无效
iOS11之后,tableView设置section高度失效,解决方法有两种: 1.iOS11默认开启Self-Sizing,关闭Self-Sizing即可.在初始化tableview的地方加上下面的 ...
- 添加ArcGIS数据
加载arcgis server的rest服务瓦片数据:ol.layer.Tile+ol.source.TileArcGISRest 加载arcgis online的在线瓦片数据:ol.layer.Ti ...