日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[洛谷P1902]刺杀大使

發布時間:2023/12/31 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [洛谷P1902]刺杀大使 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目←

總覺得spfa一臉可做的樣子然而過不了
于是乖乖打了二分+驗證

#include<iostream> #include<cstdio> #include<queue> #include<cstring> #include<algorithm> using namespace std; const int MAXN = 1000 + 50; int mr[] = {0,1,-1,0},mu[] = {1,0,0,-1}; bool used[MAXN][MAXN]; int n,m; bool in(int x,int y){if(x < 1 || y < 1)return false;if(x > n || y > m)return false;return true; } int lim; int map[MAXN][MAXN]; struct zt{int x,y; }; queue <zt> q; bool C(){memset(used,0,sizeof(used));while(!q.empty())q.pop();for(int i = 1;i <= m;i ++){q.push((zt){1,i});used[1][i] = true;}while(!q.empty()){zt u = q.front();q.pop();for(int i = 0;i <= 3;i ++){int x = u.x + mu[i];int y = u.y + mr[i]; if(x < 1 || y < 1 || x > n || y > m || used[x][y] || map[x][y] > lim)continue;q.push((zt){x,y});used[x][y] = true;if(x == n){return true;}}}return false; } int lin[MAXN*MAXN],tot,maxx,L,R; int main(){scanf("%d%d",&n,&m);for(int i = 1;i <= n;i ++){for(int j = 1;j <= m;j ++){scanf("%d",&map[i][j]);lin[++ tot] = map[i][j];}}sort(lin + 1,lin + tot + 1);tot = unique(lin + 1,lin + tot + 1) - lin - 1;L = -1;R = tot + 1;while(R - L > 1){int mid = R + L >> 1;lim = lin[mid];if(C())R = mid;else L = mid;}printf("%d",lin[R]); }

總結

以上是生活随笔為你收集整理的[洛谷P1902]刺杀大使的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。