呃。。。比赛的时候没弄出来。。。
做了输入优化,关键在于HASH(见注释)
C++,1609MS:
#include<stdio.h>
#include<string.h>
char hash[10010];
int num;
int bee;
int tot;
char c;
int n;
int main()
{
int T;
scanf("%d",&T);
while (T--) {
bee=0;
tot=0;
num=0;
memset(hash, 0, sizeof(hash));
scanf("%d",&n);
getchar();
while ((c=getchar())!='\n') {
if (c!=' ') {
num*=10;
num+=c-'0';
}
else {
hash[num]=1;
for (int j=1; j<num && num+j<=n; j++) {
if (hash[num-j]+hash[num+j]==1) { //以num为中值,一个扫到,一个未扫到
bee=1;
break;
}
}
num=0;
}
}
hash[num]=1;
for (int j=1; j<num && num+j<=n; j++) {
if (hash[num-j]+hash[num+j]==1) {
bee=1;
}
}
if (bee) {
printf("Y\n");
}
else {
printf("N\n");
}
}
}
a
浙公网安备 33010602011771号