当前位置:   article > 正文

题解:洛谷 P1036 [NOIP2002 普及组] 选数_p1036 [noip2002 普及组] 选数题解

p1036 [noip2002 普及组] 选数题解

一道十分标准的dfs

质数判断

  1. #include <iostream>
  2. #include <cstdio>
  3. using namespace std;
  4. int a[30],n,k,ans=0;
  5. bool isprime(const int n){
  6. if(n==1)
  7. return 0;
  8. for(int A=2;A<n;A++){
  9. if(n%A==0)
  10. return 0;
  11. }
  12. return 1;
  13. }
  14. void dfs(int A,int m,int he){
  15. if(A==n){
  16. if(k==m && isprime(he)){
  17. ans++;
  18. }
  19. return ;
  20. }
  21. dfs(A+1,m,he);
  22. dfs(A+1,m+1,he+a[A]);
  23. return ;
  24. }
  25. int main(){
  26. //freopen("num.in","r",stdin);
  27. //freopen("num.out","w",stdout);
  28. cin>>n>>k;
  29. for(int A=0;A<n;A++){
  30. cin>>a[A];
  31. }
  32. dfs(0,0,0);
  33. cout<<ans;
  34. return 0;
  35. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/756656
推荐阅读
相关标签
  

闽ICP备14008679号