当前位置:   article > 正文

2022下半年 360 C++校招

2022下半年 360 C++校招

选择题考得知识点很多,java c++ c linux 高等数学 数据结构 算法等等

2道编程题 第一个写出来了且编译通过100%  第二个67%

  1. /*
  2. 第一题:
  3. 小明射箭,每次射击靶子上有N个气球,每个气球都有分数
  4. 小明没有射中气球,得分0
  5. 小明射中一个气球,得分ai
  6. 小明射中x,y,得分 ai | aj
  7. 例:
  8. 输入:
  9. 3
  10. 1 2 3
  11. 输出:
  12. 15
  13. 解:
  14. */
  15. #include<iostream>
  16. #include<vector>
  17. using namespace std;
  18. int main()
  19. {
  20. int n = 0;
  21. vector<int> vi;
  22. while (n--)
  23. {
  24. int a = 0;
  25. cin >> a;
  26. vi.push_back(a);
  27. }
  28. int res = 0;
  29. for (int i = 1; i < vi.size(); i++)
  30. {
  31. for (int j = 0; j < i; j++)
  32. {
  33. res += vi[i] | vi[j];
  34. }
  35. }
  36. for (auto i : vi)
  37. res += i;
  38. cout << res << endl;
  39. return 0;
  40. }

  1. /*
  2. 第二题:
  3. 小明进入某个空间,N*M矩形,每个位置都有一个值非零数或-1,
  4. 退出空间的方法是找到一个正方形,
  5. 正方形里的值加起来最大且不能有-1,
  6. 输入:
  7. 1
  8. 4 4
  9. 3 0 x x
  10. 0 9 -1 x
  11. -1 x x x 
  12. x -1 x -1(具体值记不清了)
  13. 输出:
  14. 12(3+0+0+9=12)
  15. */
  16. #include<iostream>
  17. #include<vector>
  18. #include<limits.h>
  19. int main()
  20. {
  21. int T = 0;
  22. cin >> T;
  23. while (T--)
  24. {
  25. int n, m;
  26. cin >> n >> m;
  27. vector<vector<int>> vvi(n, vector<int>(m));
  28. for (int i = 0; i < n; i++)
  29. {
  30. for (int j = 0; j < m; j++)
  31. {
  32. int a = 0;
  33. cin >> a;
  34. vvi[i][j] = a;
  35. }
  36. }
  37. int len = 0;
  38. int res = 0;
  39. vector<vector<int>> dp(n, vector<int>(m));
  40. for (int i = 0; i < n; i++)
  41. {
  42. for (int j = 0; j < m; j++)
  43. {
  44. if (vvi[i][j] != -1)
  45. {
  46. if (i == 0 || j == 0)
  47. {
  48. dp[i][j] = 1;
  49. }
  50. else
  51. {
  52. dp[i][j] = min(min(dp[i - 1][j], dp[i][j - 1]), dp[i - 1][j - 1]) + 1;
  53. }
  54. len = max(len, dp[i][j]);
  55. int maxsum = 0;
  56. if (i - len >= 0 && j - len >= 0)
  57. {
  58. for (int k = i - len; k < i; k++)
  59. {
  60. for (int z = j - len; z < j; z++)
  61. {
  62. if (vvi[k][z] == -1)
  63. {
  64. maxsum = INT_MIN;
  65. break;
  66. }
  67. maxsum += vvi[k][z];
  68. }
  69. }
  70. }
  71. res = max(maxsum, res);
  72. res = max(vvi[i][j], res);
  73. }
  74. }
  75. }
  76. cout << res << endl;
  77. }
  78. return 0;
  79. }

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

闽ICP备14008679号