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

    题目:

     

     思路:

    1.递归

    设置三个变量分别是 当前下标,当前总和,当前加的数字个数

    代码如下:

    #include<cstdio> 
    #include<cmath>
    #include<iostream>
    using namespace std;
    int n,k,t,sum=0;
    int a[25];
    //列举 判断是否为素数 
    bool is(int b){
    	for(int i=2;i<=sqrt(b);i++)
    	if(b%i==0)
    	return false;
    	return true;
    }
    //f加上的个数 
    //s开始的下标 
    //t当前的总和 
    void dfs(int s,int t,int f){
    	if(s==n+1||f==k)
    	{	if(is(t)&&f==k)
    		sum++;
    		return;
    	}
    	dfs(s+1,t+a[s],f+1) ;
    	dfs(s+1,t,f);
    }
    main() {
    	cin>>n>>k;
    	for(int i=1;i<=n;i++)
    	cin>>a[i];
    	dfs(1,0,0);
    	cout<<sum;
    	return 0;
    }
    //4 3
    //10 11 12 13
    //0
    

      

    无聊就学习 反正没事干
  • 相关阅读:
    poj 3744 题解
    hdu 1850 题解
    New World
    CSP2019游记
    LOJ6052 DIV
    CF809E Surprise me!
    Luogu4548 歌唱王国
    Luogu4581 想法
    Note 5.26-5.28
    LOJ6519 魔力环
  • 原文地址:https://www.cnblogs.com/miao-xixixi/p/13995324.html
Copyright © 2011-2022 走看看