当前位置:   article > 正文

2024/2/3 备战蓝桥杯 4-2 排序

2024/2/3 备战蓝桥杯 4-2 排序

目录

错误票据

0错误票据 - 蓝桥云课 (lanqiao.cn)

奖学金

0奖学金 - 蓝桥云课 (lanqiao.cn)


错误票据

0错误票据 - 蓝桥云课 (lanqiao.cn)

特点:不知道每一行要输入的数字有多少个,一共要输入n行数字

可以这样写:

  1. for(int i = 0;i < n;i ++)
  2. {
  3. int x;
  4. while(std::cin >> x)
  5. {
  6. a.push_back(x);
  7. if(std::cin.get()=='\n')
  8. break;
  9. }
  10. }

完整代码:

  1. #include <bits/stdc++.h>
  2. #define int long long
  3. const int N = 1e5+10;
  4. std::vector<int> a;
  5. std::set<int> s;
  6. signed main()
  7. {
  8. int n,len=0;
  9. std::cin >> n;
  10. int k = 0;
  11. for(int i = 0;i < n;i ++)
  12. {
  13. int x;
  14. while(std::cin >> x)
  15. {
  16. a.push_back(x);
  17. if(std::cin.get()=='\n')
  18. break;
  19. }
  20. }
  21. std::sort(a.begin(),a.end());
  22. // for(int i = 0;i < a.size();i ++)
  23. // {
  24. // std::cout<<a[i]<<" ";
  25. // }
  26. int duan=0,chong=0;
  27. for(int i = 1;i < a.size();i ++)
  28. {
  29. if(a[i]-a[i-1]==2)
  30. {
  31. duan=a[i]-1;
  32. }
  33. int x=a[i];
  34. if(s.find(x)==s.end())
  35. {
  36. s.insert(x);
  37. }
  38. else if(s.find(x)!=s.end())
  39. {
  40. chong=x;
  41. }
  42. }
  43. std::cout<<duan<<" "<<chong;
  44. return 0;
  45. }

奖学金

0奖学金 - 蓝桥云课 (lanqiao.cn)

思路:结构体排序,满足返回true,不满足返回false

完整代码:

  1. #include <bits/stdc++.h>
  2. #define int long long
  3. struct node
  4. {
  5. int xh;
  6. int yw;
  7. int sx;
  8. int yy;
  9. int sum;
  10. };
  11. std::vector<node> a;
  12. bool cmp(node &a1,node &a2)
  13. {
  14. if(a1.sum>a2.sum) return true;
  15. else if(a1.sum<a2.sum) return false;
  16. else if(a1.yw>a2.yw) return true;
  17. else if(a1.yw<a2.yw) return false;
  18. else if(a1.xh<a2.xh) return true;
  19. else if(a1.xh>a2.xh) return false;
  20. else return false;
  21. }
  22. signed main()
  23. {
  24. int n;
  25. std::cin >> n;
  26. for(int i = 0;i < n;i ++)
  27. {
  28. int x,y,z;
  29. std::cin >> x >> y >> z;
  30. a.push_back({i+1,x,y,z,x+y+z});
  31. }
  32. std::sort(a.begin(),a.end(),cmp);
  33. for(int i = 0;i < 5;i++)
  34. {
  35. std::cout<<a[i].xh<<" "<<a[i].sum<<"\n";
  36. }
  37. return 0;
  38. }

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

闽ICP备14008679号