有关网站建设有那些功能,长沙口碑最好网站建设公司排行榜,免费的快速开发平台,Wordpress税一#xff1a;题目 Come 宝宝#xff01;#xff01; 输出格式: 输出所有可行的方案数量
输入样例1:
3 50 50
10 40 40结尾无空行 输出样例1:
4结尾无空行 输入样例2:
3 50 50
20 40 40结尾无空行 输出样例2:
0二:思路
1.这个解的空间选择的是子集树 2.递归函数参数 b…一题目 Come 宝宝 输出格式: 输出所有可行的方案数量
输入样例1:
3 50 50
10 40 40结尾无空行 输出样例1:
4结尾无空行 输入样例2:
3 50 50
20 40 40结尾无空行 输出样例2:
0二:思路
1.这个解的空间选择的是子集树 2.递归函数参数 backtacking() 把所有的可行解都记录下来 3.返回的结果 用一个vectorvector ans:来存结果 vector path:用来存每次的集装箱所装的船的序号 将到达叶节点的时候集装箱所装船的序号存进去
3.递归终止条件 path.size() n时候终止 这时候就是递归到达叶节点的时候 有了一种可行解
4.横向的单层的for循环为遍历所有集装箱的重量,纵向的递归是不断为剩下的集装箱选择船号
5.对结果的选择具体看代码
6.示例举例 将集装箱1和2装上第一艘轮船而将集装箱3装上第二艘轮船 112 将集装箱1和2装上第二艘轮船而将集装箱3装上第一艘轮船 221 将集装箱1和3装上第一艘轮船而将集装箱2装上第二艘轮船 121 将集装箱1和3装上第二艘轮船而将集装箱2装上第一艘轮船 212
7:图示
三上码 /**思路:1.这个解的空间选择的是子集树2.递归函数参数backtacking()把所有的可行解都记录下来 3.返回的结果用一个vectorvectorint ans:来存结果vectorint path:用来存每次的集装箱所装的船的序号 将到达叶节点的时候集装箱所装船的序号存进去 3.递归终止条件path.size() n时候终止这时候就是递归到达叶节点的时候 有了一种可行解4.横向的单层的for循环为遍历所有集装箱的重量,纵向的递归是不断为剩下的集装箱选择船号5.对结果的选择具体看代码 6.示例举例将集装箱1和2装上第一艘轮船而将集装箱3装上第二艘轮船 112将集装箱1和2装上第二艘轮船而将集装箱3装上第一艘轮船 221将集装箱1和3装上第一艘轮船而将集装箱2装上第二艘轮船 121将集装箱1和3装上第二艘轮船而将集装箱2装上第一艘轮船 212**/
#includebits/stdc.h
using namespace std;vectorvectorint ans;//用来存放每次的可行解
vectorint path;//用来存放单次的可行解
int n,c1,c2;void backtacking(){//递归终止条件if (path.size() n) {ans.push_back(path);return;} for (int i 1; i 2; i) {path.push_back(i);backtacking();path.pop_back(); }}
int main(){vectorint v;int count 0;cin n c1 c2;for (int i 0; i n; i) {int num;cin num;v.push_back(num); }backtacking();for (int i 0; i ans.size(); i) {int sumWeight1 0;//记录在船1上的累计重量 int sumWeight2 0;//记录在船2上的累计重量 for (int j 0; j n; j) {if (ans[i][j] 1){ sumWeight1 v[j]; }else{sumWeight2 v[j];} // cout ans[i][j] ;}// cout endl;if(sumWeight1 c1 sumWeight2 c2 sumWeight1 ! 0 sumWeight2 ! 0){//这里是比较装的重量和船的载重 count;// cout sumWeight1 sumWeight2; }}cout count; } 加油 boy!!! 下雪了 哈哈哈 今年的第一场雪