社区讨论

最后测试点help!!!!!

P1036[NOIP 2002 普及组] 选数参与者 2已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@mhj9gjwq
此快照首次捕获于
2025/11/03 22:54
4 个月前
此快照最后确认于
2025/11/03 22:54
4 个月前
查看原帖
代码: 测试点
CPP
#include <iostream>
using namespace std;
long long n,k;
long long a[1000],u[1000],x=0,sum=0,all=0;
void dfs(long long y,long long s){
    if (y>=n){
        return;
    }
    sum+=a[y];
    if (s==k){
        u[x]=sum;
        x++;
        sum-=a[y];
        return;
    }
    for (long long i=y+1;i<n;i++){
        dfs(i,s+1);
    }
    sum-=a[y];
}
int main(){
    cin>>n>>k;
    for (long long i=0;i<n;i++){
        cin>>a[i];
    }
    for (long long i=0;i<n;i++){
        dfs(i,1);
    }
    for (long long i=0;i<x;i++){
        for (long long j=2;j<u[i];j++){
        	if (u[i]%j==0){
        		all--;
        		break;
			}
		}
		all++;
    }
    cout<<all;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...