P1036 [NOIP2002 普及组] 选数

简介: P1036 [NOIP2002 普及组] 选数

84054ae4c42d4cf28df70018aa81b0ff.png

组合问题

代码:

#include <bits/stdc++.h>
using namespace std;
const int maxn = 25;
int n, k;
int a[maxn];
bool sushu(int o)
{
   if (o == 1)
      return false;
   if (o == 2)
      return true;
   for (int i = 2; i <= o - 1; i++)
   {
      if (o % i == 0)
         return false;
   }
   return true;
}
int ans = 0;
int num = 0;
void f(int x, int start) // 已经选了x个数,现在位置是start
{
   if (x > k)
   { // 选完了  一定要>k!!!!!
      if (sushu(ans))
      {
         num++;
      }
      return;
   }
   for (int i = start; i <= n; i++)
   {
      ans += a[i];
      f(x + 1, i + 1);
      ans -= a[i];
   }
}
int main() // 依次枚举每个数放哪个位置
{
   cin >> n >> k;
   for (int i = 1; i <= n; i++)
   {
      cin >> a[i];
   }
   f(1, 1); // 开始选第一个数字, 从第一个位置开始
   cout << num;
   return 0;
}
相关文章
P1088 [NOIP2004 普及组] 火星人
P1088 [NOIP2004 普及组] 火星人
P1093 [NOIP2007 普及组] 奖学金(模拟排序)
P1093 [NOIP2007 普及组] 奖学金(模拟排序)
58 0
【NOIP2017普及组正式赛】图书管理员(librarian)
【NOIP2017普及组正式赛】图书管理员(librarian)
140 0
【2012NOIP普及组】T1. 质因数分解 试题解析
【2012NOIP普及组】T1. 质因数分解 试题解析
P1077 [NOIP2012 普及组] 摆花
P1077 [NOIP2012 普及组] 摆花
137 0
P1077 [NOIP2012 普及组] 摆花
|
存储 C++
P1020 [NOIP1999 普及组] 导弹拦截
洛谷中的数据范围更大,本题提供两个代码,第一个代码在 AcWing 中可以 AC,但是在洛谷中有一半的数据会 TLE,第二个代码则在洛谷中也可以过掉
236 0
P1020 [NOIP1999 普及组] 导弹拦截
|
机器学习/深度学习
P2141 [NOIP2014 普及组] 珠心算测验
P2141 [NOIP2014 普及组] 珠心算测验
|
机器学习/深度学习
洛谷【3】P1014 [NOIP1999 普及组] Cantor 表
洛谷【3】P1014 [NOIP1999 普及组] Cantor 表