

làm c++ nha
Trạm thu phát tín hiệu vệ tinh sau khi xử lý được biểu diễn thành dãy n bít là dãy nhị phân (gồm giá trị 0 và 1), các bit được đánh số từ 1 đến n. Một đoạn tín hiệu gọi là chuẩn nếu số lượng bit 0 bằng bit 1. Hai đoạn bít được gọi là khác nhau nếu tồn tại một vị trí có thứ tự khác nhau trong tín hiệu ban đầu. Trước tiên cần xác định xem tín hiệu thu nhận được có bao nhiêu đoạn tín hiệu chuẩn. Ví dụ: Dãy tín hiệu 1 0 1 0 1 1 có 6 đoạn tín hiệu chuẩn là:
- (1) từ vị trí 1 đến 2 (1, 0)
- (2) từ vị trí 1 đến 4 (1, 0, 1 , 0)
- (3) từ vị trí 2 đến 3 (0, 1)
- (4) từ vị trí 2 đến 5 (0, 1, 0, 1)
- (5) từ vị trí 3 đến 4 (1, 0)
- (6) từ vị trí 4 đến 5 (0, 1)
Yêu cầu: Cho n và dãy nhị phân, hãy cho biết có bao nhiêu đoạn tín hiệu chuẩn.
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
#include <bits/stdc++.h>
using namespace std;
long long dem(long long n,const vector<long long>& a) {
long long dem=0;
for (long long i=0;i<n;i++) {
long long m_0=0,m_1=0;
for (long long j=i;j<n;j++) {
if (a[j]==0)
m_0++;
else
m_1++;
if (m_0==m_1)
dem++;
}
}
return dem;
}
int main() {
long long n;
cin>>n;
vector<long long> a(n);
for (long long i=0;i<n;i++)
cin>>a[i];
cout<<dem(n,a)<<endl;
return 0;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin