mirror of
https://git.sb/baoshuo/OI-codes.git
synced 2024-11-23 22:28:48 +00:00
Compare commits
No commits in common. "95ce0ec323ca3d36befe07f80479a8c5cce9447e" and "e699498ba29f0c036578d606bf4749ee4985a9d4" have entirely different histories.
95ce0ec323
...
e699498ba2
@ -1,112 +0,0 @@
|
||||
#include <iostream>
|
||||
#include <algorithm>
|
||||
#include <limits>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
using std::cin;
|
||||
using std::cout;
|
||||
const char endl = '\n';
|
||||
|
||||
const int N = 2e5 + 5;
|
||||
|
||||
int n, c[N], st[N];
|
||||
long long ans;
|
||||
std::vector<int> xs;
|
||||
std::pair<int, int> p[N];
|
||||
|
||||
inline int lowbit(int x) {
|
||||
return x & -x;
|
||||
}
|
||||
|
||||
void insert(int x, int y) {
|
||||
for (; x; x -= lowbit(x)) c[x] = std::min(c[x], y);
|
||||
}
|
||||
|
||||
int query(int x) {
|
||||
int res = std::numeric_limits<int>::max();
|
||||
|
||||
for (; x <= n; x += lowbit(x)) res = std::min(res, c[x]);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
void clear(int x) {
|
||||
for (; x; x -= lowbit(x)) c[x] = std::numeric_limits<int>::max();
|
||||
}
|
||||
|
||||
int search(int l, int r, int y) {
|
||||
int res = r + 1;
|
||||
|
||||
while (l <= r) {
|
||||
int mid = l + r >> 1;
|
||||
|
||||
if (p[st[mid]].second < y) {
|
||||
res = mid;
|
||||
r = mid - 1;
|
||||
} else {
|
||||
l = mid + 1;
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
void solve(int l, int r) {
|
||||
if (l >= r) return;
|
||||
|
||||
int mid = (l + r) >> 1;
|
||||
solve(l, mid);
|
||||
solve(mid + 1, r);
|
||||
|
||||
for (int i = l, j = mid + 1, top = 0; i <= mid; i++) {
|
||||
while (j <= r && p[j].second > p[i].second) {
|
||||
while (top && p[st[top]].first > p[j].first) top--;
|
||||
|
||||
st[++top] = j++;
|
||||
}
|
||||
|
||||
ans += top - search(1, top, query(p[i].first)) + 1;
|
||||
|
||||
insert(p[i].first, p[i].second);
|
||||
}
|
||||
|
||||
for (int i = l; i <= mid; i++) {
|
||||
clear(p[i].first);
|
||||
}
|
||||
|
||||
std::sort(p + l, p + r + 1, [](const std::pair<int, int> &a, const std::pair<int, int> &b) {
|
||||
return a.second > b.second;
|
||||
});
|
||||
}
|
||||
|
||||
int main() {
|
||||
std::ios::sync_with_stdio(false);
|
||||
cin.tie(nullptr);
|
||||
|
||||
std::fill_n(c, N, std::numeric_limits<int>::max());
|
||||
|
||||
cin >> n;
|
||||
|
||||
for (int i = 1; i <= n; i++) {
|
||||
cin >> p[i].first >> p[i].second;
|
||||
|
||||
xs.emplace_back(p[i].first);
|
||||
}
|
||||
|
||||
std::sort(p + 1, p + 1 + n, [](const std::pair<int, int> &a, const std::pair<int, int> &b) {
|
||||
return a.first < b.first;
|
||||
});
|
||||
std::sort(xs.begin(), xs.end());
|
||||
xs.erase(std::unique(xs.begin(), xs.end()), xs.end());
|
||||
|
||||
for (int i = 1; i <= n; i++) {
|
||||
p[i].first = std::lower_bound(xs.begin(), xs.end(), p[i].first) - xs.begin() + 1;
|
||||
}
|
||||
|
||||
solve(1, n);
|
||||
|
||||
cout << ans << endl;
|
||||
|
||||
return 0;
|
||||
}
|
BIN
LibreOJ/2880/data/01-01.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-01.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-01.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-01.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-02.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-02.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-02.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-02.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-03.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-03.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-03.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-03.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-04.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-04.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-04.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-04.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-05.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-05.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-05.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-05.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-06.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-06.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-06.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-06.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-07.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-07.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-07.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-07.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-08.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-08.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-08.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-08.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-09.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-09.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-09.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-09.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-10.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-10.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/01-10.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/01-10.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-01.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-01.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-01.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-01.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-02.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-02.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-02.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-02.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-03.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-03.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-03.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-03.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-04.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-04.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-04.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-04.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-05.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-05.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-05.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-05.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-06.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-06.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-06.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-06.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-07.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-07.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-07.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-07.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-08.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-08.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-08.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-08.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-09.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-09.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-09.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-09.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-10.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-10.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-10.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-10.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-11.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-11.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-11.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-11.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-12.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-12.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/02-12.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/02-12.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-01.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-01.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-01.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-01.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-02.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-02.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-02.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-02.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-03.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-03.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-03.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-03.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-04.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-04.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-04.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-04.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-05.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-05.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-05.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-05.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-06.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-06.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-06.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-06.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-07.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-07.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-07.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-07.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-08.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-08.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-08.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-08.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-09.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-09.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-09.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-09.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-10.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-10.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-10.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-10.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-11.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-11.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-11.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-11.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-12.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-12.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-12.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-12.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-13.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-13.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-13.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-13.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-14.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-14.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-14.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-14.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-15.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-15.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-15.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-15.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-16.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-16.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-16.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-16.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-17.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-17.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-17.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-17.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-18.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-18.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-18.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-18.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-19.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-19.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-19.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-19.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-20.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-20.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/03-20.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/03-20.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/sample-01.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/sample-01.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/sample-01.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/sample-01.in
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/sample-02.ans
(Stored with Git LFS)
BIN
LibreOJ/2880/data/sample-02.ans
(Stored with Git LFS)
Binary file not shown.
BIN
LibreOJ/2880/data/sample-02.in
(Stored with Git LFS)
BIN
LibreOJ/2880/data/sample-02.in
(Stored with Git LFS)
Binary file not shown.
@ -1,44 +0,0 @@
|
||||
#include <iostream>
|
||||
#include <algorithm>
|
||||
#include <set>
|
||||
|
||||
using std::cin;
|
||||
using std::cout;
|
||||
const char endl = '\n';
|
||||
|
||||
const int N = 1e5 + 5;
|
||||
|
||||
int n, k, ans;
|
||||
std::pair<int, int> a[N];
|
||||
std::multiset<int> set;
|
||||
|
||||
int main() {
|
||||
std::ios::sync_with_stdio(false);
|
||||
cin.tie(nullptr);
|
||||
|
||||
cin >> n >> k;
|
||||
|
||||
for (int i = 1; i <= n; i++) {
|
||||
cin >> a[i].first >> a[i].second;
|
||||
}
|
||||
|
||||
std::sort(a + 1, a + 1 + n, [&](const std::pair<int, int> &a, const std::pair<int, int> &b) {
|
||||
return a.second < b.second;
|
||||
});
|
||||
|
||||
for (int i = 1; i <= k; i++) set.insert(0);
|
||||
|
||||
for (int i = 1; i <= n; i++) {
|
||||
auto it = set.upper_bound(a[i].first);
|
||||
|
||||
if (it != set.begin()) {
|
||||
set.erase(--it);
|
||||
set.insert(a[i].second);
|
||||
ans++;
|
||||
}
|
||||
}
|
||||
|
||||
cout << ans << endl;
|
||||
|
||||
return 0;
|
||||
}
|
@ -1,88 +0,0 @@
|
||||
#include <iostream>
|
||||
#include <algorithm>
|
||||
#include <numeric>
|
||||
#include <vector>
|
||||
|
||||
using std::cin;
|
||||
using std::cout;
|
||||
const char endl = '\n';
|
||||
|
||||
const int N = 2e5 + 5;
|
||||
|
||||
int n, m;
|
||||
bool vis[N];
|
||||
std::vector<int> g[N], a, b;
|
||||
|
||||
void check() {
|
||||
if (a.size() == n - a.size() - b.size()) {
|
||||
std::fill_n(vis, N, false);
|
||||
|
||||
cout << b.size() << ' ' << a.size() << endl;
|
||||
|
||||
for (const int &x : b) {
|
||||
cout << x << ' ';
|
||||
|
||||
vis[x] = true;
|
||||
}
|
||||
|
||||
cout << endl;
|
||||
|
||||
for (const int &x : a) {
|
||||
cout << x << ' ';
|
||||
|
||||
vis[x] = true;
|
||||
}
|
||||
|
||||
cout << endl;
|
||||
|
||||
for (int i = 1; i <= n; i++) {
|
||||
if (!vis[i]) {
|
||||
cout << i << ' ';
|
||||
}
|
||||
}
|
||||
|
||||
cout << endl;
|
||||
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
void dfs(int u) {
|
||||
vis[u] = true;
|
||||
b.emplace_back(u);
|
||||
check();
|
||||
|
||||
for (const int &v : g[u]) {
|
||||
if (vis[v]) continue;
|
||||
|
||||
dfs(v);
|
||||
check();
|
||||
}
|
||||
|
||||
b.pop_back();
|
||||
a.emplace_back(u);
|
||||
}
|
||||
|
||||
int main() {
|
||||
std::ios::sync_with_stdio(false);
|
||||
cin.tie(nullptr);
|
||||
|
||||
cin >> n >> m;
|
||||
|
||||
for (int i = 1; i <= m; i++) {
|
||||
int u, v;
|
||||
|
||||
cin >> u >> v;
|
||||
|
||||
g[u].emplace_back(v);
|
||||
g[v].emplace_back(u);
|
||||
}
|
||||
|
||||
for (int i = 1; i <= n; i++) {
|
||||
if (!vis[i]) dfs(i);
|
||||
}
|
||||
|
||||
cout << -1 << endl;
|
||||
|
||||
return 0;
|
||||
}
|
BIN
Luogu/T275388/samples/checker.cpp
(Stored with Git LFS)
BIN
Luogu/T275388/samples/checker.cpp
(Stored with Git LFS)
Binary file not shown.
BIN
Luogu/T275388/samples/ex_king4.in
(Stored with Git LFS)
BIN
Luogu/T275388/samples/ex_king4.in
(Stored with Git LFS)
Binary file not shown.
BIN
Luogu/T275388/samples/ex_king4.out
(Stored with Git LFS)
BIN
Luogu/T275388/samples/ex_king4.out
(Stored with Git LFS)
Binary file not shown.
@ -1,112 +0,0 @@
|
||||
#include <iostream>
|
||||
#include <algorithm>
|
||||
#include <limits>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
using std::cin;
|
||||
using std::cout;
|
||||
const char endl = '\n';
|
||||
|
||||
const int N = 2e5 + 5;
|
||||
|
||||
int n, c[N], st[N];
|
||||
long long ans;
|
||||
std::vector<int> xs;
|
||||
std::pair<int, int> p[N];
|
||||
|
||||
inline int lowbit(int x) {
|
||||
return x & -x;
|
||||
}
|
||||
|
||||
void insert(int x, int y) {
|
||||
for (; x; x -= lowbit(x)) c[x] = std::min(c[x], y);
|
||||
}
|
||||
|
||||
int query(int x) {
|
||||
int res = std::numeric_limits<int>::max();
|
||||
|
||||
for (; x <= n; x += lowbit(x)) res = std::min(res, c[x]);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
void clear(int x) {
|
||||
for (; x; x -= lowbit(x)) c[x] = std::numeric_limits<int>::max();
|
||||
}
|
||||
|
||||
int search(int l, int r, int y) {
|
||||
int res = r + 1;
|
||||
|
||||
while (l <= r) {
|
||||
int mid = l + r >> 1;
|
||||
|
||||
if (p[st[mid]].second < y) {
|
||||
res = mid;
|
||||
r = mid - 1;
|
||||
} else {
|
||||
l = mid + 1;
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
void solve(int l, int r) {
|
||||
if (l >= r) return;
|
||||
|
||||
int mid = (l + r) >> 1;
|
||||
solve(l, mid);
|
||||
solve(mid + 1, r);
|
||||
|
||||
for (int i = l, j = mid + 1, top = 0; i <= mid; i++) {
|
||||
while (j <= r && p[j].second > p[i].second) {
|
||||
while (top && p[st[top]].first > p[j].first) top--;
|
||||
|
||||
st[++top] = j++;
|
||||
}
|
||||
|
||||
ans += top - search(1, top, query(p[i].first)) + 1;
|
||||
|
||||
insert(p[i].first, p[i].second);
|
||||
}
|
||||
|
||||
for (int i = l; i <= mid; i++) {
|
||||
clear(p[i].first);
|
||||
}
|
||||
|
||||
std::sort(p + l, p + r + 1, [](const std::pair<int, int> &a, const std::pair<int, int> &b) {
|
||||
return a.second > b.second;
|
||||
});
|
||||
}
|
||||
|
||||
int main() {
|
||||
std::ios::sync_with_stdio(false);
|
||||
cin.tie(nullptr);
|
||||
|
||||
std::fill_n(c, N, std::numeric_limits<int>::max());
|
||||
|
||||
cin >> n;
|
||||
|
||||
for (int i = 1; i <= n; i++) {
|
||||
cin >> p[i].first >> p[i].second;
|
||||
|
||||
xs.emplace_back(p[i].first);
|
||||
}
|
||||
|
||||
std::sort(p + 1, p + 1 + n, [](const std::pair<int, int> &a, const std::pair<int, int> &b) {
|
||||
return a.first < b.first;
|
||||
});
|
||||
std::sort(xs.begin(), xs.end());
|
||||
xs.erase(std::unique(xs.begin(), xs.end()), xs.end());
|
||||
|
||||
for (int i = 1; i <= n; i++) {
|
||||
p[i].first = std::lower_bound(xs.begin(), xs.end(), p[i].first) - xs.begin() + 1;
|
||||
}
|
||||
|
||||
solve(1, n);
|
||||
|
||||
cout << ans << endl;
|
||||
|
||||
return 0;
|
||||
}
|
BIN
S2OJ/1008/data/ex_zxcv1.ans
(Stored with Git LFS)
BIN
S2OJ/1008/data/ex_zxcv1.ans
(Stored with Git LFS)
Binary file not shown.
BIN
S2OJ/1008/data/ex_zxcv1.in
(Stored with Git LFS)
BIN
S2OJ/1008/data/ex_zxcv1.in
(Stored with Git LFS)
Binary file not shown.
BIN
S2OJ/1008/data/ex_zxcv2.ans
(Stored with Git LFS)
BIN
S2OJ/1008/data/ex_zxcv2.ans
(Stored with Git LFS)
Binary file not shown.
BIN
S2OJ/1008/data/ex_zxcv2.in
(Stored with Git LFS)
BIN
S2OJ/1008/data/ex_zxcv2.in
(Stored with Git LFS)
Binary file not shown.
BIN
S2OJ/1008/data/problem.conf
(Stored with Git LFS)
BIN
S2OJ/1008/data/problem.conf
(Stored with Git LFS)
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user