今天继续打卡:
今天写了4道题:P2249,P1102,P1873,P1024;
就重点讲讲学了些啥吧!
第一个熟悉了map这个是在P1102中的:
#include <iostream>
#include <algorithm>
#include <cmath>
#include <map>
using namespace std;
typedef long long ll;
ll n, c;
ll dataa[200004];
map <ll, ll> m;
int main()
{
cin >> n >> c;
for (int i = 0; i < n; i++)
{
cin >> dataa[i];
m[dataa[i]]++;
}
ll ans = 0;
for (int i = 0; i < n; i++)
{
ans += m[dataa[i] + c];
}
cout << ans;
return 0;
}
用二分是真的麻烦,这个是真简单。
还有就是我在写二分时经常判断出错,不知道是l = mid 还是r = mid;这个是我觉的得重点关注的,肯定有很多人和我一样。还是的多练。然后就查了查发现了lower_bound和upper_bound这两个函数。分享一下: