• luogu cogs 选数


    题目描述

    已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为:

    3+7+12=22

    3+7+19=29

    7+12+19=38

    3+12+19=34。

    现在,要求你计算出和为素数共有多少种。

    例如上例,只有一种的和为素数:3+7+19=29)。

    输入输出格式

    输入格式:

    键盘输入,格式为:

    n , k (1<=n<=20,k<n)

    x1,x2,…,xn (1<=xi<=5000000)

    输出格式:

    屏幕输出,格式为:

    一个整数(满足条件的种数)。

    输入输出样例

    输入样例#1:
    4 3
    3 7 12 19
    
    输出样例#1:
    1
    
     1 #include <iostream>
     2 #include<cstring>
     3 #include<string>
     4 #include<algorithm>
     5 #include<cmath>
     6 #include<cstdio>
     7 
     8 using namespace std;
     9 int aa[30],a[30],d=0,n,k,nn=0;
    10 
    11 inline bool s(int x) 
    12 {
    13     if(x==1)return false;
    14     for(int c=2; c*c<=x; c++)
    15         if(x%c==0)return false;
    16     return true;
    17 }
    18 
    19 inline int read ()
    20 {
    21     char c=getchar();
    22     int x=0;
    23     while(c<'0'||c>'9')c=getchar();
    24     while(c>='0'&&c<='9')x=x*10+c-'0',c=getchar();
    25     return x;
    26 }
    27 
    28 inline int dfs(int d, int pre) 
    29 {
    30     int i,ss=0;
    31     if(d==k) //sou dao di k ge shu
    32     {
    33         for(i=0; i<k; i++)
    34             ss+=aa[a[i]];
    35         if(s(ss))
    36             nn++;
    37         return nn;
    38     }
    39     for(i=pre; i<n; i++) 
    40     {
    41         a[d]=i;
    42         dfs(d+1,i+1);
    43     }
    44 }
    45 
    46 int main()
    47 {
    48     freopen("choose.in","r",stdin);
    49     freopen("choose.out","w",stdout);
    50     n=read();
    51     k=read();
    52     for(int c=0; c<n; c++)
    53         aa[c]=read();
    54     dfs(0,0);
    55     printf("%d",nn);
    56     return 0;
    57 }
  • 相关阅读:
    JAVA 作业:图形界面
    操作系统实验3:内存分配与回收
    PLAN :昔日未来
    操作系统课程:调度算法
    KMP 代码 暂存
    笔试总结篇(一) : 广州X公司笔试
    雨夜静思(一)
    KMP算法详解-- 转自Matrix67
    百度笔试
    lucene中Document删除不了的问题
  • 原文地址:https://www.cnblogs.com/lyqlyq/p/7055207.html
Copyright © 2020-2023  润新知