Computer >> Máy Tính >  >> Lập trình >> C ++

In các điểm tọa độ 2-D theo thứ tự tăng dần theo sau là tần số của chúng trong C ++

Trong bài toán này, chúng ta có 2 mảng x [], y [] sao cho (x, y) cho một điểm nằm trong mặt phẳng 2D. Nhiệm vụ của chúng tôi là in tất cả các điểm cùng với tần suất xuất hiện của chúng.

Hãy lấy một ví dụ để hiểu vấn đề

Input: x[]={0, 1, 1, 0, 0} ; y[]={1, 2, 2, 2, 1}
Output
(0, 1) = 2
(1, 2) = 2
(0, 2) = 1

Để giải quyết vấn đề này, chúng ta cần lưu trữ tần suất xuất hiện của mỗi điểm. Vì vậy, chúng ta cần sử dụng cấu trúc dữ liệu bản đồ. Khóa của bản đồ là (x [i], y [i]), giá trị được ánh xạ là tần số nguyên của lần xuất hiện.

Chương trình sẽ hiển thị việc triển khai giải pháp của chúng tôi,

Ví dụ

#include <bits/stdc++.h>
using namespace std;
void printFrequencyofPoint(int x[], int y[], int n){
   map<pair<int, int>, int> pFreq;
   for (int i = 0; i < n; i++)
   pFreq[make_pair(x[i], y[i])]++;
   map<pair<int, int>, int>::iterator i;
   for (i = pFreq.begin(); i != pFreq.end(); i++) {
      cout<<"("<<(i->first).first <<", "<< (i->first).second <<") -> ";
      cout<<i->second << "\n";
   }
}
int main() {
   int x[]={0, 1, 1, 0, 0};
   int y[]={1, 2, 2, 2, 1};
   int n=5;
   cout<<"The points and their frequency of occurance is :\n";
   printFrequencyofPoint(x, y, n);
   return 0;
}

Đầu ra

The points and their frequency of occurance is :
(0, 1) -> 2
(0, 2) -> 1
(1, 2) -> 2