【Mail.Ru Cup 2018 Round 2 A】 Metro

【链接】 我是链接,点我呀:)
【题意】

【题解】

1:一直往右走的情况。 2:中间某个地方中转 (不会出现超过1次的转弯。 (如果超过了和1次是等价的

【代码】

#include <bits/stdc++.h>
#define ll long long
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
using namespace std;

const int N = 1000;

int n,s;
int a[N+10],b[N+10];
int can[N+10],can2[N+10];

int main(){

    scanf("%d%d",&n,&s);
    rep1(i,1,n) scanf("%d",&a[i]);
    rep1(i,1,n) scanf("%d",&b[i]);
    if (a[1]==0){
        puts("No");
        return 0;
    }
    rep1(i,1,n)
        if (a[i]==1){
            can[i] = 1;
            if (b[i]==1){
                rep1(j,1,i-1)
                    if (b[j]==1)
                        can[j] = 1;
            }
        }
    if (can[s]){
        puts("Yes");
    }else{
        puts("No");
    }
 	return 0;
}
原文地址:https://www.cnblogs.com/AWCXV/p/9956677.html