博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法(三)
阅读量:4327 次
发布时间:2019-06-06

本文共 2125 字,大约阅读时间需要 7 分钟。

#include
#include
#include
#include
#include
using namespace std; void search(const vector
&sugers, int weight, int start, int count, int &res,int target,int& minchazhi,int sum,int n) { //用搜索法 //我自己在糖果堆中选糖果,对于每一颗糖果,我可以选或者不选 //如果选,count+1,表示我当前手里的糖果的数量 //每次选完,我手里的糖果达到总数量的一半后,就进行手里糖果重量与总质量一半的最小差值minchazhi的更新 //并记录在当前最小差值下的我手里糖果的质量,最后的res就是结果 if (count == n/2) { if (abs(2 * weight - sum) < minchazhi) { //这次搜索的结果比上次更好,用res记录这个更好的结果 res = weight; minchazhi = abs(2 * weight - sum); } } else { if (start < sugers.size()) { //还可以继续搜索 search(sugers,weight, start + 1, count, res, target, minchazhi, sum,n); search(sugers, weight+sugers[start], start + 1, count+1, res, target, minchazhi, sum,n); } } } int main() { int n; while (cin >> n) { vector
sugers(n); int sum = 0; for (int i = 0; i < n; i++) { cin >> sugers[i]; sum += sugers[i]; } int target = sum / 2; int res = 0, minchazhi = INT_MAX; search(sugers, 0, 0, 0,res,target,minchazhi,sum,n); if(res>sum-res) cout <
<< ' ' << res << endl; else cout <
<< ' ' << sum-res << endl; } return 0; }

  

一、

#include 
#include 
#include 
using namespace std;int Min = 1e10;int num;int sum = 0;int res;void dfs(vector
& stone, int w, int start, int cnt) { if (cnt == num) {  if (abs(w * 2 - sum) < Min) {   res = w;   Min = abs(w * 2 - sum);  } } else {  if (start == stone.size()) return;  dfs(stone, w, start + 1, cnt);  dfs(stone, w + stone[start], start + 1, cnt + 1);   }}int main(){ int n; cin >> n; vector
 stone(n); for (int i = 0; i < n; i++) {  cin >> stone[i];  sum += stone[i]; } num = n / 2; sort(stone.begin(), stone.end()); dfs(stone, 0, 0, 0); if (res * 2 > sum) cout << sum - res << " " << res << endl; else cout << res << " " << sum - res << endl;    return 0;}

  

 

转载于:https://www.cnblogs.com/ruo-li-suo-yi/p/9114038.html

你可能感兴趣的文章
微信支付之异步通知签名错误
查看>>
2016 - 1 -17 GCD学习总结
查看>>
linux安装php-redis扩展(转)
查看>>
Vue集成微信开发趟坑:公众号以及JSSDK相关
查看>>
技术分析淘宝的超卖宝贝
查看>>
i++和++1
查看>>
react.js
查看>>
P1313 计算系数
查看>>
NSString的长度比较方法(一)
查看>>
Azure云服务托管恶意软件
查看>>
My安卓知识6--关于把项目从androidstudio工程转成eclipse工程并导成jar包
查看>>
旧的起点(开园说明)
查看>>
生产订单“生产线别”带入生产入库单
查看>>
crontab导致磁盘空间满问题的解决
查看>>
java基础 第十一章(多态、抽象类、接口、包装类、String)
查看>>
Hadoop 服务器配置的副本数量 管不了客户端
查看>>
欧建新之死
查看>>
自定义滚动条
查看>>
APP开发手记01(app与web的困惑)
查看>>
笛卡尔遗传规划Cartesian Genetic Programming (CGP)简单理解(1)
查看>>