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
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift
Cho một dãy gồm ~n~ số nguyên, hãy đếm số cặp bằng nhau trong dãy
Input
- Dòng đầu tiên chứa duy nhất một số nguyên dương ~n~ (số phần tử trong dãy).
- Dòng thứ hai chứa n số nguyên là các phần tử ~a_1,a_2,…,a_n~
Giới hạn:
- ~1≤n≤10^5,0≤a_i≤5.10^4~
Output
- In ra trên một dòng số nguyên không âm là số cặp bằng nhau liên tiếp trong dãy.
Sample
Input #1
4
3 1 2 3
Output #1
1
Input #2
5
4 1 1 2 2
Output #2
2
Input #3
6
5 3 1 2 1 1
Output #3
3
Problem source: Chuyên Sơn La Online Judge
Bình luận
include <bits/stdc++.h>
using namespace std;
define ll long long
void solve() { ll n;cin >> n; ll a[n]; for (int i=0 ; i < n ;i=i+1) { cin >>a[i];
} ll dem=0; sort (a,a+n); for (int i=0 ; i <n ;i=i+1) { for (int j=i+1;j<n;j=j+1) {
if (a[i]==a[j]) { dem=dem+1; } else { break; } } } cout << dem;
} int main() { solve(); }
O(n^2) =))
test 7 là gì thế ạ
bài này bạn có thể sử dụng map để lưu tần suất xuất hiện của các phần tử trong mảng, xong bạn check nếu số lần xuất hiện lớn hơn 2 thì bạn tính tổ hợp chập 2
Acc: 100%
Goi y: su dung tim kiem nhi phan, dung to hop chap k cua 2 de tinh so cap
include <bits/stdc++.h>
using namespace std; long long n, a[1000009], dem = 0, k; int main(){
}
đề bài sai, giới hạn 1 <= n <= 10^5, 0 <= ai <= 5*10^4 nhưng có case test số rất lớn, kiểu long long mới chứa được
ban dua minh day a. So luong cap la to hop chap 2 cua k phan tu voi k te nhat bang n.Int chua bang mat
.
Bài này mng làm cách nào vậy ạ?? E làm mãi k ac được :((
bài này bạn có thể sử dụng map hoặc mảng đếm để lưu tần suất xuất hiện rồi ktra nếu xuất hiện từ 2 lần trở lên thì bạn tính tổ hợp chập 2
tôi có dùng rồi nhưng tính giai thừa cũng bị tle
Bạn tham khảo ý tưởng giải bài : link enter link description here