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 đề: KTLT4. Thành luỹ Tue May 10, 2022 4:25 pm
KTLT 4) THÀNH LUỸ Để đảm bảo an ninh chống lại sự tấn công của các bộ tộc khác tù trưởng xưa Fladland quyết định cho xây dựng các thành luỹ quanh các điểm dân cư đông đúc. Theo lời khuyên của thầy phù thuỷ, tên của các thành luỹ phải được chọn là một xâu con các ký tự liên tiếp nhau của tên thiêng W. Ví dụ, nếu W là ‘baobaab’, thì tên của thành luỹ có thể là ‘oba’, còn ‘bab’ không thể dùng để đặt tên. Dĩ nhiên không được đặt tên trùng nhau. Tù trưởng muốn biết là có thể xây dựng được tối đa bao nhiêu thành luỹ dựa vào số tên có thể đặt. Dữ liệu: Vào từ file văn bản BASTION.INP gồm một dòng chứa tên thiêng W, trong đó chỉ có các chữ cái la tinh thường và có độ dài không quá 1000. Kết quả: Đưa ra file văn bản BASTION.OUT một số nguyên - số lượng tên khác nhau. Ví dụ: BASTION.INP baobaab BASTION.OUT 23
Admin Admin
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 đề: Re: KTLT4. Thành luỹ Thu May 12, 2022 2:30 pm
Thuật toán: - Tạo các xâu con liên tiếp của xâu W lưu vào mảng C có K phần tử: (string C[100000] k = 0; for(i,0,s.size()) for(j,i,s.size()) { string tam = saochep(w, i, j-i+1); //Sao chép trong xâu w từ vị trí i đến vị trí j. k++; c[k] = tam; } - Đếm các phần tử khác nhau của mảng C: + Sắp xếp mảng C có K phần tử thành dãy tăng. + For (1,K) nếu c[i] <> c[i+1] thì res++; - Đưa res ra.
hahung413
Tổng số bài gửi : 16 Join date : 10/05/2022
Tiêu đề: Re: KTLT4. Thành luỹ Thu May 12, 2022 2:54 pm
Code:
#include <bits/stdc++.h>
using namespace std;
string s,c[1000001];
int k =0,dem;
void nhap() { getline(cin,s); } void sol() { for(int i =0; i < s.size(); i++) for(int j = i; j < s.size(); j++) { string tam = s.substr(i, j - i +1);
c[++k] = tam; ;
} sort(c + 1, c + k + 1); for(int i =1; i <= k; i++) if(c[i] != c[i + 1]) ++dem; cout<<dem; } int main() { ios_base::sync_with_stdio(0); nhap(); sol(); }
Admin and dobinhminh01 like this post
trinh
Tổng số bài gửi : 13 Join date : 10/05/2022
Tiêu đề: Re: KTLT4. Thành luỹ Thu May 12, 2022 2:55 pm