Hướng dẫn giải của Bedao PROM Hay Không? Hay Hay


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Author: ntkwan

Ý tưởng

Gọi ~X~ là số lượng bạn nam, ~Y~ là số lượng bạn nữ

Gọi ~A~ là số lượng bạn nữ mà một bạn nam sẽ khiêu vũ, ~B~ là số lượng bạn nam mà một bạn nữ sẽ khiêu vũ.

Trong buổi khiêu vũ, một bạn nam có thể nhảy với bạn nữ thứ ~1~,rồi chuyển qua nhảy với bạn nữ thứ ~2~, ..., bạn nữ thứ ~Y~. Thực hiện tương tự như thế với một bạn nữ, từ đó ta có thể tưởng tượng một đồ thị hai phía có tổng cộng ~N~ đỉnh gồm ~X~ đỉnh bên trái và ~Y~ đỉnh bên phải. Ta lại có ~A \times X~ cạnh hay tương tự ta cũng có ~B \times Y~ cạnh. Vậy ta có hệ phương trình:

  • ~X + Y = N~

  • ~A \times X - B \times Y = 0~

Từ đây ta có thể giải ~X~ và ~Y~ bằng phương pháp cộng hoặc phương pháp thế khi giải hệ phương trình.

Code mẫu

#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int T;
  cin >> T;
  while (T--) {
    long long n, a, b, X, Y;
    cin >> n >> a >> b;
    X = (b * n) / (a + b);
    Y = n - X;
    if (X > Y) swap(X, Y);
    cout << X << ' ' << Y << '\n';
  }
  return 0;
}

Bình luận

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


Không có bình luận tại thời điểm này.