求助大佬 不知道哪里错了

P1036 [NOIP2002 普及组] 选数

先说一句不用markdown的后果就是发出来一坨大佬不想看的东西。。。 不过真巧我是蒟蒻 以下是经过修改的你的代码,看注释 ```cpp #include <bits/stdc++.h> using namespace std; int a[21],n,k,j; bool isprime(int n) { //少一句 if(n==1) return false; //判断是否质数 int s=sqrt(double(n)); for(int i=2;i<=s;i++) { if(n%i==0) return false; } return true; } int dfs(int step,int sum,int now) { if(step==k) return isprime(sum); int sum1=0; for(int i=now;i</*k 错误*/n;i++) { sum1+=dfs(step+1,sum+a[i],i+1); //return sum1; 错位置 } //在这里 return sum1; } int main() { cin>>n>>k; for(int i=0;i<n;i++) cin>>a[i]; cout<<dfs(0,0,0)<<endl; return 0; } ```
by smarthehe @ 2018-11-15 23:43:04


嗯....骚年,不是我伤你的心,你的dfs真的写的太烂啦,一塌糊涂! int dfs(int step,int sum,int now) { if(step==k) return isprime(sum); int sum1=0; for(int i=now;i<n;i++) { sum1+=dfs(step+1,sum+a[i],i+1); } return sum1; }
by うちはサスケ @ 2018-11-16 21:41:15


希望更丰富的展现?使用Markdown
by BigEscape @ 2018-11-17 17:01:53


|