Tue, 12 Feb 2019 15:02:11 GMT

master
大蒟蒻 7 years ago
parent 736458fdf0
commit bd7469930f

@ -87,3 +87,13 @@ multiset搞一下又忘记clear了
### S - Producing Snow
multiset加前缀和
### T - Geometric Progression
一开始甚至想到了各种可持久化数据结构,然后发现我已经不会写了。
实际上也是个水题如果C++的range能够更方便一些的话多好啊这样的事情或许得等到C++20才能实现吧。
可是啊有更多的事情就算愿意付出时间去等待也是没有结果的吧。就算等到了感觉大概也是完全不同的。正如C++20+一定会在某一天变成编译器的默认配置,但是那个时候,我早已退役,默认选项是什么,已经不重要了。
multiset的count好像格外的慢呢。或许是通过`distance(lower_bound,upper_bound)`实现的吧,$log(n)$都变成$nlog(n)$了这种计数还是用map吧。

@ -4,5 +4,20 @@
using namespace std;
int main()
{
ios::sync_with_stdio(false);
int64_t n, k;
cin >> n >> k;
vector<int64_t> v(n);
unordered_map<int64_t, int64_t> m1, m2;
for (auto &x : v) cin >> x, m2[x]++;
int64_t ans = 0;
for (auto &x : v)
{
--m2[x];
if (x % k == 0)
ans += m1[x / k] * m2[x * k];
++m1[x];
}
cout << ans;
return 0;
}
}
Loading…
Cancel
Save