33分蒟蒻求助!
查看原帖
33分蒟蒻求助!
604622
achjuncool楼主2022/5/25 20:09

WA了4个点qwq

代码如下:

#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;
int n, m, a[21] = {}, c[21] = {}, total, ans = 0;
bool b[21] = {}, ac[500001] = {};
bool isPrime(int a){
	for(int i = 2; i <= sqrt(a); i++){
		if(a % i == 0){
			return false;
		}
	}
	return true;
}
void search(int k){
	for(int i = 1; i <= n; i++){
		if(!b[i]){
			c[k] = a[i];
			b[i] = true;
			if(k == m){
				total = 0;
				for(int i = 1; i <= m; i++){
					total += c[i];
				}
				if(isPrime(total)){
					if(!ac[total]){
						ans++;
						ac[total] = true;
					}
				}
			} else {
				search(k + 1);
			}
			b[i] = false;
		}
	}
}
int main(){
	scanf("%d%d", &n, &m);
	for(int i = 1; i <= n; i++){
		scanf("%d", &a[i]);
	}
	search(1);
	printf("%d", ans);
	return 0;
}
2022/5/25 20:09
加载中...