dfs 选数
来源:互联网 发布:算法竞赛入门书籍 编辑:程序博客网 时间:2024/06/05 08:00
题目描述
已知 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
已知 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
#include<cstdio>#include<iostream>#include<cmath>using namespace std;int n,k;int a[10000];int sum=0;int ans=0;int sushu(int n){ if(n==1||n==0) return 0; for(int i=2;i<=sqrt(n);i++) if(n%i==0) return 0; return 1;}void dfs(int step,int i){int j;if(step>k){if(sushu(sum))ans++;return ;}for(j=i;j<=n;j++){ sum=sum+a[i];dfs(step+1,j+1);sum=sum-a[i];}}int main(){int i; cin>>n>>k; for(i=1;i<=n;i++) { cin>>a[i]; } dfs(1,1); cout<<ans<<endl; return 0;}
0 0
- NIOP选数(dfs)
- dfs 选数
- codevs 1008 选数 dfs
- [DFS]FJSDFZOJ 1079/NOIP2002 选数
- codevs 1008 选数(dfs)
- 结果填空:方格选数(DFS)
- 洛谷P1036 NOIP2002 选数(dfs)
- dfs数独--poj2676
- NYOJ32 组合数 【DFS】
- 数独(DFS)
- 组合数(dfs)
- 32 组合数【dfs】
- nyoj32 组合数【DFS】
- 组合数(DFS)
- xy数(DFS)
- 组合数 dfs
- 【DFS】产生数
- 数独(DFS)
- JAVA 仿QQ聊天程序
- 富人俱乐部的度量
- Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误
- 挖掘频繁模式、关联和相关性:基本概念和方法
- 剑指offer--重建二叉树
- dfs 选数
- 自然语言处理基于java实现(2) 之 词性标注
- Java中try和catch的故事
- 【HDU】 1269 迷宫城堡 强连通分量
- Syntax error on token(s), misplaced construct(s)错误原因
- 一站式学习Wireshark(九):应用Wireshark显示过滤器分析特定数据流(上)
- Elasticsearch版本控制[并发安全]
- windows powershell中activate python2无效
- 傅里叶