初学dfs,样例过了,提交全红,求助大佬
查看原帖
初学dfs,样例过了,提交全红,求助大佬
450124
秦并凌楼主2021/7/19 15:41
#include<stdio.h>
int a[21],b[21],c[21],k,n,sum,cnt;
void dfs(int step)
{
	if(step==k+1)
	{
		for(int i=1;i<=k;i++)sum=sum+b[i];
		if(sum>1)
		{
			for(int i=1;i*i<sum;i++)
			{
				if(sum%i==0)break;
			}
			cnt++;
			printf("%d",cnt);
		}
		return;
	}
	for(int i=step;i<=k;i++)
	{
		if(c[i]==0)
		{
			b[step]=a[i];
			c[i]=1;
			dfs(step+1);
			c[i]=0;
		}
	}
	return;
}
int main()
{
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;i++)scanf("%d",&a[i]);
	dfs(1);
	return 0;
}
2021/7/19 15:41
加载中...