错了好多次!!!!
千万不要在没有取遍所有元素的时候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 人评分
点我有惊喜!你懂得!浏览:1977 |
IP判断 (C++代码)浏览:671 |
C语言训练-求函数值 (C语言代码)浏览:910 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:568 |
校门外的树 (C语言代码)浏览:714 |
C语言考试练习题_排列 (C++代码)浏览:627 |
【绝对值排序】 (C语言代码)浏览:713 |
WU-蓝桥杯算法提高VIP-交换Easy (C++代码)浏览:1107 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:326 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:520 |