• poj.org 部分答案(二)


    2336

    1. #define _CRT_SECURE_NO_WARNINGS
    2. #include
    3. #include
    4. class Solution {
    5. public:
    6. Solution() {
    7. std::cin >> n;
    8. number1 = new int[n];
    9. for (int i = 0; i < n; i++) scanf("%d", &number1[i]);
    10. std::cin >> m;
    11. number2 = new int[m];
    12. for (int i = 0; i < m; i++) scanf("%d", &number2[i]);
    13. }
    14. int binarySearch(int arr[], int target, int left, int right) {
    15. if (left <= right) {
    16. int mid = (left + right) / 2;
    17. if (arr[mid] == target) {
    18. return 1;
    19. }
    20. else if (arr[mid] < target) {
    21. return binarySearch(arr, target, mid + 1, right); // 修正更新边界值
    22. }
    23. else {
    24. return binarySearch(arr, target, left, mid - 1); // 修正更新边界值
    25. }
    26. }
    27. return 0;
    28. }
    29. void solve() {
    30. bool found = false; // 添加一个变量来标记是否找到匹配的数字对
    31. for (int i = 0; i < m; i++) {
    32. if (binarySearch(number1, 10000 - number2[i], 0, n - 1)) {
    33. std::cout << "YES"; // 添加换行符
    34. found = true; // 标记找到匹配的数字对
    35. break; // 找到即可跳出循环
    36. }
    37. }
    38. if (!found) {
    39. std::cout << "NO"; // 如果没有找到匹配的数字对,输出 "NO"
    40. }
    41. }
    42. int n, m;
    43. int* number1, * number2;
    44. };
    45. int main()
    46. {
    47. Solution a;
    48. a.solve();
    49. return 0;
    50. }

    2503

    1. #include
    2. #include
    3. #include
    4. #include
    5. class Solution {
    6. private:
    7. std::map dictionary;
    8. // 解析输入行并更新字典的私有辅助函数
    9. void parseAndUpdateDictionary(const std::string& str) {
    10. std::string str1, str2;
    11. for (size_t i = 0; i < str.size(); i++) {
    12. if (str[i] == ' ') {
    13. str1 = str.substr(0, i);
    14. str2 = str.substr(i + 1);
    15. break;
    16. }
    17. }
    18. dictionary[str2] = str1;
    19. }
    20. public:
    21. // 构造函数,初始化字典
    22. Solution() {}
    23. // 读取字典输入并初始化字典的公有方法
    24. void readDictionary() {
    25. std::string str;
    26. while (std::getline(std::cin, str) && !str.empty()) {
    27. parseAndUpdateDictionary(str);
    28. }
    29. }
    30. // 翻译外语单词的公有方法
    31. void translateWords() {
    32. std::string word;
    33. while (std::cin >> word) {
    34. if (!dictionary[word].empty()) {
    35. std::cout << dictionary[word] << std::endl;
    36. }
    37. else {
    38. std::cout << "eh\n";
    39. }
    40. }
    41. }
    42. };
    43. int main() {
    44. // 创建 Solution 对象
    45. Solution solution;
    46. // 读取字典输入并初始化字典
    47. solution.readDictionary();
    48. // 翻译外语单词
    49. solution.translateWords();
    50. return 0;
    51. }

    3714 

    1. #include
    2. #include
    3. #include
    4. #include
    5. using namespace std;
    6. struct node
    7. {
    8. double x;
    9. double y;
    10. int type;
    11. }a[200005];
    12. int n;
    13. vector temp;
    14. bool cmp1(node &a,node &b)
    15. {
    16. return a.x
    17. }
    18. bool cmp2(node &a,node &b)
    19. {
    20. return a.y
    21. }
    22. double solve(int l,int r)
    23. {
    24. if(l==r) return 100000000000;
    25. if(l==r-1&&a[l].type!=a[r].type)
    26. {
    27. return sqrt(pow(fabs(a[l].x-a[r].x),2)+pow(fabs(a[l].y-a[r].y),2));
    28. }
    29. if(l==r-1&&a[l].type==a[r].type)
    30. {
    31. return 100000000000;
    32. }
    33. int mid = l + r >> 1;
    34. double d1 = solve(l, mid);
    35. double d2 = solve(mid + 1, r);
    36. double d = min(d1, d2);
    37. int i;
    38. for(i=l;i<=r;i++)
    39. {
    40. if(fabs(a[i].x-a[mid].x)push_back(a[i]);
    41. }
    42. sort(temp.begin(),temp.end(),cmp2);
    43. int j;
    44. for(i=0;isize();i++)
    45. {
    46. for(j=i+1;jsize()&&temp[j].y-temp[i].y
    47. {
    48. if(temp[i].type==temp[j].type) continue;
    49. double d3=sqrt(pow(fabs(temp[i].x-temp[j].x),2)+pow(fabs(temp[i].y-temp[j].y),2));
    50. d=min(d,d3);
    51. }
    52. }
    53. temp.clear();
    54. return d;
    55. }
    56. int main()
    57. {
    58. int t;
    59. int i;
    60. cin>>t;
    61. while(t--)
    62. {
    63. int n;
    64. cin>>n;
    65. for(i=1;i<=n;i++)
    66. {
    67. cin>>a[i].x>>a[i].y;
    68. a[i].type=1;
    69. }
    70. for(i=n+1;i<=2*n;i++)
    71. {
    72. cin>>a[i].x>>a[i].y;
    73. a[i].type=2;
    74. }
    75. sort(a+1,a+2*n+1,cmp1);
    76. double ans=solve(1,2*n);
    77. printf("%.3lf\n",ans);
    78. }
    79. return 0;
    80. }

  • 相关阅读:
    场景应用:SpringSecurity记住我功能实现
    电源常用LDO线性稳压IC大全!
    适配高DPI QWidget::move移动有错误?
    SurfaceFlinger启动-Android12
    【雷达图】R语言绘制雷达图(ggradar),NBA季后赛数据为例
    Flutter ChoiceChip 用来实现选择标签效果
    使用图形视图框架(Graphics View Framework)在QML中创建交互式图形界面
    2022年最新阿里巴巴70道高级面试题,四面斩获阿里offer,直接定级为P7
    修炼k8s+flink+hdfs+dlink(五:安装dockers,cri-docker,harbor仓库,k8s)
    【MC 网易-我的世界-mod开发基础笔记】 --- 常用的在线工具
  • 原文地址:https://blog.csdn.net/wniuniu_/article/details/134485324