Trang chủ Tin Học Lớp 8 c++ ạ Tập hợp Tên file: BSET.CPP Cho tập hợp A gồm n phần tử là a1, a2, , an,...
Câu hỏi :

c++ ạ Tập hợp Tên file: BSET.CPP Cho tập hợp A gồm n phần tử là a1, a2, , an, và tập hợp B gồm m phần tử là b1, b2, , bm. Nhiệm vụ của bạn là hãy tìm số lượng của 2 tập hợp: - Tập hợp thứ nhất là hợp của hai tập hợp A và B - Tập hợp thứ hai là giao của hai tập hợp A và B INPUT - Dòng đầu tiên chứa hai số nguyên n, m (1 n, m 105) - Dòng thứ hai chứa n số nguyên a1, a2, , an (|ai| 105) - Dòng thứ ba chứa m số nguyên b1, b2, , bn (|bi| 105) OUTPUT - Chứa hai số, số thứ nhất là số lượng phần tử của tập hợp hợp A và B, số thứ hai là số lượng phần tử của tập hợp giao của A và B. Ví dụ: INPUT OUTPUT 4 5 7 2 1 2 3 4 9 7 3 2 5 4 5 9 0 1 2 3 4 9 7 10 11 5 Lm thuật toán đơn giản giúp em với ạ em chx học insert,size,vector đâu ạ nếu đc mog a/c giải thích các bươc giải giúp e vs

Lời giải 1 :

#include <bits/stdc++.h>
#define N 100000
using namespace std;
int c[N*2+2],c1[N*2+2];
int main ()
{
 int n,m;
 freopen("BSET.INP","r",stdin);
 freopen("BSET.OUT","w",stdout);
 cin >> n >> m;
 for(int a,i=1;i<=n;i++) {
 cin >> a;
 c[a+N]++;}
 for(int b,i=1;i<=m;i++) {
 cin >> b;
 c1[b+N]++;}
 int g=0,h=0;
 for(int i=1;i<=2*N;i++) {
  if(c[i]>0 && c1[i]>0) g++;
  if(c[i]> 0 || c1[i]>0) h++;
 }
 cout << h << " " << g;
 return 0;
}

Lời giải 2 :

#include<bits/stdc++.h>

using namespace std;

int main ()
{

  int n,m;

  cin>>n>>m;

  int a[n], b[m];

  for(int i=0;i<n;i++)
    cin>>a[i];

  for(int i=0;i<m;i++)

    cin>>b[i];

//TÌM HỢP CỦA 2 TẬP HỢP A VÀ B

  int count_union=0;

  int set_union[105]={0};

  for(int i=0;i<n;i++)

    cin>>set_union[a[i]]=1;

  for(int i=0;i<m;i++)
  {

    if(set_union[b[i]])

      count_union++;

  }

//TÌM GIAO CỦA 2 TẬP HỢP A VÀ B

  int count_intersection=0;

  for(int i=0;i<n;i++)

  {

    for(int j=0;j<m;j++)
    {

      if(a[i]==b[i])

      {

        count_intersection++;

        break;

      }

    }

  }

  cout<<count_union<<" "<<count_intersection;

  return 0;

}

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần và sang năm lại là năm cuối cấp, áp lực lớn dần. Hãy chú ý đến sức khỏe, cân bằng giữa học và nghỉ ngơi để đạt hiệu quả tốt nhất!

Nguồn :

sưu tập

Copyright © 2024 Giai BT SGK