2 条题解

  • 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;
    }
    
    • 0
      @ 2024-11-24 16:38:46
      #include<bits/stdc++.h>
      using namespace std;
      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
      难度
      7
      标签
      递交数
      441
      已通过
      111
      上传者