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/6Ai1QhN7jj
https://s.shopee.vn/6Ai1QhN7jj
Sytu.vn 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
- Câu 1 Ô B5 là ô nằm ở vị trí nào a, hàng 5 cột B b, Hàng B cột...
- Chương trình nào là chương trình diệt virus? A. WinRAR B. Ccleaner C. Foxit Reader D. Nortom
- 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....
- Thư điện tử là gì? Nêu cấu trúc của địa chỉ thư điện tử? Lấy 2 ví dụ về địa chỉ thư...
- Loại file nào có thể phát tán được virus. A. .EXE B. .COM C. .DOC D. Tất cả các file trên
- Đề bài: Tạo một bài trình chiếu hoàn chỉnh với chủ đề: Những lễ hội tiêu biểu ở vùng Tây Bắc và Việt Bắc - Lễ hội Lồng...
- 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...
- Bài 1: Cho trước xâu kí tự s có độ dài n chỉ chứa các chữ cái tiếng...
Câu hỏi Lớp 9
- Lớp 9A chia nhóm để thực hành môn Công Nghệ. Nếu mỗi nhóm có 4 nam...
- Cho 100g dung dịch CH3COOH tác dụng vừa đủ với 100g dung dịch Na2CO3 10,6%. a/ Tính thể...
- Complete each sentence with a verb in the correct form, -ing or to ... 1 a, Please rememver to lock the door when you...
- Câu 71 (mức 2): Dãy các chất tác dụng với lưu huỳnh đioxit...
Bạn muốn hỏi điều gì?
Đặt câu hỏix
- ²
- ³
- √
- ∛
- ·
- ×
- ÷
- ±
- ≈
- ≤
- ≥
- ≡
- ⇒
- ⇔
- ∈
- ∉
- ∧
- ∨
- ∞
- Δ
- π
- Ф
- ω
- ↑
- ↓
- ∵
- ∴
- ↔
- →
- ←
- ⇵
- ⇅
- ⇄
- ⇆
- ∫
- ∑
- ⊂
- ⊃
- ⊆
- ⊇
- ⊄
- ⊅
- ∀
- ∠
- ∡
- ⊥
- ∪
- ∩
- ∅
- ¬
- ⊕
- ║
- ∦
- ∝
- ㏒
- ㏑

Cách 1:```cpp#include#include using namespace std;int main() { int N; cin >> N; unordered_map countMap; 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 arr(N); 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.