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

    原题链接

    -------------------------------------------------------------------------------------------------------------------

     

    #include <bits/stdc++.h>
    using namespace std;
    int n,k,sum,x[25],a[25],ans;
    bool prime(int n)		//判断一个数是否为质数
    {
    	int len=sqrt(n);
    	for(int i=2; i<=len; i++)
    	{
    		if(n%i==0)
    		{
    			return 0;
    		}
    	}
    	return 1;
    }
    int dfs(int t,int left)		//t=第几个数,left=上一个数的下标(在数组里就是在它的左边) 
    {
    	for(int i=left+1;i<=n-(k-t);i++)	//n-(k-t) 总数-计算的个数+现在的步数 
    	{
    		a[t]=x[i];
    		sum+=a[t];
    		if(t==k)
    		{
    			if(prime(sum))
    			{
    				ans++;
    			} 
    		}
    		else
    		{
    			dfs(t+1,i);
    		} 
    		sum-=a[t];
    	} 
    } 
    int main()
    {
    	scanf("%d%d",&n,&k);
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%d",&x[i]);
    	}
    	dfs(1,0); //从第一个开始,第一个的前一个为0 
    	cout<<ans;
    }
  • 相关阅读:
    跨域与跨域访问
    bootstrap.min.css.map作用
    CSS
    http协议
    djngo未整理
    redis安装及配置
    git 基础
    yum安装报错
    Go语言与区块链开发(转载)
    electron实现MessageBox
  • 原文地址:https://www.cnblogs.com/BorisDimitri/p/13546614.html
Copyright © 2011-2022 走看看