A - Water PressureA - Water Pressure
题目大意
假设水压仅取决于深度,在深度为x米时,水压为x/100兆帕斯卡。
 现在给定一个深度D米,需要计算在该深度下的水压是多少兆帕斯卡。
思路分析
直接将输入的深度除以100得到水压结果。
时间复杂度
O(1)
AC代码
#include <iostream>
using namespace std;
int main() {
    double D; 
    cin >> D;
    double pressure = D / 100; 
    cout << pressure <<endl; 
    return 0;
}
B - ElectionB - Election
题目大意
正在进行一次选举。共有N人投票。第i个人(1≤i≤N)将他的一票投给了候选人Si.
 要找出得到最多选票的候选人的姓名。输入保证只有一个候选人获得最多选票。
思路分析
使用哈希表(unordered_map)来存储每个候选人的票数,然后遍历哈希表找到获得最多选票的候选人。
时间复杂度
O(N+M)
AC代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
  int n;
  cin>>n;
  unordered_map<string,int>vo;
  for(int i=0;i<n;i++)
  {
    string ca;
    cin>>ca;
    vo[ca]++;
  }
  string win;
  int ma;
  for(auto it:vo)
  {if(it.second>ma)
  {ma=it.second;
   win=it.first;
  }
  }
  cout<<win<<endl;
  return 0;
}
C - Counting 2C - Counting 2 /
题目大意
有一个班级,有N个学生。第i个学生(1 ≤ i ≤ N)的身高是Ai。对于每个查询Qj(1≤j≤Q),回答以下问题:
 至少有多少个学生的身高不低于xj?
思路分析
先对学生的身高进行排序,然后对于每个查询,使用二分查找来确定至少身高为xj的学生数量。通过计算排序后的数组中不小于xj的元素的位置与数组末尾的距离,即可得到结果。
时间复杂度
O(NlogN + QlogN)
AC代码
#include <bits/stdc++.h>
using namespace std;
int main(){
    int n, q; cin >> n >> q;
    vector<int> v(n);
    for(int i = 0; i < n; i++) cin >> v[i];
    sort(v.begin(),v.end());
    for(int i = 0; i < q; i++){
        int x; cin >> x;
        cout << v.end() - lower_bound(v.begin(), v.end(), x) << endl;
    }
}












![[OnWork.Tools]系列 01-简介](https://img-blog.csdnimg.cn/img_convert/d89e6e99a5d77e46b3ac94b7542054cf.png)











