Tổng số bài gửi : 152 Join date : 23/04/2022 Age : 41 Đến từ : THPT Chuyên Nguyễn Tất Thành - Yên Bái
Tiêu đề: KTLT15. Chuỗi nhị phân Thu May 12, 2022 7:55 pm
KTLT15. Chuỗi nhị phân Xét xâu nhị phân, tức là xâu chỉ chứa các ký tự trong tập {0, 1}. Gọi k là số lượng xâu nhị phân độ dài n (1 ≤ n ≤ 10^4) chứa xâu S (độ dài không quá 100) như một xâu con (các ký tự liên tiếp) đúng một lần. Yêu cầu: Hãy tính phần dư của kết quả chia k cho 10^9+7. Dữ liệu: Vào từ file văn bản BINARY.INP: • Dòng thứ nhất chứa số nguyên n, • Dòng thứ hai chứa xâu S. Kết quả: Đưa ra file văn bản BINARY.OUT một số nguyên – kết quả tìm được. Ví dụ: BINARY.INP 4 01 BINARY.OUT 10
nghiadaixdxd likes this post
hahung413
Tổng số bài gửi : 16 Join date : 10/05/2022
Tiêu đề: Re: KTLT15. Chuỗi nhị phân Tue May 24, 2022 12:00 am
Code:
#include <iostream> #include <math.h>
using namespace std;
int N,dem; string s;
string decToBin(int n){ string ans = ""; while (n > 0) { ans = char (n % 2 + '0') + ans; n /= 2; } while (ans.length() < N) ans = "0" + ans; return ans; }
int main(){ cin >> N >> s; int N_2 = pow(2, N); for (int i = 0; i < N_2; i++) { if(decToBin(i).find(s) <= decToBin(i).size()) dem++; } cout<< dem % (int)(1e9 + 7); }
hientm495
Tổng số bài gửi : 27 Join date : 10/05/2022
Tiêu đề: Re: KTLT15. Chuỗi nhị phân Tue Jun 14, 2022 8:29 pm
Code:
#include <bits/stdc++.h>
using namespace std;
int res,a[10004],n; string s;
void xet(){ string st=""; int dem=0; for (int i=1;i<=n;++i) st=st+char(a[i]+48); while (st.find(s)!=-1){ dem++; st.replace(st.find(s),s.size(),"2"); if (dem>1) break; } if (dem==1) {res++; } }
void sinh(int i){ for (int j=0;j<=1;++j){ a[i]=j; if (i==n) xet(); else sinh(i+1); } }