1 条题解

  • 1
    @ 2022-4-4 12:02:23
    #include <queue>
    #include <math.h>
    #include <stack>
    #include <stdio.h>
    #include <iostream>
    #include <vector>
    #include <iomanip>
    #include <string.h>
    #include <algorithm>
    using namespace std;
    #define LL long long
    const int N = 1e5 + 10;
    const int INF = 0x3f3f3f3f;
    int a[N],n,m;
    int ans =0;
    bool flag(int sum)
    {
    	if (sum < 2)
    	{
    		return false;
    	}
    	for(int i = 2;i*i <= sum;i++)
    		if(sum % i ==0)
    			return false;
    	return true;
    }
    void f(int last,int step, int sum)
    {
    	if(step == m)
    	{
    		if(flag(sum))
    			ans++;
    		return;
    	}
    	for(int i = last;i <= n;i++)
    		f(i + 1,step + 1,sum + a[i]);
    } 
    int main()
    {
    	cin >> n >> m;
    	for(int i = 1;i <= n;i++)
    		cin >> a[i];
    	f(1,0,0);
    	cout << ans << endl;
    	return 0;
    }
    
    • 1

    信息

    ID
    657
    时间
    1000ms
    内存
    128MiB
    难度
    6
    标签
    递交数
    308
    已通过
    92
    上传者