1 条题解

  • 0
    @ 2024-12-24 9:54:32

    C++ :

    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    
    using namespace std;
    
    int n,k,ans=0,x;
    int a[11]={0};
    bool b[361]={0};
    bool flag=false;
    
    void sou(int du)
    {
    	if(du==x)
    	{
    		flag=true;
    		return;
    	}
    	else if(!flag)
    	{
    		for(int i=1;i<=n;i++)
    		{
    			int tmp=(du+a[i])%360;
    			if(!b[tmp])
    			{
    				b[tmp]=true;
    				sou(tmp);
    			}
    		}
    		for(int i=1;i<=n;i++)
    		{
    			int tmp=(du+(360-a[i]))%360;
    			if(!b[tmp])
    			{
    				b[tmp]=true;
    				sou(tmp);
    			}
    		}
    	}
    }
    
    int main()
    {
    	scanf("%d%d",&n,&k);
    	
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%d",&a[i]);
    	}
    	
    	for(int i=1;i<=k;i++)
    	{
    		memset(b,0,sizeof(b));
    		flag=false;
    		
    		scanf("%d",&x);
    		
    		sou(0);
    		
    		if(flag) printf("YES\n");
    		else printf("NO\n");
    	}
    	
    	return 0;
    }
    
    • 1

    信息

    ID
    1208
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者