zoukankan      html  css  js  c++  java
  • C. Pipes

    题目链接:https://codeforces.com/contest/1234/problem/C

    题意:

    可以参见luogu

    https://www.luogu.org/problem/CF1234C

    思路:

    因为它的管子是可以旋转的,所以 其实 1、2号管子其实都是一样的,不妨让它们都是 1

    同理 3、4、5、6管子也是一样的,不妨让它们是2

    然后我们再来考虑一下所有可能出现的情况

    1、如果前面是 管子1 那么就直接往前走

    2、如果前面是 管子2 并且它的下方(上方)也是 管子2 ,那么就会走到 下层 (上层)

    3、如果前面是 管子2 并且它的下方(上方)是管子1 ,那么就没有办法走了

     1 #include <math.h>
     2 #include <stdio.h>
     3 #include <iostream>
     4 #include <algorithm>
     5 #include <string>
     6 #include <string.h>
     7 #include <vector>
     8 #include <map>
     9 #include <stack>
    10 #include <set>
    11 #include <random>
    12  
    13  
    14 #define LL long long
    15  
    16 const int maxn = 2e5 + 10;
    17  
    18 std::string s,ss;
    19 int mp[maxn][2];
    20  
    21 int main() {
    22     int n,q;
    23     std::cin >> q;
    24     while (q--) {
    25         memset(mp,0, sizeof(mp));
    26         int floor = 1,lst = 0;
    27         std::cin >> n >> s >> ss;
    28         for (int i=1;i<=n;i++) {
    29             if (s[i-1] == '1' || s[i-1] == '2') {
    30                 mp[i][0] = 1;
    31             }
    32             else
    33                 mp[i][0] = 2;
    34         }
    35         for (int i=1;i<=n;i++) {
    36             if (ss[i-1] == '1' || ss[i-1] == '2') {
    37                 mp[i][1] = 1;
    38             }
    39             else
    40                 mp[i][1] = 2;
    41         }
    42         for (int i=1;i<=n;i++) {
    43             if (mp[i][lst] == 1) {
    44                 continue;
    45             }
    46             if (mp[i][(lst+1)%2] == 1) {
    47                 floor = 0;
    48                 break;
    49             }
    50             else {
    51                 lst = (lst+1)%2;
    52             }
    53         }
    54         if (lst == 1 && floor == 1) {
    55             std::cout << "YES" << std::endl;
    56         }
    57         else
    58             std::cout << "NO" << std::endl;
    59     }
    60     return 0;
    61 }
  • 相关阅读:
    001-进程与线程
    mysql优化(11)
    mysql优化(十)
    mysql优化(九)
    mysql优化(八)
    mysql优化(七)
    mysql优化(六)
    mysql优化(五)
    mysql优化(四)
    mysql优化(二)
  • 原文地址:https://www.cnblogs.com/-Ackerman/p/11650325.html
Copyright © 2011-2022 走看看