java里面用boolean数组,100000100大小的boolean数组不超内存
找球号(二)
时间限制:1000ms | 内存限制:65535KB
难度:5
描述
在某一国度里流行着一种游戏。游戏规则为:现有一堆球中,每个球上都有一个整数编号i(0<=i<=100000000),编号可重复,还有一个空箱子,现在有两种动作:一种是"ADD",表示向空箱子里放m(0
输入
第一行有一个整数n(0
随后有n行;
每行可能出现如下的任意一种形式:
第一种:
一个字符串"ADD",接着是一个整数m,随后有m个i;
第二种:
一个字符串"QUERY”,接着是一个整数M,随后有M个ki;
输出
输出每次询问的结果"YES"或"NO".
样例输入
2
ADD 5 34 343 54 6 2
QUERY 4 34 54 33 66
样例输出
YES
YES
NO
NO
#include
#include
#include
#include
using namespace std;
int main()
{
int n,i,m,p,j,y;
char char1[5];
vectorx[10001];
while(scanf("%d",&n)!=EOF)
{
for(i=0;i
{
scanf("%s",char1);
scanf("%d",&m);
if(char1[0]=='A')
{
for(j=0;j
{
scanf("%d",&p);
x[p%10001].push_back(p);
}
}
else
{
for(j=0;j
{
int flag=0;
scanf("%d",&y);
for(int k=0;k< x[y%10001].size();k++)
{
if( x[y%10001][k]==y)
{ flag=1;printf("YES\n");break;}
}
if(flag==0)
printf("NO\n");
}
}
}
}
return 0;
}
java代码ac
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int time = scanner.nextInt();
boolean result[]=new boolean[100000100];
Arrays.fill(result, false);
while (time-- != 0) {
String string=scanner.next();
if(string.charAt(0)=='A')
{
int number=scanner.nextInt();
for(int i=0;i
{
int x=scanner.nextInt();
result[x]=true;
}
}
else {
int num=scanner.nextInt();
while(num--!=0)
{
int y=scanner.nextInt();
if(result[y])
System.out.println("YES");
else {
System.out.println("NO");
}
}
}
}
}
}
}
java用vector不过代码,在找原因
import java.util.Scanner;
import java.util.Vector;
class result
{
Vector vector=new Vector();
}
public class Main {
static result results[];
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
results=new result[1005];
for(int i=0;i<1005;i++)
results[i]=new result();
int time = scanner.nextInt();
while (time--!=0) {
String string = scanner.next();
int number = scanner.nextInt();
if (string.charAt(0) == 'A') {
for (int i = 0; i < number; i++) {
int x = scanner.nextInt();
results[x%1001].vector.add(x);
}
} else {
for (int j = 0; j < number; j++) {
int y = scanner.nextInt();
if(results[y%1001].vector.isEmpty()==true)
System.out.println("NO");
else{
int flag = 1;
for(int i=0;i
{
if(results[y%1001].vector.get(i)==y)
{
System.out.println("YES");
flag=0;break;
}
}
if (flag == 1)
System.out.println("NO");
}
}
}
}
}
}