Hình chữ nhật lớn nhất 2SSSE101 2T nneeeeee ` 14 BÀI 3 Trò chơi xâu KY Uf csecescescsscesesecsssesesssssesssecsseccasecssvsssssesssesssusesisesssessstesssivesiresssitessansessstecssneee 15 - BÀI 4 Khoanh vùng phân loại - - Q n n HS HT nH sgk krsen TH T90 0 E0 ng kg: 16 LỜI GIẢI ĐỀ SỐ 01 ĐỀ THỊ HSG LỚP 9 TỈNH BÌNH ĐỊNH NĂM HỌC 2022 - 2023 -ccccccei 17 BÀI 1 Cặp số tương đồng - - LH HT ng TH ng ng HT TH ng no HH 51551 g3 17 Hình chữ nhật lớn nhat ooo cece cccceccccecsccccsccssecsucseseessueccsscssevscecececcauseuesecsceuserevsraseasersseans 18 BÀI 3 Trò chơi xâu Ký TỰ HH HH HH HH HH TH HT Tá Tá TH T TT n2 1c, 19 BÀI 4 Khoanh vùng phân loại -.- ccek++s sec, &=
Trong mặt phẳng Oxy vẽ hỡnh trũn tõm ỉ bỏn kớnh R Ta xỏc định cỏc hỡnh chữ nhật cú tọa độ nguyờn, năm trờn hỡnh trũn (ỉ, R) và cỏc cạnh song song với cỏc trục tọa độ (đỉnh của hình chữ nhật năm trong hoặc nắm trên đường tron)
Lưu ý: e - Hình vuông là hình chữ nhật có 2 cạnh băng nhau
Né lới eô_ Điểm M(xạ,7o) nằm trong hoặc năm trờn đường trũn (0, R) khi và chỉ khi cỏc tọa độ của nó thỏa mãn 4x4 + yộ < R
Yêu cầu: Xác định giá trị lớn nhất về diện tích trong các hình chữ nhật thỏa mãn yêu câu trên an Dữ liệu: vào từ file DIENTICH.INP chứa một số nguyên dương R (R < 10)
| Kết quả: Một dong duy nhất chứa hai số nguyên dương d và L cách nhau khoảng trăng
| Trong đó d:.chỉ số của phân tử đâu tiên trong đoạn; L: số phân tử trong đoạn (chiêu đài đoạn)
Nếu vô nghiệm thi in ra số 0
— DIENTICH.INP | DIENTICH.OUT Giai thich
5 48 Hình chữ nhật có diện tích lớn nhất là 48 có
3 | 16 Hình chữ nhật có diện tích lớn nhất là 12 có đỉnh là (—2,2); (—2,—2); (2,—2); (2,2)
3t bài nam trong hinh tron (0, 3)
~ 1 QO Không có hình chữ nhật tọa độ nguyên năm
7 số BÀI 3 Trò chơi xâu ký tự eủ 7
Bạn cú một xõu gồm ẹ ký tự Đầu tiờn, bạn được sắp xếp lại ký tự trong; xõu theo một
107 thứ tự bất kỳ Sau đó, hãy chia xâu ký tự này thành chính xác k xâu ký tự liền tiếp không rỗng sao cho xâu ký tự có thứ tự từ điển lớn nhất là nhỏ nhất có thể
{ tim Xâu A có thứ tự từ điển nhỏ hơn B khi thỏa một trong những điều kiện sau: e A là tiền tố của B và A khác B.: e_ Tôn tại vị trí í (1 < ¡ < min(|A|, |B|)) sao cho A[í] < B[i] va Ali] = BỮ] với mọi
J (1 > n; for (int i=@; i> a[i]; kq+=a[1]›
} sort(a,atn) ; for (int i=@; i*2> n;3
* Chương trình minh họa bằng ngôn ngữ lập trình Python: import sys sys.stdin = open("cpl.inp","r") sys.stdout = open("cpl.out", “w" ) n = int(input()) k = int(n ** 0.5) print(k // 2 +k % 2)
MALE tN ST MA eH SAE an se an
B thud¢ r qua tho la 3 gia
Phõn tử lượng -22-22Enn HH HH rrreeeeneeee ơ
Nga mot tro ch cứu, nhóm Một _ mâu được trong N qu dura hai qu
Ngự bóng khác Tua Ban hay 1a Yêu
Dữ e Do tro: e Do qui đã trông ù l đền n ê nhau là
MỚI NƯỚC ƯỚi nước là vòi thứ nước của
0) lộng như đó - rơng ứng
_ HANGCAY.INP | HANGCAY.OUT Giải thích
Vai | “TW e Vòi nước | dat tại cây thứ 2, có thê tưới nước cho các cây thứ: ], 2, 3, 4 ec Vòi nước 2 đặt tại cây thứ 5, có thê tưới nước cho các cây thứ: 4, 5, Ó
Vậy có 6 cây được tưới nước
Giới hạn: e_ Có 30% số test ứng với 30% số điểm thỏa mãn 2 < ?t < 200; m = 1
—e Có 30% số test ứng với 30% số điểm thỏa mãn 2 < n < 200; 2 < m < n; không có hai vòi nước trở lên có thể cùng tưới nước cho 1 cay e Có 40% số testứng với 40% số điểm thỏa mãn 200 < n < 2000;2 < rn <
BÀI 3 Trò chơi chọn bóng
Ngày thành lập Doan 26/3 sắp đến Tuấn cùng nhóm bạn của mình được giao thiết kế một trò chơi trí tuệ dành cho các đoàn viên trong trường Sau một thời gian tìm hiểu và nghiên cứu, nhóm của Tuân đã xây dựng một trò chơi có nội dung như sau: | Mot ré bong co n qua bong Các quả bong duoc danh s6 tir 1 dénn Qua bong thu i co Ậ - màu được mã hóa bởi một số nguyên dương c¡ (1 < c¡ S k), trong đó k là số màu khác nhau trong n qua bong Mỗi lân chơi, người chơi sẽ chọn hai quả bóng khác màu trong rô bỏng và dua hai qua bong nay ra khoi rô
Người chơi sẽ dung lại khi trong rõ khong còn quả bóng nào hoặc không có hai quả bóng khác màu Số bóng được lấy ra khỏi rô là số điểm của người chơi
Tuan cung nhom ban muốn biết người chơi có thể đạt được điểm lớn nhất là bao nhiêu?
Bạn hãy lập trình để tìm kết quả này nhé
Yêu cầu: Đưa ra số điểm lớn nhất mà người chơi có thê nhận được
Dữ liệu: Vào từ file CHONBONG.INP gồm: © Dong 1 ghỉ hai số nguyên n và k (2 < k GQ) W ơ 5 e Lan 1: Chon qua bóng thứ I và thứ 3 voi ma mau tương ứng là 3 va 1 e Lan 2: Chon qua bóng thứ 2 và thứ 4 _VỚI mã mảu tương ứng là 3 và 2
Trong rô bóng lúc này không còn quả bóng nảo
Trò chơi kết thúc và người chơi được 4 điểm Đây là số điểm cao nhất mà người chơi có thể nhận được
T đánh gi chuyên câu kỹ : dựng th
X (gom trong ch trong cl
Vi xuất hiệ, ki tue xu
Giới hạn: ¢ Có 20% số test ứng với 20% số điểm thỏa mãn 2 < n < 2000; k = 2 e - Có 30% số test ứng với 30% số điểm thỏa mãn 3 < n < 2000; k = 3 e Cú 30% số test ứng với 30% số điểm thỏa món 4 < n < 2000; 3 < k> S >> X;3 | while (s.find(x) != string :: npos)
{ int k = s.find(x); s.replace(k,x.size(),"_"); ans++;
* Chương trình mỉnh họa bằng ngôn ngữ lập trình Python:
39 import sys sys.stdin = open("arn.inp","r") sys.stdout = open("arn.out”, “w") s = input().replace('\n','"') xX = input().replace('\n',"") ans = @ while (s.find(x) > -1): | hmi ans += 1;
Video dài Z s, dung lượng phat 1a X MB/s, suy ra tổng dung lượng cần tải để xem hết video là: h = Z * X (MB); dung lượng phát nhà An là ŸY MB⁄s, suy ra tổng dung lượng cần tải đề xem hết video ở nhà An là k = Y * X (MB)
Vậy dung lượng cân tải trước sẽ là h = h- k MB
Khi đó thời gian cân tải trước sẽ là: = nêu h : y, và A + 1 nêu h không chia hết cho + Độ phức tạp Ó(1) |
Chủ đề: Cau tric tuyén tinh
* Chuong trinh minh hga bang ngôn ngữ lập trình C++:
#define 11 long long using namespace std; double x, y, Z; int main()
{ freopen("TBG.inp", "“r", stdin); freopen("TBG.out", “w", stdout) ; cin >> x >> y >> Z; | double h=x *z - y*z; cout > m >> n; cout > m >> Nn; for (int i=1; i> a[1]; sort(a+1, a+m+1, greater()); for (int i=1; i vk: e Néuilasdé nguyên to: s o_ Duyệt ƒ là các bội của í và j < k:
#defin using | int c[l int n, int ma
= Nếu trước đó j chưa nhận có ước nguyên tố nào thì ƒ sẽ nhận ¡ là ước, tức là í chính là thừa sô nguyên tô nhỏ nhât khi phân tích 7 thành tích các thừa sô nguyên tô, khi đó cnt[Í] = cnt[i] + 1;
=_ Đánh dấu j đã nhận í là ước ` Độ phức tạp: O(k * logk)
* Chương trình mình họa bằng ngôn ngữ lập trình C++:
#define N 1000000 using namespace std; int c[N+2], cnt[N+2]; int n, k; int main()
{ freopen("zfactor.inp","r",stdin) ; freopen("zfactor.out", “w",stdout) ; cin >> n >> k; for (int i=2; i*i ` hémidon nmộtước = hong int a, b, ans; void khoitao()
{ fi11(c+2,c+N+1,1); for (int i=2; i*i bs _ si for (int x = a; X 2) ans++; cout @): s = 10 * s + x & 10; x //= 10; return s; | ans = 0; _ | ` for x in range(a,b+1): | | if (x == daonguoc(x) and cnt[x] > 2): ans += 1; print(ans)
BAI 3 Đếm cặp phần tử
‘Su dung chiến lược “lùa bò vào chuồng” (đếm phân phối) để đếm số lượng các phân tử khi xét tr a[1] — afi] va hru vao mang cnt[a[t]]
Khi xét dén phan tt ali]: |
- Nếu a[í] < k thì đáp án sẽ được cộng thêm cnt[a[i]]
-_ tăng số lượng phân tử có giá tri 14 a[i] bang lénh cnt[a[i]] += 1 Độ phức tạp O(n)
* Chuong trinh minh hoa bang ngôn ngữ lập trình C++:
#define N 1000000 _ #define 11 long long using namespace std;
11 cnt[N+2]; int n, k; ll ans; int main()
{ freopen(“cappt.inp","r",stdin) ; freopen("cappt.out","w",stdout) ; cin >> n >> k; | for (int x,i=1; i> x; if (x < k) ans += cnt[k-x]; cnt[x]++; a cout n >> m >> k;
{ string s; cin >> S; lla=s Zk; a = du(a,m,k); tong += a; ans += Mp[tong % k];
* Chương trình mình họa bằng ngôn ngữ lập trình Python: import sys sys.stdin = open("doancon.inp", "r") sys.stdout = open("doancon out", "w" ) n, m, k = map(int,input().split()) a= [0] + List(map(int, input().split())) tong = 9; dic = {0:1} ans = @; def du(b,m,k): if (m == 1): return (b % k) r = du(b,m//2,k) r=(r*r) 5% k; if (m% 2 == 1): r=(r*b) 5 k; return r; for i in range(1,n+1): afi] = afi] 5% k; afi] = du(a[i],m,k); tong += a[i]; if (dic.get(tong % k) != None): ans += dic[tong % k];_ dic[tong % k] += 1; else: | dic[tong % kị = 1; print(ans) ;
80 chờ Ad arab big ake ipa ae Beg co a ơ_- ơ tte a SoA AES ope BPP, TH C0 r0 0009 Nhu THẾ g VĂN VỀ ơ—.~.ằằ `
BAI: nêu ra đời và tổng C tông b nêu c‹ không ĐỀ SỐ 08 ĐỀ THỊ HSG LỚP 9 TỈNH LÂM ĐỒNG
‘Bai | Tên bài Tén file Tén file input Tén file output Diém
1 | Tính tổng TONG.* TONG.INP TONG.OUT 5
Giá thuyét | GOLDBACH.* | GOLDBACH.INP | GOLDBACH.OUT |_ 5
3 | Truy van téng | QUERY.* QUERY INP QUERY.OUT 5
4| Biểu diễn văn | VANNGHE.* | VANNGHE.INP | VANNGHEOUT | 3 nghệ
Dấu * là PY hoặc CPP tủy theo ngôn ngữ lập trình là PY THON hay C++
Cho số tự nhién n Viét chương trình tính tông:
Dữ liệu: vào từ ủle TONG.INP chứa duy nhất một số tự nhiờn ‹! (2 < 7: < 1029)
Két qua: ghi ra file TONG.OUT mot số nguyên duy nhất là kết quả cần tìm
Đếm cặp phần tử ơ 76
Cho dãy sô tự nhiện ôm N phân tử đị, đ›, , đụ Và số tự nhiên K
Yêu cầu: Đếm số cặp chỉ sé (i,j) mai > n >> k; for (int i=1; i> a[1]; a[9] = -inf; a[n+1] = inf; dp[9] = 1; for (int i=1; i> S >> X;3 | while (s.find(x) != string :: npos)
{ int k = s.find(x); s.replace(k,x.size(),"_"); ans++;
* Chương trình mỉnh họa bằng ngôn ngữ lập trình Python:
39 import sys sys.stdin = open("arn.inp","r") sys.stdout = open("arn.out”, “w") s = input().replace('\n','"') xX = input().replace('\n',"") ans = @ while (s.find(x) > -1): | hmi ans += 1;
Video dài Z s, dung lượng phat 1a X MB/s, suy ra tổng dung lượng cần tải để xem hết video là: h = Z * X (MB); dung lượng phát nhà An là ŸY MB⁄s, suy ra tổng dung lượng cần tải đề xem hết video ở nhà An là k = Y * X (MB)
Vậy dung lượng cân tải trước sẽ là h = h- k MB
Khi đó thời gian cân tải trước sẽ là: = nêu h : y, và A + 1 nêu h không chia hết cho + Độ phức tạp Ó(1) |
Chủ đề: Cau tric tuyén tinh
* Chuong trinh minh hga bang ngôn ngữ lập trình C++:
#define 11 long long using namespace std; double x, y, Z; int main()
{ freopen("TBG.inp", "“r", stdin); freopen("TBG.out", “w", stdout) ; cin >> x >> y >> Z; | double h=x *z - y*z; cout = k): print (int(n*m*@.8) ) else: print(int(min(n*m, k*m*0@.8)))
BÀI 2 Số chính phương lẻ
Gọi x là số chính phương thuộc [1, n], tức là 1 < x < n suy ra 1 < Vx < vĩ
Vậy 56 lượng các số chính phương thuộc [1,7] là [vn], suy fra số lượng các số chính phương lẻ thuộc [1, n] bằng số lượng số lẻ thuộc [1, [Vn]]
'Tính tổng các số chính phương lẻ:
Duyệt ¡ =1 Vn: s=s+ix*i Độ phức tạp: O(Vm)
* Chương trình mình họa bằng ngôn ngữ lập trình C++:
#define 11 unsigned long long using namespace std; lion; int main()
{ freopen("cpl.inp","r",stdin); freopen("cpl.out","“w", stdout) ; cin >> n;3
* Chương trình minh họa bằng ngôn ngữ lập trình Python: import sys sys.stdin = open("cpl.inp","r") sys.stdout = open("cpl.out", “w" ) n = int(input()) k = int(n ** 0.5) print(k // 2 +k % 2)
MALE tN ST MA eH SAE an se an
B thud¢ r qua tho la 3 gia
Nhân viên B sẽ chọn ra những lá phiếu có giá trị tăng hơn kém nhau Ì đơn vị để sắp xếp, vì vậy khi xét đến giá trị x trong dãy mà trước đó chưa có giá trị x - 1 thi gia tri x sé được mở ở lượt sau, tức là số lượt sẽ được tăng thêm 1 don vi
Bàn luận thêm: Thực sự tác giả không rõ ý đồ của người ra đê là gì khi mà cho kích thước mảng lên đến 107, bởi lẽ riêng việc đọc dữ liệu (dù đã có các lệnh táng tốc) cũng bị quá thời gian Trong bản themis mà tác giả thử riêng có 2 test cuối tác giả thiết lập thời gian là 3 giay Độ phức tạp: o(n) Chi dé: Duyét |
_ * Chuong trinh minh hoa bằng ngôn ngữ lập trinh C++:
#define N int(1e7) using namespace std; int c[N+2]; int n, ans; int main()
{ sô chính ios_base::sync_with_stdio(9); cin.tie(@); cout.tie(9); freopen("phieu inp", "r", stdin); freopen("phieu.out", © w", stdout) ; cin >> n; for (int x,i=1; 1> afi]; sort (ati, a+n+1) ; for (int k = 2; k < nj k++)
{ for (int i=1; i> Ll ằ> r; for (int x=l3; x R: e_ Giá trị y sẽ được tính băng công thức: y = [VR# — x”] (công thức này luôn dam bao diém (x, y) nằm trên hình tròn (0, R)) e _ Cập nhật lại kết quả: gns = rnax(ans, 4 * x * y) Độ phức tạp: Ó(F)
| * Chương trình minh họa bằng ngôn ngữ lập trình C++:
#include using namespace std; int R, ans=0; int main()
{ freopen("dientich.inp","r", stdin) ; freopen("dientich.out","w", stdout) ; cin >> R; | for (int x = 1; x < R; X++) { int y = sqrt(R*R - x*x); ans = max(ans,4*x*y) ;
* Chương trình minh hoa bằng ngôn ngữ lập trình Python:
_ import sys sys.stdin = open("dientich.inp","r") sys.stdout = open("dientich.out", "w")
R = int(input()) | ans = @ | for x in range(1,R+1): y = int((R*R - x*x) ** 0.5) ans = max(ans,4*x*y) print(ans) |
BÀI 3 Trò chơi xâu ký tự
20% số test có xâu ký tự gồm toàn chữ cái a: rục tọa “uc Sẽ có 2 trường hợp: ~.⁄ phăng e Nêu N: K thì xâu kêt quả sẽ chứa K chữ cái 4; tư bên
| e Ngược lại thì xâu kết quả sẽ chứa K + 1 chữ cái a
29% sé test tiép theo c6 K = N: | stri
Kết quả bài toán chính là ký tự lớn nhất trong xâu s bool
60% số test cũn lại khụng cú ràng buộc ứỡ thờm: Đâu tiên, đêm tân sô của môi chữ cái xuât hiện trong xâu s, trong đó c[x] là tân sô của } ký tự x có trong xâu s _ hà
Qui ước: a â 0,b â 1, ơ ZO 2S, tức là nếu xõu s = "abab" thỡ c[0] = 2,c[1] 2,c[2] = - =c[25] = 0 |
Sử dụng một mảng S¿[ ] gồm k phâẩn tử để lưu lại các xâu được phân chia
Bây giờ sẽ rải déu 1 lượt các ký tự từ đầu dãy c[ ] ra K xâu
Day nẽ ố.ốa sa 182 BÀI 3 Bánh mỳ và bánh T110 10K 1 611113 tt TT 1111511511117 1110 183 BÀI 4 Giờ học giáo dục thể chất - LỜI GIẢI ĐỀ SỐ 17 ĐỀ THỊ HSG CẤP TỈNH THCS TỈNH QUẢNG NINH NĂM HỌC 2022 - 2023
} | return T; int main() freopen("bpairs.inp", "rn", stdin); freopen("bpairs.out","w", stdout) ; cin >> n; for (int x, i = 13 i 1_
= hie Độ phức tạp thuật toán O(n * 10°) re
Gọi k > 1 là ước của đ: | import e Nếu k⁄5‹ st
Quan sát hình trên: : | ror
+x la phần giá trị mà b cần phải tăng thêm của b để b trở thành bội của k | ar
+ Dê thây: x= (k—b% R)% K £ eô Nếu k > b: khi đú b cần tăng thờm một khoảng x dộ bang k |
Vậy công thức cuối cùng là: x= (k-b%k) HK , fo Di
Vậy ý tưởng giải bài toán được tóm tắt lại như sau: | BÀI ¿
- Khởi tạo kết quả: ans = (ứ- b% a)% a ‡
- Duyét cdc gid tri k > 1 laude cla a: ans = min(ans, (k- k% b)% R)
* Chương trình minh họa bằng ngôn ngữ lập trình C+r:
#define 11 long long using namespace std; ‘ int n; - int main() -
{ | : ` freopen("door.inp","r",stdin) ; : _ 7% freopen("door.out", “w", stdout) ; cin >> n; | ‘ for (int t=1; t> a >> b; : : int ans = (a - (b % a)) 5% a4; : " for (int i=2; i*i > n; for (int i=1; i> afi]; for (int i=1; i> n >> k; for (int i=1; i> a[1]; a[9] = -inf; a[n+1] = inf; dp[9] = 1; for (int i=1; i> n >> a >> Db; for (int x,i=1; i> n >> k; for (int i=2; i*i ` hémidon nmộtước = hong int a, b, ans; void khoitao()
{ fi11(c+2,c+N+1,1); for (int i=2; i*i bs _ si for (int x = a; X 2) ans++; cout @): s = 10 * s + x & 10; x //= 10; return s; | ans = 0; _ | ` for x in range(a,b+1): | | if (x == daonguoc(x) and cnt[x] > 2): ans += 1; print(ans)
BAI 3 Đếm cặp phần tử
‘Su dung chiến lược “lùa bò vào chuồng” (đếm phân phối) để đếm số lượng các phân tử khi xét tr a[1] — afi] va hru vao mang cnt[a[t]]
Khi xét dén phan tt ali]: |
- Nếu a[í] < k thì đáp án sẽ được cộng thêm cnt[a[i]]
-_ tăng số lượng phân tử có giá tri 14 a[i] bang lénh cnt[a[i]] += 1 Độ phức tạp O(n)
* Chuong trinh minh hoa bang ngôn ngữ lập trình C++:
#define N 1000000 _ #define 11 long long using namespace std;
11 cnt[N+2]; int n, k; ll ans; int main()
{ freopen(“cappt.inp","r",stdin) ; freopen("cappt.out","w",stdout) ; cin >> n >> k; | for (int x,i=1; i> x; if (x < k) ans += cnt[k-x]; cnt[x]++; a cout n >> m >> k;
{ string s; cin >> S; lla=s Zk; a = du(a,m,k); tong += a; ans += Mp[tong % k];
* Chương trình mình họa bằng ngôn ngữ lập trình Python: import sys sys.stdin = open("doancon.inp", "r") sys.stdout = open("doancon out", "w" ) n, m, k = map(int,input().split()) a= [0] + List(map(int, input().split())) tong = 9; dic = {0:1} ans = @; def du(b,m,k): if (m == 1): return (b % k) r = du(b,m//2,k) r=(r*r) 5% k; if (m% 2 == 1): r=(r*b) 5 k; return r; for i in range(1,n+1): afi] = afi] 5% k; afi] = du(a[i],m,k); tong += a[i]; if (dic.get(tong % k) != None): ans += dic[tong % k];_ dic[tong % k] += 1; else: | dic[tong % kị = 1; print(ans) ;
80 chờ Ad arab big ake ipa ae Beg co a ơ_- ơ tte a SoA AES ope BPP, TH C0 r0 0009 Nhu THẾ g VĂN VỀ ơ—.~.ằằ `
BAI: nêu ra đời và tổng C tông b nêu c‹ không ĐỀ SỐ 08 ĐỀ THỊ HSG LỚP 9 TỈNH LÂM ĐỒNG
‘Bai | Tên bài Tén file Tén file input Tén file output Diém
1 | Tính tổng TONG.* TONG.INP TONG.OUT 5
Giá thuyét | GOLDBACH.* | GOLDBACH.INP | GOLDBACH.OUT |_ 5
3 | Truy van téng | QUERY.* QUERY INP QUERY.OUT 5
4| Biểu diễn văn | VANNGHE.* | VANNGHE.INP | VANNGHEOUT | 3 nghệ
Dấu * là PY hoặc CPP tủy theo ngôn ngữ lập trình là PY THON hay C++
Cho số tự nhién n Viét chương trình tính tông:
Dữ liệu: vào từ ủle TONG.INP chứa duy nhất một số tự nhiờn ‹! (2 < 7: < 1029)
Két qua: ghi ra file TONG.OUT mot số nguyên duy nhất là kết quả cần tìm
“` ốc 6a nố an seri meet ee ee sushi xả 0 S2 030 18 tiệm SE 62-4 Mail nhi, nay TH tay sats ee ae RE RGR rT i ae aie VT TẾ Búi Fae “es ast ơ ee ties a ieee oe Mi ee EDN
Gia thuyét Goldbach do nha Toan hoc nguoi Dire Christian Goldbach (1690 — 1764) nêu ra vào năm 1742 trong một lá thư gửi tới Leonhard Euler, là một trong những bài toán lâu đời và nổi tiếng còn chưa giải được trong lý thuyết số nói riêng và Toán học nói chung
— Giả thuyết phỏng đoán rằng: “Môi số tự nhiên chẵn lớn hơn 2 có thể biểu diễn bang tổng của hai số nguyên tô” |
Yêu câu: Viết chương trình kiểm tra phỏng đoán của Goldbach
Tặng quà susuesaeataqesceaasonsesuapsesodaatens `
Trỏ ẹ mảnh  nhau lên được tất ‹
UE ORS RRB, oh Rae, ROR apis tranh, hai tranh va t
DE SỐ 09 ĐỀ TH! TUYEN SINH VAO LOP 10 CHUYEN TIN
_TỈNH BÌNH DƯƠNG NĂM HỌC 2023 - 2024
Tổng quan dé thi Bài Tên bài Tên file Tên fileinput | Tên file oufput | Điểm
1 | Tìm xâu ký tự STRING.* | STRING.INP STRING.OUT 4
2 | Ghép tranh PICTURE.* | PICTURE.INP | PICTURE.OUT 4
3 | Cách nhiệt ‘| INSUL.* INSUL.INP INSUL.OUT 6
4 | Chia qua GIFTS.* GIFTS.INP GIFTS.OUT 6
Dấu * là PY hoặc CPP tùy theo ngôn ngữ lập trình là PY THON hay C++
BÀI 1 Tìm xâu ký tự
Trong giờ sinh hoạt của lớp 9A, cô giáo chủ nhiệm chia học sinh thành hai tổ đề tổ chức các trò chơi tập thể và bạn An được chia vào tổ 1 Cô giáo cho hai chuỗi ký tự 4, B chứa các chữ cái tiếng Anh (có cả in hoa và in thường) Chuỗi 4A có đội đài n, chuỗi B có độ dai m Nếu tổ nào đếm số lần xuất hiện của hoán vị chuối A trong chuỗi P thì sẽ đành chiến thang Yêu cầu: Bạn hãy giúp An tìm đáp án của trò chơi trên
Dữ liệu: vào từ file STRING.INP gdm: © Dong 1: chita 2 số nguyên dương n,m(n < 103,m < 10°); e Dong 2: chira xau A; e Dong 3: chia xau B
Kết quả: ghi ra ủle STRING.OUT chứa 1 số nguyờn là đỏp ỏn của bài toỏn
STRING.INP STRING.OUT Giải thích
4 11 2 Hoan vi xau A xuat hién tai vi tri cAda oe | tha 4 thir 5 trong xau B
Trò chơi thứ hai của lớp 9A là trò chơi ghép tranh Cô chủ nhiệm cho một bức tranh cóc
N mảnh ghép và một sé nguyen duong K (1 m >> n3 cin >> X; cin >> S; vector Cx(52), Cs (52); for (auto ch: Xx) | if ('A' > k; dp[9] = 1; for (int j = 13; j > n; for (int i=@; i> a[i]; kq+=a[1]›
} sort(a,atn) ; for (int i=@; i*2 1): print(n,1) phantich(n) |
Gọi s[i] = a[1] + a[2] + + a[ù] - Đài toỏn thành đờm cặp (ẽ,7) sao cho a[l] + all + 1] + -+ a[r] = 0 sẽ tương đương với đêm cặp (,r) sao cho: s[r]- s[l — 1] = 0 slr] = s[I — 1] |
Bài toán có thể giải quyết bằng chiến lược “lòa bò vào chuông”, trong chương trình tác giả sử dụng cầu trúc dữ liệu map (đối với C+t) và Dict (đôi với Python) để giải nên độ phức tạp của thuật toán là O(nlogn) (với C++) va O(n) (véi Python)
* Chương trinh minh hoa bang ngôn ngữ lập trình C++:
#define 11 long long using namespace std; lls, ans; map Mp; int n; int main() freopen("tong.inp","r", stdin); freopen("tong.out","w", stdout);
* Chương trình minh họa bằng ngôn ngữ lập trình Python: import sys sys sys stdin = open("tong.inp","r") stdout = open("tong oụt, w}) int(input())
11st (map (int, input() split())) ans = 9;
S += X; if (dic.get(s) != None): ans += dic[s]; dic{s] += 1 else: dic[s] = print(ans)
198 thư‹ duc Mat ĐỀ SỐ 19 ĐỀ THỊ TUYỂN SINH VÀO Lớp CHUYÊN TỈNH THANH HÓA
Bài 2_| 3| L | Phân thưởng tap Kê hoạch luyện Sô đẹp _ Tên bài | PTHUONG.* | PTHUONG INP PTHUONG.OUT | KHLT.* SODEP.* Tên file Tên file input KHLT.INP SODEP.INP Tên file output KHLT.OUT SODEP.OUT Điểm 2 3 4
4 | Biéndéix4u | BDX* BDX.INP BDX.OUT 1
Dau * 1a PY hoac CPP tuy theo ngén ngữ lập trình là PYTHON hay C++
Lam là một học sinh có thành tích cao trong kỳ thi tuyến sinh vào 10 chuyên Tin Phần thưởng cho em là một phần mềm diệt virus Mã số của phân mềm là một dãy gôm r số nguyên dương đ,a;, ,a„ Đề cài đặt được phân mềm, Lam phải nhập mật khâu của phân mềm
_ Mật khâu là số lượng các số chia hết cho 90 của dãy số trên
Yêu câu: Hãy tìm mật khẩu để cài đặt phân mềm
Dữ liệu: vào từ file PTHUONG INP có cấu trúc: e Dong dau tién 1a một số nguyên dương ?; | e 7 dòng sau, dòng thứ ¡ ghi số nguyên nguyên dương a;,
Kết quả: ghi ra ủle PTHUONG.OUT một số nguyờn đương là mật khẩu tỡm được
Rang budc: ¢ Có 85% số điểm tương tmg voi: 1 > S; | if (tongcs(S) % 9 == @ && S[S.size()-1] == '@') ans++;
* Chương trình minh họa bằng ngôn ngữ lập trình Python: i= import sys
| Sys.stdin = open("pthuong inp", "r")
Sys.stdout = open("pthuong.out", “w") qua n = int(input())
| if (x % 98 == @): ans += 1 print(ans) cho
Duyệt từng SỐ k từ 11 trở đi, kiểm tra k có phải sô đẹp hay không, nếu là số đẹp thì tăng đ lên I đơn vị cho đến khi đ bằng N thì thôi : | Chi dé: duyét thé | * Chương trình minh họa bằng ngôn ngữ lập trình C++:
#define N 1000 using namespace std; int prime[N+2];
— int n; void sangnto() fill(prime + 2 2, prime + 1001, 1);