不会搜索的萌新求助

P1036 [NOIP2002 普及组] 选数

```cpp #include <iostream> #include <cstdio> #include <cctype> #include <set> typedef long long int lli; #define mod 1000000007 using namespace std; lli n,k,ans,arr[25]; set<lli>qwq; void dfs(int step,int now,int sum) { if (step==k) { qwq.insert(sum); return ;//完成加和操作 } if (n-now+1<k-step||now>n)return ; //如果剩下的数字不足以加和,就返回 dfs(step,now+1,sum);//不选择这个数字 dfs(step+1,now+1,sum+arr[now]);//选择这个数字 } inline bool isprime(int n) { if (n<=1)return false; for (register int i=2;i*i<=n;i++)//sqrt(n)>=i { if (n%i==0)return false; } return true; } void judge() { ans=qwq.size(); set<lli>::iterator iter; for (iter=qwq.begin();iter!=qwq.end();iter++) { if (!isprime(*iter)) { ans--; } } } int main() { cin>>n>>k; for (register int i=1;i<=n;i++) cin>>arr[i]; dfs(0,1,0); judge(); cout<<ans; return 0; } ```
by Jelly_Goat @ 2019-04-05 10:09:14


~~红名萌新~~
by Achtoria @ 2019-04-05 10:18:07


@[chen_zhang](/space/show?uid=78386) 虽然红,但我搜索就没会......(在线丢人) 咋整啊
by Jelly_Goat @ 2019-04-05 10:29:03


暴力试一下...(~~我也不会搜索~~)
by hjxhjx @ 2019-04-22 21:09:11


|