zoukankan      html  css  js  c++  java
  • 洛谷 P1036 选数

    题目描述

    已知 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
    思路:搜索。
    #include<cmath>
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n,k,ans;
    int num[22],vis[22];
    int judge(int now){
        for(int i=2;i<=sqrt(now);i++)
            if(now%i==0)    return false;
        return true;
    }
    void dfs(int tot,int sum,int pre){
        if(tot==k){
            if(judge(sum))    ans++;
            return ;
        }
        for(int i=pre+1;i<=n;i++)
            if(!vis[i]){
                vis[i]=1;
                dfs(tot+1,sum+num[i],i);
                vis[i]=0;
            }
    }
    int main(){
        scanf("%d%d",&n,&k);
        for(int i=1;i<=n;i++)
            scanf("%d",&num[i]);
        dfs(0,0,0);
        cout<<ans;
    }
     
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    React.memo()使用教程
    React组件什么时候render
    redux-thunk使用教程
    Redux数据持久化
    Mac 中安装 nvm: 切换Node 不同版本
    上传文件类型选择
    Python获取软件安装列表
    Java读取text文件
    负载均衡
    远程调用
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7894369.html
Copyright © 2011-2022 走看看