来自蒟蒻的求助

P1036 [NOIP2002 普及组] 选数

远在天边的王
by UKE开车自动机 @ 2018-07-08 20:41:55


@[陈独秀的秀](/space/show?uid=28951) emmmmm
by 地表最强男人 @ 2018-07-08 20:43:17


@[陈独秀的秀](/space/show?uid=28951) 大佬帮忙看下
by 地表最强男人 @ 2018-07-08 20:43:34


那你能不能先把这个用cpp框起来
by UKE开车自动机 @ 2018-07-08 20:45:23


```cpp #include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; int n,k; int a[23];//a代表数 int ans=0;//答案 int ansx=0;//找出的和 int x;//现在有几个数 bool g[23];//有没有使用过 bool find(int a) { for(int i=2;i<sqrt(a);i++) { if(a%i==0) return false; } return true; } void dfs(int b) { g[b]=true; x++; ansx=ansx+a[b]; if(x==k) { if(find(ansx)==true) ans++; return; } for(int i=1;i<=n;i++) { if(g[i]==false&&x<k) { dfs(i); g[i]=false; x--; ansx=ansx-a[i]; } } } int main() { cin>>n>>k; for(int i=1;i<=n;i++) { cin>>a[i]; } for(int i=1;i<=n;i++) { dfs(i); } cout<<ans; return 0; } ```
by 地表最强男人 @ 2018-07-08 20:46:28


求助
by 地表最强男人 @ 2018-07-08 20:49:33


emmmm 看一下
by UKE开车自动机 @ 2018-07-08 20:49:38


``` for(int i=1;i<=n;i++) { if(g[i]==false&&x<k) { dfs(i); g[i]=false; x--; ansx=ansx-a[i]; } } ``` 目测是这个循环的锅
by fbhou @ 2018-07-08 20:49:54


@[fbhou](/space/show?uid=65589) 请问怎么改
by 地表最强男人 @ 2018-07-08 20:50:47


哦好吧 你的判素数的函数写WA了 应该是<=吧
by fbhou @ 2018-07-08 20:51:06


| 下一页