2019多校联讯 test 3 T2
Posted ljb666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019多校联讯 test 3 T2相关的知识,希望对你有一定的参考价值。
dfs+二分答案,二分可能的伤害值
#include<bits/stdc++.h> using namespace std; const int maxn=1050; int n,m; int p[maxn][maxn]; int dx[5]=0,1,-1,0,0; int dy[5]=0,0,0,-1,1; int l,r; bool flag; bool vis[maxn][maxn]; void dfs(int x,int y,int cost) if(x==n) flag=true; return; for(int i=1;i<=4;i++) int xx=x+dx[i]; int yy=y+dy[i]; if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&!vis[xx][yy]&&cost>=p[xx][yy]) vis[xx][yy]=true; dfs(xx,yy,cost); if(flag==true) return; bool check(int x) flag=false; memset(vis,0,sizeof(vis)); dfs(1,1,x); if(flag) return true; else return false; 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]); l=0,r=1000; while(l<=r) int mid=(l+r)/2; if(check(mid)) r=mid-1; else l=mid+1; printf("%d",l); return 0;
以上是关于2019多校联讯 test 3 T2的主要内容,如果未能解决你的问题,请参考以下文章
hdu 2019多校 Just Skip The Problem