Tổng số bài gửi : 152 Join date : 23/04/2022 Age : 41 Đến từ : THPT Chuyên Nguyễn Tất Thành - Yên Bái
Tiêu đề: KTLT 7) SỐ NGHỊCH THẾ Tue May 10, 2022 4:41 pm
7) SỐ NGHỊCH THẾ Xét dãy số nguyên A = (a1, a2, . . ., an,)(1 ≤ n ≤ 100 000). Các số trong dãy A khác nhau từng đôi một và nhận giá trị trong phạm vi từ 1 đến n. Như vậy dãy A là một hoán vị các số từ 1 đến n. Cặp số (ai, aj)trong dãy A được gọi là một nghịch thế, nếu i < j và ai > aj. Yêu cầu: Cho n và hoán vị A. Hãy xác định số nghịch thế. Dữ liệu: Vào từ file văn bản INVERS.INP: • Dòng đầu tiên chứa số nguyên n, • Dòng thứ 2 chứa n số nguyên xác định hoán vị A. Kết quả: Đưa ra file văn bản INVERS.OUT một số nguyên – số lượng nghịch thế. Ví dụ: INVERS.INP 5 2 4 3 5 1 INVERS.OUT 5
Admin Admin
Tổng số bài gửi : 152 Join date : 23/04/2022 Age : 41 Đến từ : THPT Chuyên Nguyễn Tất Thành - Yên Bái
Tiêu đề: Re: KTLT 7) SỐ NGHỊCH THẾ Thu May 12, 2022 4:33 pm
Thuật toán: Subtask1:
Code:
for(i,1,n-1) for(j,i+1,n) nếu a[i] > a[j] thì res++ Đưa res.
Subtask2: ....
dobinhminh01
Tổng số bài gửi : 14 Join date : 10/05/2022
Tiêu đề: Re: KTLT 7) SỐ NGHỊCH THẾ Sat May 14, 2022 12:39 pm
Tiêu đề: Re: KTLT 7) SỐ NGHỊCH THẾ Sat May 14, 2022 1:19 pm
Code:
#include <bits/stdc++.h>
#define ll long long using namespace std;
long long f[100600],ans; int n, x; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); freopen("INVERS.INP","r",stdin); freopen("INVERS.OUT","w",stdout); cin >> n; while (n--) { cin >> x; for (int i = x + 1; i <= 100000; i += i & -i) ans += f[i]; for (int i = x; i; i -= i & -i) f[i]++; } cout << ans << " "; return 0; }
Admin likes this post
meliodasssf
Tổng số bài gửi : 71 Join date : 10/05/2022
Tiêu đề: Re: KTLT 7) SỐ NGHỊCH THẾ Mon May 16, 2022 9:21 pm
Code:
/*Meliodasssf*/
#include<bits/stdc++.h> using namespace std; #define forl(i,a,b) for (int i=a; i<=b; i++) #define forr(i,a,b) for (int i=a; i>=b; i--) #define max3(a,b,c) max(a,max(b,c)) #define min3(a,b,c) min(a,min(b,c))