

Cho một chuồng rộng vô hạn được biểu diễn dưới dạng lưới 2D. Có một tập hợp lớn gồm NN con bò, con bò thứ ii đứng ở hàng xixi cột yiyi (ký hiệu là ô (xi,yi)(xi,yi)).
Một cách đặt hàng rào sẽ bao đóng trọn vẹn một vùng chữ nhật các ô, với các cạnh phải song song với trục xx và yy, vùng có thể nhỏ tới mức chỉ bao gồm một ô.
Với một cách đặt hàng rào, có thể dựng nên một tập hợp con các con bò nằm trong hàng rào.
Đếm số tập con khác nhau của tập hợp lớn có thể xây dựng bằng cách đặt hàng rào như trên.
Dữ liệu đầu vào
Định dạng đầu ra
Điểm số
Ví dụ
Ví dụ 1
Đầu vào4 0 2 1 0 2 3 3 5Đầu raGiải thích
Có 2424 tập con của tập hợp 4 con bò.
Không thể xây dựng hàng rào chỉ chứa ba con bò 1-2-4, hoặc chỉ chứa hai con bò 2 và 4, hoặc chỉ chứa bò 4, nên đáp án là 24−3=1324−3=13
0ThíchBình luậnLưuChia sẻBáo cáo
Bài tập gợi ý:
proudly powered by DMOJ| developed by LQDJudge team Tiếng Việt (vi) English (en)
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
`\color{pink}{#Bơ}`
#include <bits/stdc++.h>
#define ll long long
#define pii pair<int,int>
#define F first
#define S second
using namespace std;
int n;
pii a[2505];
set<vector<int>> s;
int main() {
ios::sync_with_stdio(0); cin.tie(0);
cin >> n;
for (int i = 0; i < n; i++) cin >> a[i].F >> a[i].S;
for (int xi = 0; xi < n; xi++)
for (int xj = xi; xj < n; xj++)
for (int yi = 0; yi < n; yi++)
for (int yj = yi; yj < n; yj++) {
int x1 = min(a[xi].F, a[xj].F), x2 = max(a[xi].F, a[xj].F);
int y1 = min(a[yi].S, a[yj].S), y2 = max(a[yi].S, a[yj].S);
vector<pii> v;
for (int k = 0; k < n; k++)
if (x1 <= a[k].F && a[k].F <= x2 && y1 <= a[k].S && a[k].S <= y2)
v.push_back(a[k]);
sort(v.begin(), v.end());
vector<int> d;
for (auto p : v) d.push_back(p.F * 1000000001ll + p.S);
s.insert(d);
}
cout << s.size();
}
`\color{#1AD5F7}{꧁⋆⟡H}\color{#1AD5F7}{a}\color{#4DA6E6}{r}\color{#668EDD}{i}\color{#8077D5}{i}\color{#995FCD}{i}\color{#EA2F90}{⟡⋆꧂}`
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin
1726
6519
2587
chat ít th =))