This commit is contained in:
Zengtudor 2025-07-17 10:28:09 +08:00
parent f485391c43
commit e2b339fa8e
7 changed files with 200024 additions and 14 deletions

2
src/7/17/Summer0.in Normal file
View File

@ -0,0 +1,2 @@
1
1 100000

1
src/7/17/Summer0.out Normal file
View File

@ -0,0 +1 @@
199997

100001
src/7/17/Summer1.in Normal file

File diff suppressed because it is too large Load Diff

1
src/7/17/Summer1.out Normal file
View File

@ -0,0 +1 @@
2264964024

100001
src/7/17/Summer2.in Normal file

File diff suppressed because it is too large Load Diff

1
src/7/17/Summer2.out Normal file
View File

@ -0,0 +1 @@
66329177774288

View File

@ -1,32 +1,35 @@
#include <cstdint>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int MAX_N = 100000;
using ll = int64_t;
const ll MAX_N = 100000;
struct Sm {
vector<int> tree;
int n;
Sm(int size) {
vector<ll> tree;
ll n;
Sm(ll size) {
n = size;
tree.assign(n + 1, 0);
}
void update(int i, int v) {
void update(ll i, ll v) {
while (i <= n) {
tree[i] += v;
i += i & -i;
}
}
int query(int i) {
int sum = 0;
ll query(ll i) {
ll sum = 0;
while (i) {
sum += tree[i];
i -= i & -i;
}
return sum;
}
int query(int l, int r) {
ll query(ll l, ll r) {
if (l > r) return 0;
return query(r) - query(l - 1);
}
@ -35,14 +38,14 @@ struct Sm {
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int k;
ll k;
cin >> k;
vector<int> arr(MAX_N + 1);
for (int i = 1; i <= MAX_N; i++) {
vector<ll> arr(MAX_N + 1);
for (ll i = 1; i <= MAX_N; i++) {
arr[i] = i;
}
for (int i = 0; i < k; i++) {
int x, y;
for (ll i = 0; i < k; i++) {
ll x, y;
cin >> x >> y;
if (x <= MAX_N && y <= MAX_N) {
swap(arr[x], arr[y]);
@ -50,7 +53,7 @@ int main() {
}
Sm sm(MAX_N);
long long ans = 0;
for (int j = 1; j <= MAX_N; j++) {
for (ll j = 1; j <= MAX_N; j++) {
if (arr[j] < MAX_N) {
ans += sm.query(arr[j] + 1, MAX_N);
}