C题:一道简单的C题卡了半天,我太菜了
题意:给你一个n*2的矩阵,每个位置有一个数字,对应一种管道,要求通道可不可以从左上通到右下
由提议可以看出,1,2对应的是直管道,3,4,5,6对应弯管道,只有弯管道成对才可以换行,直管道只能换列
只需直管道的时候往右走,弯管的时候判断一下对应的下一行情况,同时弯管就换行,不是就输出“NO”
1 #include <iostream> 2 #include <cstring> 3 #include <string> 4 #include <cmath> 5 #include <algorithm> 6 7 using namespace std; 8 typedef long long ll; 9 string s[3]; 10 11 int main() 12 { 13 int q; 14 cin >> q; 15 while(q--) 16 { 17 int n; 18 bool flag =false; 19 cin >> n; 20 cin >> s[0]>>s[1]; 21 int num =0; 22 int i=0; 23 int j=0; 24 while(i<n) 25 { 26 if(s[j][i]<'3')i++; 27 else if(s[j][i]>'2') 28 { 29 j^=1; 30 if(s[j][i]>'2')i++; 31 else{ 32 break; 33 } 34 } 35 } 36 if(j==1&&i==n) 37 { 38 cout <<"YES"<<endl; 39 } 40 else{ 41 cout <<"NO"<<endl; 42 } 43 } 44 return 0; 45 }