错了好多次!!!!
千万不要在没有取遍所有元素的时候return!
思路是DFS,数位也可以写
保佑我的考试呜呜
参考代码:
#include<iostream> #include<cstdio> #include<algorithm> #include<string> #include<cmath> #include<vector> #include<set> #include<sstream> #include<cstring> #include<utility> using namespace std; typedef long long ll; typedef long l; const int N = 110; int n,x[25],cnt;l a[25],t; void dfs(int b,l sum,int m,int c){ //printf(" %d %ld %d %d\n",b,sum,m,c); if(c==n&&m!=0&&sum==t){ cnt++; for(int i=m-1;i>=0;i--)printf("%ld ",a[x[i]]); cout<<endl; } //cout<<"ha"; if(c==n)return; dfs(0,sum,m,c+1); x[m]=c; dfs(1,sum+a[c],m+1,c+1); } int main(){ cin>>n; for(int i=n-1;i>=0;i--)cin>>a[i]; cin>>t; dfs(0,0,0,0); cout<<cnt; }
0.0分
0 人评分
printf基础练习2 (有点不明白)浏览:836 |
母牛的故事 (C语言代码)浏览:1427 |
蛇行矩阵 (C语言代码)浏览:524 |
用筛法求之N内的素数。 (C语言代码)浏览:664 |
模拟计算器 (C++代码)浏览:800 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:608 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:598 |
C语言程序设计教程(第三版)课后习题10.7 指针(C语言代码)浏览:537 |
1074题 初学者,求帮忙看下,不知道哪错了浏览:290 |
蛇行矩阵 (C语言代码)浏览:666 |