Mời thí sinh CLICK vào liên kết hoặc ảnh bên dưới
Mở ứng dụng Shopee để tiếp tục làm bài thi
https://s.shopee.vn/AKN2JyAJAw
https://s.shopee.vn/AKN2JyAJAw
kinhthu.com và đội ngũ nhân viên xin chân thành cảm ơn!
Cho dãy số nguyên a gồm N phần tử. Đếm xem có bao nhiêu cặp (i, j) trong đó i < j và a[i] = a[j]Input Specification
Dòng đầu là N số lượng phần tử của dãy. (0 < N <= 100000)
Dòng tiếp theo chứa n số nguyên là các phần tử của dãy số a (0< a.i <=1000)Output SpecificationSố cặp (i,j) thỏa mãn yêu cầu.
(Ngôn ngữ C++ nha)
Mình cần một tay giúp đây! Ai có thể đóng góp ý kiến để mình giải quyết câu hỏi này được không?
Các câu trả lời
Câu hỏi Tin học Lớp 9
- Trình tự cắt, sao chép âm thanh là: 1- Đánh dấu đoạn âm thanh muốn cắt hoặc sao chép. 2- Nhấn tổ hợp phím Ctrl + V. 3...
- tại sao nói xã hội tin học hóa là yếu tố quan trọng nhất quyết định cho sự phát triển...
- Khi đang làm việc với PowerPoint, muốn thiết lập mẫu bố trí của trang chiếu, ta sử dụng lệnh: A. Insert → Slide...
- Nhap N so bat ki tu ban phim , dem cac so lon hon 10 va nho hon 20 va thong bao ket qua ra man hinh (Trong chuong...
- Mỗi dự án âm thanh gồm: A. Một rãnh âm thanh B. Nhiều rãnh âm thanh C. Hai rãnh âm thanh D....
- Yếu tố ảnh hưởng đến sự an toàn thông tin máy tính là: A. Yếu tố môi trường B. Yếu tố địa lí C. Yếu tố bảo quản...
- Em hãy nêu 1 số dịch vụ của internet theo em dịch vụ nào của internet được người sử dụng nhiều...
- nêu các bước cơ bản cần thực hiện để chèn hình ảnh hay văn bản vào trang chiếu
Câu hỏi Lớp 9
- Tại sao các nhân vật trong truyện ngắn “Lặng lẽ Sa Pa” đều không được gọi tên cụ thể?
- Cho parabol (P):y=1/2x^2 và đường thẳng (d):y=2x-2 a) Vẽ đồ thị hàm số...
- cho pt x2 +(3m-1)x+36 =0 tìm m để pt có 2 nghiệm x1x2 sao cho biểu thức căn x1+3 căn x2...
- .You must do this exercise carefully. -> This exercise
Bạn muốn hỏi điều gì?
Đặt câu hỏix
- ²
- ³
- √
- ∛
- ·
- ×
- ÷
- ±
- ≈
- ≤
- ≥
- ≡
- ⇒
- ⇔
- ∈
- ∉
- ∧
- ∨
- ∞
- Δ
- π
- Ф
- ω
- ↑
- ↓
- ∵
- ∴
- ↔
- →
- ←
- ⇵
- ⇅
- ⇄
- ⇆
- ∫
- ∑
- ⊂
- ⊃
- ⊆
- ⊇
- ⊄
- ⊅
- ∀
- ∠
- ∡
- ⊥
- ∪
- ∩
- ∅
- ¬
- ⊕
- ║
- ∦
- ∝
- ㏒
- ㏑
Cách 1:
countMap;
arr(N);
```cpp
#include
#include
using namespace std;
int main() {
int N;
cin >> N;
unordered_map
for (int i = 0; i < N; i++) {
int num;
cin >> num;
countMap[num]++;
}
int countPairs = 0;
for (auto& pair : countMap) {
int count = pair.second;
countPairs += count * (count - 1) / 2;
}
cout << countPairs << endl;
return 0;
}
```
Cách 2:
```cpp
#include
#include
using namespace std;
int main() {
int N;
cin >> N;
vector
for (int i = 0; i < N; i++) {
cin >> arr[i];
}
int countPairs = 0;
for (int i = 0; i < N; i++) {
for (int j = i + 1; j < N; j++) {
if (arr[i] == arr[j]) {
countPairs++;
}
}
}
cout << countPairs << endl;
return 0;
}
```
Câu trả lời cho câu hỏi: Để đếm số cặp (i, j) thỏa mãn điều kiện i < j và a[i] = a[j], ta có thể sử dụng cách 1 với cấu trúc dữ liệu unordered_map để đếm số lần xuất hiện của từng phần tử trong mảng. Sau đó, ta tính số cặp thỏa mãn bằng cách lấy tổng số cặp chính phương của số lần xuất hiện của từng phần tử. Hoặc ta cũng có thể sử dụng cách 2 với hai vòng lặp duyệt mảng để đếm số cặp thỏa mãn điều kiện trực tiếp.
Đảm bảo việc sử dụng map sẽ giúp giảm độ phức tạp của thuật toán xuống O(N) với N là số lượng phần tử của dãy số a.
Cuối cùng, ta trả về số cặp đã tính được là kết quả của bài toán.
Sau đó, ta duyệt qua map để tính tổng số cặp (i, j) thỏa mãn yêu cầu. Với mỗi phần tử a[i], số cặp thỏa mãn sẽ là tổ hợp chập 2 của số lần xuất hiện của phần tử đó.
Đầu tiên, ta sử dụng một map để đếm số lần xuất hiện của từng phần tử trong dãy số a.