[Mảng 1 Chiều Cơ Bản]. Bài 50. Số cặp chẵn

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
28Tech
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho mảng A[] gồm N phần tử, 28Tech có một câu hỏi đó là trong mảng A[] có bao nhiêu cặp số A[i]A[j] với i khác j mà tổng 2 số này là 1 số chẵn. Nhiệm vụ của bạn là đếm giúp anh ta số cặp thỏa mãn.


Đầu vào

• Dòng 1 là N : số lượng phần tử trong mảng

• Dòng 2 là N số trong mảng cách nhau 1 dấu cách


Giới hạn

1<=N<=10^6

0<=A[i]<=10^6


Đầu ra

In ra số cặp thỏa mãn


Ví dụ :

Input 01
8
11 17 8 18 7 10 3 18
Output 01
12

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    tungabc1105  đã bình luận lúc 8, Tháng 9, 2024, 9:45

    for(int i=0; i < n-1;i++) { for(int j=i+1;j < n; j++) { tong=a[i]+a[j]; if(tong %2==0) dem++; tong=0; } }cout << dem;

    Sao lại bị lỗi runtime mn nhỉ ?


  • 0
    minhlele05  đã bình luận lúc 25, Tháng 8, 2024, 16:08

    include <bits/stdc++.h>

    define ll long long

    using namespace std; int mod = 1e9 + 7; int a[1000005];

    long long combination(int n, int k) { if (k > n) return 0; if (k == 0 || k == n) return 1;

    long long res = 1;
    for (int i = 1; i <= k; i++) {
        res *= (n - i + 1);
        res /= i;
    }
    
    return res;
    

    }

    int main() { int n; cin >> n; for(int i = 0; i < n; i++) { cin >> a[i]; } int k = 2; int odd = 0; int even = 0; for(int i = 0; i < n; i++) { if(a[i] % 2 == 0) even++; else odd++; } cout << combination(odd, k) + combination(even, k); }

    Cho những ai muốn tham khảo thì hướng giải của mình là tìm số lượng số chẫn và số lẻ. Sau đó công 2 tổ hợp chập 2 của lẻ và chẵn lại vì C + C = C và L + L = C


  • 0
    minhquan2905  đã bình luận lúc 29, Tháng 7, 2024, 9:56

    áp dụng lý thuyết : A%2=0 <=> (a%2 + b%2)%2 = 0 với (A=a+b) -> a%2 = b%2 = 0 hoặc a%2 = b%2 = 1 => đếm cặp cùng chẵn hoặc cùng lẻ


  • -2
    Longbaka  đã bình luận lúc 29, Tháng 7, 2024, 1:14

    include <bits/stdc++.h>

    using namespace std;

    int main() {

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    
    int n; cin>>n;
    int a[n];
    int c=0, l=0;
    for(int i=0; i&lt;n; i++){
        cin>>a[i]; 
        if(a[i]&1)
        l++;
        else c++;
    }
    cout<< 1ll*c*(c-1)/2 + 1ll*l*(l-1)/2;
    
    
    return 0;
    

    }


  • 0
    NTH11112222  đã bình luận lúc 25, Tháng 5, 2024, 2:09

    include <iostream>

    include <vector>

    using namespace std; int main() { int N; cin >> N; vector<int> A(N); int d1 = 0, d2 = 0; for (int i = 0; i < N; ++i) { cin >> A[i]; if (A[i] % 2 == 0) { d1++; } else { d2++; } } long long pairs = (long long)d1 * (d1 - 1) / 2 + (long long)d2 * (d2 - 1) / 2; cout << pairs << endl; return 0; }


  • 1
    xuanthinh  đã bình luận lúc 28, Tháng 4, 2024, 3:13

    include <bits/stdc++.h>

    using namespace std;

    define ll long long;

    int main() { iosbase::syncwith_stdio(0); cin.tie(0);cout.tie(0); int n,x,dem1=0,dem2=0; cin>>n; while(n--) { cin>>x; if(x%2==0) dem1++; else dem2++; } if(dem1>1) dem1--; else dem1=0; if(dem2>0) dem2--; else dem2=0; cout<<(1lldem1(dem1+1)/2)+(1lldem2(dem2+1)/2); return 0; }


  • 0
    nghxadakid  đã bình luận lúc 26, Tháng 4, 2024, 13:03

    Ai cho em xin hướng giải bài này với ạ


    • 1
      nghxadakid  đã bình luận lúc 29, Tháng 4, 2024, 15:08

      Em cảm ơn 2 người nhiều ạ <3


    • 4
      xuanthinh  đã bình luận lúc 28, Tháng 4, 2024, 3:20

      Ý tưởng : Bài này đếm số lượng số chẳn và số lượng số lẻ . Số chẳn được tạo thành khi ta cộng 2 số chẳn hoặc 2 số lẻ . Vd : 8 11 17 8 18 7 10 3 18 Số lượng số chẳn là : 8 18 10 18 thì ta sẽ có 6 cặp, số 8 có 3 cặp, số 18 có 2 cặp, số 10 có 1 cặp => số lượng số cặp chẳn sẽ là : tổng từ 1 đến n-1 với n là số lượng số chẳn: ta sẽ dùng công thức : n(n+1)/2 để tính tổng , vd : có 4 số chẳn thì số cặp chẳn sẽ là : tổng từ 1 đến n-1 là : tổng từ 1 đến 3: 3(3+1)/2=6 ta cũng là tương tự như vậy để tính số cặp lẻ . Sau đó cộng số cặp lẻ và cặp chẳn lại là có kq Nhưng lưu ý : TH1 : chỉ có 1 số lẻ , thì số cặp lẻ sẽ là 0 vd : 3 2 4 6 Thì ta có số cặp lẻ là 0 , số cặp chẳn là 3 => kết quả là 3 TH2 : chỉ có 1 số chẳn thì số cặp chẳn sẽ là 0 vd : 8 3 5 7 9 Thì ta có số cặp chẳn là 0 , số cặp lẻ 6=> kết quả là 6


    • 0
      Rykrax  đã bình luận lúc 27, Tháng 4, 2024, 16:43

      dùng đếm pp + tính chất thôi, L+L = C, C+C = C