hdu4696 想法题

 就像1、2元人民币可以凑成任意你想要的面值一样。由于一定会有环,只要有C[i] == 1 就可以造成任何数。够坑吧

#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <queue>
#include <vector>
using namespace std;

const int maxe = 50000;
const int maxn = 1e5+5;
const int INF  = 0x3f3f3f;

int main()
{
    int C[maxn],T[maxn];
    int N,Q;

    while(cin>>N>>Q){
        bool flag = false;
        for(int i=1;i<=N;i++)  scanf("%d",&T[i]);
        for(int i=1;i<=N;i++)  {scanf("%d",&C[i]); if(C[i] == 1) flag = true;  }

        int M;
        for(int i=1;i<=Q;i++){
            scanf("%d",&M);
            if(M <= 0)  printf("NO\n");
            else{
                if(flag)   printf("YES\n");
                else{
                    if(M%2) printf("NO\n");
                    else    printf("YES\n");
                }
            }
        }
    }

}
View Code

 

posted @ 2013-08-22 19:42  等待最好的两个人  阅读(217)  评论(0编辑  收藏  举报