牛客 - 双流机场(思维)
生活随笔
收集整理的這篇文章主要介紹了
牛客 - 双流机场(思维)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:點擊查看
題目大意:給出一個n*m的有向圖,每一行和每一列的方向都是相同的,現在給出每一行和每一列的方向,問給出的圖是不是一個強聯通圖
題目分析:這個題目之前做過數據很小的版本,當時那個題目的n和m都小于等于20,直接用Floyd暴力走的,一點腦子都沒動,結果今天碰到這個1e5數據的題目,一下子就傻眼了,感覺是個思維題是卻想不出來,賽后看了大佬們的題解后就恍然大悟了,其實我們只需要判斷周圍一圈的四條邊即可,因為每一行和每一列的方向都是一樣的,所以中間的任意一個位置都可以通過隨便一條邊到達最外面的邊上,只要周圍一圈的四條邊能夠順時針首尾相接,或者逆時針首尾相接,就能保證整個圖是一個強聯通圖了,其他情況肯定是無法滿足條件的,因為四周肯定會有一個角落到達不了
不得不佩服這個題目的思維模式
代碼:
#include<iostream> #include<cstdlib> #include<string> #include<cstring> #include<cstdio> #include<algorithm> #include<climits> #include<cmath> #include<cctype> #include<stack> #include<queue> #include<list> #include<vector> #include<set> #include<map> #include<sstream> #include<unordered_map> using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=1e5+100;char a[N],b[N];int main() { // freopen("input.txt","r",stdin); // ios::sync_with_stdio(false);int w;cin>>w;while(w--){int n,m;scanf("%d%d",&n,&m);scanf("%s%s",a+1,b+1);if(a[1]=='0'&&a[n]=='1'&&b[1]=='0'&&b[m]=='1')//逆時針puts("Happy");else if(a[1]=='1'&&a[n]=='0'&&b[1]=='1'&&b[m]=='0')//順時針puts("Happy");elseputs("Sad");}return 0; }?
總結
以上是生活随笔為你收集整理的牛客 - 双流机场(思维)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客 - 走迷宫(模拟+离线)
- 下一篇: 牛客 - lglg说要有题,于是便有了题