当前位置:   article > 正文

c/c++算法之贪心与DP_贪心 dp 回溯法c++

贪心 dp 回溯法c++

题目背景: 那一年,这一年,青春散场,到毕业季,我们奔波着忙着找工作,来到招聘会上,看到黑压压的一大片人群.. 题目描述:毕业季,很多大公司来学校招聘,招聘会分散在不同时间段,小明想知道自己最多能完整的参加多少个招聘会(参加一个招聘会的时候不能中断或离开)。 假设现在有n个招聘会,每个招聘会都有个起止时间,时间由从招聘会第一天0点开始的小时数表示,n <= 1000 。 返回:最多参加的招聘会的个数n。 举个例子: 现在有3场招聘会,他们的起始时间为: 9-10 10-20 8-15 返回:2

这是英雄会的一个挑战题

下面是个人的实现方法,仅供参考,如有bug或者意见欢迎提出,共同交流

  1. #include <cmath>
  2. #include <cstdio>
  3. #include <vector>
  4. #include <iostream>
  5. #include <algorithm>
  6. using namespace std;
  7. bool cmp(const pair<int,int> &tmpa,const pair<int,int> &tmpb )
  8. {
  9. if (tmpa.second<tmpb.second)
  10. {
  11. return 1;
  12. }
  13. else if (tmpa.second==tmpb.second)
  14. {
  15. if (tmpa.first<tmpb.first)
  16. {
  17. return 1;
  18. }
  19. else
  20. return false;
  21. }
  22. else
  23. return 0;
  24. // return tmpa.second<tmpb.second;
  25. }
  26. int forjob(vector<pair<int,int> > &time)
  27. {
  28. sort(time.begin(),time.end(),cmp);
  29. //返回能参加的招聘个数的数值n
  30. int countNum=0;
  31. int endNum=-1;
  32. int SizeNum=time.size();
  33. for (int i=0;i<SizeNum;i++)
  34. {
  35. if (endNum<=time[i].first)
  36. {
  37. endNum=time[i].second;
  38. countNum++;
  39. }
  40. }
  41. return countNum;
  42. }
  43. bool operator<(const pair<int,int> &tmpa,const pair<int,int> &tmpb)
  44. {
  45. if (tmpa.second<tmpb.second)
  46. {
  47. return true;
  48. }
  49. else if (tmpa.second==tmpb.second)
  50. {
  51. if (tmpa.first<tmpb.first)
  52. {
  53. return true;
  54. }
  55. }
  56. else
  57. return false;
  58. }
  59. int _tmain(int argc, _TCHAR* argv[])
  60. {
  61. vector<pair<int,int> > TimePair;
  62. pair<int,int> num1(2,8);
  63. pair<int,int> num2(3,4);
  64. pair<int,int> num3(2,5);
  65. pair<int,int> num4(5,8);
  66. pair<int,int> num5(8,20);
  67. TimePair.push_back(num4);
  68. TimePair.push_back(num1);
  69. TimePair.push_back(num2);
  70. TimePair.push_back(num3);
  71. TimePair.push_back(num5);
  72. int Num=forjob(TimePair);
  73. cout<<Num<<endl;
  74. return 0;
  75. }


 

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

闽ICP备14008679号