hdu 4696 Answers

2014-11-24 02:24:15 · 作者: · 浏览: 1
乱搞。想清楚的话很简单的一道题,由于 x 数列每一项都由前一项唯一确定,对于任意T()确定的 x 数列,由于每个元素都指向一个元素(即,T(xi-1) = xi),所以最终一定可以弄出一个循环数列。那么,由于数列是由我们自己确定的,所以开始位置可以任选,这样的话,如果C数列中存在数字1的话,就一定可以得到所有的正整数,因为是一个既有1,又有2的循环队列,所以一定可以得到。如果C数列不存在1的话,那么同理所有的偶数是可以得到的。然后题目就变成了很简单的一道题了。。。
#pragma comment(linker, "/STACK:1024000000,1024000000")  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#define REP(i, n) for(int i=0; i
=b; i--) #define LL long long #define PB push_back #define MP make_pair #define CLR(a, b) memset(a, b, sizeof(a)) using namespace std; const int maxn = 10010; int n, q; int x; int main() { while(~scanf("%d%d", &n, &q)) { bool flag = 0; REP(i, n) scanf("%d", &x); REP(i, n) { scanf("%d", &x); if(x == 1) flag = 1; } while(q--) { scanf("%d", &x); if(x < 1) puts("NO"); else { if(x&1) printf("%s\n", flag "YES" : "NO"); else puts("YES"); } } } return 0; }