请求加强数据!!!
查看原帖
请求加强数据!!!
412973
ChampionYoung楼主2022/2/25 21:30

emm...怎么说呢?

我一开始想打个暴力苟个十分,二十分的,但是忽然就不想打了,于是我就打了一半就交了,没想到就A了(离谱)


代码如下:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#include<vector>
#define ll long long
#define N
#define M
using namespace std;

int re()
{
	int s=0,f=1;
	char c=getchar();
	for(;c<'0'||c>'9';c=getchar())
		if(c=='-') f=-1;
	for(;c<='9'&&c>='0';c=getchar())
		s=s*10+c-'0';
	return f*s;
}
void wr(int num)
{
	if(num<0) putchar('-'),num=-num;
	if(num>9) wr(num/10);
	putchar(num%10+'0');
}
void pr(int num)
{
	wr(num);
	putchar('\n');
}

int n,m;
int angle[1000],tail;
bool cn[400];

int main()
{
	n=re(),m=re();
	for(int i=1;i<=n;i++){
		int a=re();
		if(!cn[a%360])
			angle[++tail]=a%360,cn[a%360]=1;
	}
	for(int i=1;i<=tail;i++){ // 这里是处理自加 
		int a=angle[i];
		while(1){
			a+=angle[i],a%=360;
			if(a==angle[i]){
				break;
			}
			if(!cn[a]){
				angle[++tail]=a%360,cn[a%360]=1;
			}
		}
	}
	// 接下来要处理两两相加
	// 可是它 A 了,真是令人烦恼(手动滑稽) 
	for(int i=1;i<=m;i++){
		int a=re();
		if(cn[a%360]){
			printf("YES\n");
		}
		else{
			printf("NO\n");
		}
	}
	return 0;
}

hack 数据:

2 1
45 30
15

题外话:

emm,其实上面数据不加也行 (可能只有我是这样做的)

2022/2/25 21:30
加载中...