当前位置:   article > 正文

C++篮球比赛/10个数分成两组差值最小/深度优先_c++ 一堆数字平均分为几组,和差最小

c++ 一堆数字平均分为几组,和差最小

xx

xx

  1. #include<iostream>
  2. #include<vector>
  3. #include<string>
  4. #include<sstream>
  5. using namespace std;
  6. vector<int> a(100);
  7. bool isVisited[10] = { 0 };
  8. bool try0(int target, vector<int>a, int b, int n)
  9. {
  10. if (b > 5 || target < 0)
  11. return false;
  12. if (b == 5 && target == 0)
  13. return true;
  14. for (int i = 0; i < n; i++)
  15. {
  16. if (isVisited[i])
  17. continue;
  18. isVisited[i] = true;
  19. if (try0(target - a[i], a, b + 1, n))
  20. return true;
  21. isVisited[i] = false;
  22. }
  23. }
  24. int main()
  25. {
  26. int i = 0,sum = 0;
  27. string s;
  28. getline(cin, s);
  29. stringstream ss(s);
  30. while (ss >> a[i])
  31. {
  32. sum += a[i];
  33. i++;
  34. }
  35. for (int min = 0; min <= sum; min++)
  36. {
  37. int target = sum - min;
  38. if (target % 2 == 0)
  39. {
  40. if (try0(target / 2, a, 0, i))
  41. {
  42. cout << min;
  43. break;
  44. }
  45. }
  46. }
  47. return 0;
  48. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/42607
推荐阅读
相关标签
  

闽ICP备14008679号