记录编号 196401 评测结果 AAAAA
题目名称 [NOIP 2002]选数 最终得分 100
用户昵称 Gravatarlingyixiaoyao 是否通过 通过
代码语言 C++ 运行时间 0.001 s
提交时间 2015-10-21 19:07:56 内存使用 0.31 MiB
显示代码纯文本
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <climits>

using namespace std;

int n,k,ans,total;
int a[30];
bool used[30];

void dfs(int x,int y);
bool sushu(int y);

int main()
{
	freopen("choose.in","r",stdin);
	freopen("choose.out","w",stdout);
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}

	dfs(1,1);
	cout<<total<<endl;
	return 0;
}
void dfs(int x,int y)
{
	if(x==k+1)
	{
		if(sushu(ans))
		{
			total++;
		}
	}
	if (x<k+1)
	{
		for(int i=y;i<=n;i++)
		{
			ans+=a[i];
			dfs(x+1,i+1);
			ans-=a[i];
		}
	}
}
bool sushu(int y)
{
	for(int i=2;i<=sqrt(y);i++)
	{
		if(y%i==0)
		{
			return false;
		}
	}
	return true;
}