我只是想省省复杂度,全RE什么意思[苦笑]
查看原帖
我只是想省省复杂度,全RE什么意思[苦笑]
620717
sleven_bird楼主2022/10/29 21:20
#include <bits/stdc++.h>
using namespace std;
long long s=0;
int n,a[114514],b[5],c[1145];
int dfs(int w,int ss,int la)
{
	if(w==5)
	{
		if(ss%3&&(
				b[1]!=b[2]&&b[1]!=b[3]&&
				b[1]!=b[4]&&b[2]!=b[3]&&
				b[2]!=b[4]&&b[3]!=b[4]))return 0;
		if( (b[1]+b[2]==b[3]&&b[1]+b[2]==b[4])||
			(b[2]+b[3]==b[1]&&b[2]+b[3]==b[4])||
			(b[3]+b[4]==b[1]&&b[3]+b[4]==b[2])||
			(b[1]+b[3]==b[2]&&b[1]+b[3]==b[4])||
			(b[2]+b[4]==b[1]&&b[2]+b[4]==b[3])||
			(b[1]+b[4]==b[2]&&b[1]+b[4]==b[3]))
			{
				s++;return 0;
			}
	}
	for(int i=la+1;i<=n;i++)
	{
		if(c[i]==0)
		{
			c[i]=1;
			b[w]=a[i];
			dfs(w+1,ss+a[i],i);
			c[i]=0;
		}
	}
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	dfs(1,0,0);
	cout<<s%1000000007;
	return 0;
}


无奖错误www

2022/10/29 21:20
加载中...