Categories: Thủ Thuật Mới

Review Cho số từ nhiên n không quá 7 chữ số hay in ra giá trị gấp đôi của n Mới nhất

Mục lục bài viết

Kinh Nghiệm Hướng dẫn Cho số từ nhiên n không thật 7 chữ số hay in ra giá trị gấp hai của n 2022

Update: 2022-04-13 05:53:11,Quý khách Cần tương hỗ về Cho số từ nhiên n không thật 7 chữ số hay in ra giá trị gấp hai của n. Bạn trọn vẹn có thể lại Thảo luận ở phía dưới để Mình đc lý giải rõ ràng hơn.


Tóm lược đại ý quan trọng trong bài

Chuyên mục: Bài tập C

B̀I 1.2.3: ĐOÁN SỐ TIẾP THEO
An và Bình chơi trò chơi số học đơn thuần và giản dị. Dãy số mà An đưa ra là A =
1,1,3,4,5,9,7,16,9,…và đố Bình tìm ra số tiếp theo trong dãy đó. Rất nhanh gọn,
Bình tìm kiếm được số tiếp theo là số 25. Bình đố lại An, nếu cho trước một số trong những k không thật
100, hãy tính số đứng vị trí đó trong dãy đã cho (thứ tự trên dãy tính từ là một trong những). Bạn hãy giúp
An tính ra kết quả trên.
Dữ liệu vào:
Dòng đầu là số bộ test, không thật 20. Mỗi bộ test ghi trên một dòng số nguyên
dương k.
Kết quả:

Với mỗi bộ test, đưa ra trên một dòng giá trị ở vị trí k của dãy.

B̀I 1.1.8: MÁY BÁN H̀NG TỰ ĐỘNG
Khi sắm sửa bằng máy bán thành phầm tự động hóa, người tiêu dùng sẽ trả bằng một số trong những tiền chẵn lớn
hơn hoặc bằng giá của thành phầm. Máy sẽ tính toán để trả lại số tiền thừa cho những người dân tiêu dùng.
Giả sử trong máy chỉ có ba mệnh giá tiền là một trong những dollar, 5 dollar và 10 dollar với quy ước
mỗi lần trả chỉ được phép dùng thấp hơn 5 tờ 1 dollar và thấp hơn 2 tờ 5 dollar.
Hãy viết chương trình tính số tiền mỗi loại mà máy bán thành phầm tự động hóa phải trả lại cho
người tiêu dùng.
Dữ liệu vào:
Dòng thứ nhất là số bộ test, mỗi bộ test ghi trên một dòng hai số nguyên không âm
là giá của thành phầm và tổng số tiền người tiêu dùng đưa vào. Cả hai giá trị này đều

không vượt quá 105

Kết quả:
Với mỗi bộ test, viết ra màn biểu diễn số tiền cần trả của máy bán thành phầm tự động hóa theo
mẫu trong bộ test ví dụ tại đây. (Chú ý: giữa những số và những dấu luôn có đúng một
khoảng chừng trống, cả với dấu =, dấu * hoặc dấu +)
Ví dụ cho Input và Output:
Input
3
72 100
37 200

5 50

Output
28 = 2 * 10 + 1 * 5 + 3 * 1
163 = 16 * 10 + 0 * 5 + 3 * 1

45 = 4 * 10 + 1 * 5 + 0 * 1

code C : codepad/tZQuU9vw
.

B̀I 1.4.10: SẮP XẾP THÍ SINH
Hãy sắp xếp list thí sinh đã có trong file theo tổng điểm giảm dần.
Mỗi thí sinh gồm những thông tin:
 Mã thí sinh: là một số trong những nguyên, tự động hóa tăng. Tính từ là một trong những.
 Tên thí sinh, ngày sinh
 Điểm môn 1, điểm môn 2, điểm môn 3
Dữ liệu vào:
Dòng đầu chứa số thí sinh. Mỗi thí sinh viết trên 3 dòng:
 Dòng 1: Tên thí sinh
 Dòng 2: Ngày sinh
 Dòng 3,4,5: 3 điểm thi tương ứng. Các điểm thi đều đảm bảo hợp lệ (từ 0 đến

10).

Kết quả:
In ra list thí sinh đã sắp xếp theo tổng điểm giảm dần. Nếu 2 thí sinh bằng
điểm nhau thì thí sinh nào xuất hiện trước trong file sẽ viết trước. Mỗi thí sinh
viết trên một dòng gồm: mã, tên, ngày sinh và tổng điểm. Các thông tin cách nhau

đúng 1 khoảng chừng trống. Điểm tổng được làm tròn đến 1 số ít sau dấu phẩy.

codepad/shq26GhA

codepad/shq26GhA

B̀I 1.4.1: ĐẾM TỪ KHÁC NHAU
Viết chương trình đếm số từ rất khác nhau của một file văn bản.
Dữ liệu vào:
Gồm nhiều dòng, chỉ gồm có những vần âm.
Kết quả:
Viết ra số từ rất khác nhau trong file.
Ví dụ:
Dữ liệu vào
Xin chao cac ban
Xin moi cac ban tap trung hoc

tap

Kết quả
8

codepad/e6hRJS4y

TÌM CÁC VỊ TRÍ BẰNG NHAU CỦA HAI MA TRẬN
Cho hai ma trận vuông A và B chỉ gồm số nguyên dương cấp n . Hãy viết chương trình
tìm ra những vị trí bằng nhau trong hai ma trận (vị trí [i,j] sẽ là bằng nhau nếu
A[i,j]=B[i,j]).
Dữ liệu vào:
Dòng thứ nhất ghi số bộ test. Với mỗi bộ test: Dòng thứ nhất ghi số n; n dòng tiếp
theo ghi ma trận A; n dòng tiếp theo ghi ma trận B
Kết quả (ghi ra màn hình hiển thị):
Với mỗi bộ test ghi ra một số trong những nguyên dương m là số vị trí bằng nhau. m dòng tiếp
theo ghi hai giá trị chỉ số của từng cặp (cách nhau một khoảng chừng trống). (Chú ý: những

chỉ số đều tính từ 0 đến n-1).

Ví dụ:
Input
1
2
1 1
1 2
9 1

4 2

Output

2

0 1
1 1

codepaste/7m7i2j

CHUẨN HÓA XÂU HỌ TÊN

Một xâu họ tên sẽ là viết chuẩn nếu vần âm thứ nhất mỗi từ được viết hoa, những chữ
cái khác viết  thường. Các từ  cách nhau đúng một dấu cách và không tồn tại khoảng chừng trống
thừa ở đầu và cuối xâu. Hãy viết chương trình đưa những xâu họ tên về dạng chuẩn.
Dữ liệu vào:
Dòng 1 ghi số bộ test. Mỗi bộ test ghi trên một dòng xâu ký tự họ tên, không thật
80 ký tự.
Kết quả (ghi ra màn hình hiển thị):
Với mỗi bộ test ghi ra xâu ký tự họ tên đã chuẩn hóa.

Ví dụ:

Ví dụ:
Input
3
nGuYEN     vAN     naM
tRan   TRUNG          hiEU

vO    le   hOA   bINh

Output
Nguyen Van Nam
Tran Trung Hieu

Vo Le Hoa Binh

codepad/hAgyAjgG

Xây dựng tập thao tác với những số nguyên lớn (nhiều hơn thế nữa 20 chữ số)

codepad/GfC3uw3g

Rất nhiều số nguyên dương trọn vẹn có thể được màn biểu diễn thành tổng của một dãy những số nguyên liên tục.

Ví dụ:

6 = 1 + 2 + 3

9 = 5 + 4 = 2 + 3 + 4

Tuy nhiên, số 8 thì lại không thể màn biểu diễn được như vậy. Bài toán đưa ra là với mỗi số nguyên cho trước, hãy đếm xem trọn vẹn có thể có bao nhiêu cách màn biểu diễn số nguyên đó thành tổng của những số nguyên dương liên tục.

Input: Dòng thứ nhất ghi số bộ test, không to nhiều hơn 1000. Mỗi bộ test gồm có thứ tự bộ test, tiếp theo là một số trong những nguyên dương n nhỏ hơn 231

Output: Với mỗi bộ test, in ra màn hình hiển thị thứ tự bộ test, tiếp theo là số cách màn biểu diễn tìm kiếm được

Example

Input: 7 1 6 2 9 3 8 4 1800 5 987654321 6 987654323 7 987654325 Output:
1 1
2 2
3 0
4 8
5 17
6 1
7 23

Ý tưởng

Nhận thấy tổng liên tục từ x đến y có y-x+một thành phần bằng (y-x+1)(x+y)/2 = n nên (y-x+1)*(x+y) = 2n do đó ta kiểm tra những số là ước của 2n nhưng phải để ý là y-x+1 và x+y khác tính chẵn lẻ và y-x+1< x+y. Bài toán đưa về đếm số cặp x.y=2n mà x và y khác tính chẵn lẻ và x<y do đó duyệt từ là một trong những đến căn 2n là xong

Nguồn

spoj/PTIT/problems/BCPTICH/

Code
ideone/yv4kel

Trong trò chơi dò mìn, người ta cho trước một ma trận cấp n*m trong số đó có một số trong những quả mìn ở những vị trí nào đó. Nhiệm vụ của người chơi là xác xác lập trí của những quả mìn này dựa vào những ô xung quanh.

Trong bài này, bạn hãy viết chương trình chuyển từ ma trận n*m mô tả vị trí những quả mìn và những ô trống thành một ma trận khác trong số đó với mỗi ô trống sẽ xác lập xem có bao nhiêu quả mìn kề với nó.

Input: Có nhiều bộ test, mỗi bộ test khởi đầu bằng 2 số nguyên n và m (1<=n,m<=100). Tiếp Từ đó là ma trận cấp n*m trong số đó vị trí có mìn ghi lại bởi ký tự * còn không tồn tại là dấu chấm (.). Dòng ở đầu cuối của file Input chứa hai giá trị 0.

Output: Với mỗi bộ test, in ra  màn  hình  ma trận tương ứng trong số đó những vị trí có dấu chấm được thay bằng một số trong những nguyên cho biết thêm thêm số quả mìn kề với ô đó.

Example

Input: 3 2 .. .* .. 5 5 *.*.* ..*.. ***** ….. ..**. 0 0 Output:
11
1*
11
*3*3*
36*63
*****
24553
01**1

Ý tưởng: Duyệt và đếm

Nguồn

spoj/PTIT/problems/BCBOM/

Code

ideone/2n5Cxz

Một trò chơi được cho phép một người lựa chọn ra n số trong tầm từ là một trong những đến m. Nếu list lựa chọn ra đó trùng với list như ý thì người này sẽ trúng thưởng.

Bình là một người chơi rất tự tin, anh ta nhận định rằng dãy số như ý thường có quy luật là số sau phải to nhiều hơn tối thiểu gấp đôi so với số ngay trước nó trong list. Giả sử với n=4 và m=10 thì những dãy số như ý sẽ là:

1 2 4 8

1 2 4 9

1 2 4 10

1 2 5 10

Hãy viết chương trình giúp bình xác lập xem với những số nguyên n và m cho trước thì trọn vẹn có thể có bao nhiêu dãy số như ý theo quy luật trên.

Input: Dòng thứ nhất ghi số bộ test, không to nhiều hơn 100. Mỗi bộ test viết trên một dòng hai

số nguyên dương n và m. Giả sử n<=10, m<=2000 và n<=m.

Output: Với mỗi bộ test, in ra màn hình hiển thị 1 dòng theo hình thức:

Data set i: n m number

Trong số đó number là số dãy số như ý tìm kiếm được

Example

Input: 1 4 10 Output:
Data set 1: 4 10 4

Đặt số C[n][m] là kết quả của bài toán ta có

C[i][1]=0;

C[1][j]=j;

for(int i=2;i<=n;i++)

int k=pow(2,i-1);

for(int j=2;j<k;j++) C[i][j]=0;

C[i][k]=1;

for(int j=i+1;j<=m;j++) C[i][j]=C[i][j-1]+C[i-1][j/2];

Nguồn

spoj/PTIT/problems/BCLULIST/

Code

ideone/ChRPMP

Khi sắm sửa trên khu Long Street, Michael thường đỗ xe của tớ ở một vị trí nào đó và đi dạo vào shop. Bạn hãy giúp Michael chọn một chỗ đỗ xe để khoảng chừng cách phải đi dạo khi sắm sửa là nhỏ nhất.

Long Street trọn vẹn có thể coi như thể một đường thẳng mà toàn bộ những điểm sắm sửa là những điểm có tọa độ nguyên. Bạn sẽ phải trả phí cho từng lần đỗ xe ở một điểm đỗ, điểm đỗ là một điểm có tọa độ nguyên. Michael không thích trả tiền đỗ xe nhiều hơn thế nữa 1 lần và vì anh ta rất khỏe nên trọn vẹn có thể mang toàn bộ những túi xách, sản phẩm & hàng hóa mua được giữa những shop cần đi mà không tồn tại yếu tố gì.

Dữ liệu vào

Dòng thứ nhất chứa một số trong những nguyên 1 ≤ t ≤ 100 là số lượng bộ test. Mỗi bộ test gồm 2 dòng, dòng thứ nhất ghi số shop n mà Michael muốn qua sắm sửa, 1 ≤ n ≤ 20 và dòng thứ hai ghi n số nguyên là những điểm này trên phố Long Street, 0 ≤ xi ≤ 99.

Dữ liệu ra

Với mỗi bộ test, in ra trên một dòng khoảng chừng cách nhỏ nhất phải đi dạo với chỗ đỗ xe tối ưu.

INPUT
OUTPUT

2

4

24 13 89 37

6

7 30 41 14 39 42

152

70

Ý tưởng

Đọc đề có vẻ như rắc rối nhưng xét cho cùng đỗ xe bất kể nơi nào thì cũng phải đi một vòng về đầu rồi vòng về cuối và vòng lại xe nên quãng đường sẽ bằng 2*(max-min)

Nguồn

spoj/PTIT/problems/BCCAR/

Code

ideone/pD9RwC

Cho một list những số điện thoại cảm ứng, hãy xác lập list này còn có số điện thoại cảm ứng nào là phần trước của số khác hay là không? Nếu không thì list này được gọi là nhất quán. Giả sử một list có chứa những số điện thoại cảm ứng sau:

–          Số khẩn cấp:  911

–          Số của Alice: 97625999

–          Số của Bob:   91125426

Trong trường hợp này, ta không thể gọi cho Bob vì tổng đài sẽ liên kết bạn với đường dây khẩn cấp ngay lúc toàn bộ chúng ta quay 3 số đầu trong số của Bob, vì vậy list này là không nhất quán.

Dữ liệu vào

Dòng thứ nhất chứa một số trong những nguyên 1 ≤ t ≤ 40 là số lượng bộ test. Mỗi bộ test sẽ khởi đầu với số lượng số điện thoại cảm ứng n được ghi trên một dòng, 1 ≤ n ≤ 10000. Sau đó là n dòng, mỗi dòng ghi duy nhất 1 số ít điện thoại cảm ứng. Một số điện thoại cảm ứng là một dãy không thật 10 chữ số.

Dữ liệu ra

Với mỗi bộ tài liệu vào, in ra “YES” nếu list nhất quán và “NO” trong trường hợp ngược lại.

Ý tưởng: Dùng cấu trúc tài liệu cây thập phân để tàng trữ và kiểm tra

Nguồn

spoj/PTIT/problems/BCTELEPH/

Code

ideone/e.js/A15Vb4

ideone/A15Vb4

Trong cuộc thi ACM, những đội tranh tài với nhau. Thứ hạng của mỗi đội tùy từng: số lượng bài giải được và số điểm bị phạt (điểm phạt tùy từng thời hạn và số lần nộp bài trước lúc bài này được giải đúng). Điểm phạt bằng thời hạn nộp bài đúng cộng với 20 phút cho từng lần nộp sai. Nếu một bài không giải được thì những lần nộp sai bài đó không trở thành tính điểm phạt. Như vậy nếu đội giải đúng vào lần nộp thứ hai, sau 20 phút thì điểm phạt sẽ là 40 điểm. Đội thắng là đội giải được nhiều nhất, nếu có nhiều đội có số bài giải giống nhau thì đội bị phạt thấp hơn sẽ giành thắng lợi.

Input: Cuộc thi ACM lần này chỉ có 4 bài.

Dòng 1: số n tương ứng với số đội thi

Dòng 2 đến dòng n+1: Mỗi dòng ghi

….

Thành phần thứ nhất là tên gọi đội, không chứa dấu cách. Sau đó là thông tin về đội đó: p1Sub số lần đội nộp lời giải cho bài 1, p1Time là thời gian đội nộp đúng, nếu đội không giải đúng được bài 1 thì p1Time=0, tương tự với 3 bài còn sót lại.

Output: Ghi tên đội thắng, số bài giải được, số điểm phạt

Ví dụ cho Input và Output:

INPUT
OUTPUT

4

Stars 2 20 5 0 4 190 3 220

Rockets 5 180 1 0 2 0 3 100

Penguins 1 15 3 120 1 300 4 0

Marsupials 9 0 3 100 2 220 3 80

Penguins 3 475

Ý tưởng:

Dùng vòng lặp duyệt và tính theo công thức

Nguồn

spoj/PTIT/problems/BCTHIDAU/

Code

ideone/e.js/YyOPMX

ideone/YyOPMX

Cho dãy số nguyên A N thành phần, thỏa mãn thị hiếu:

–          Các thành phần có mức giá trị từ 1 đến N.

–          Các thành phần có mức giá trị đôi một rất khác nhau.

Một dãy con của dãy A là dãy được tạo thành từ dãy A bằng phương pháp xóa một số trong những thành phần liên tục (hoặc không thành phần nào) từ trên đầu dãy và cuối dãy A.

Ví dụ: Với dãy 5, 7, 2, 4, 3, 1, 6. Ta trọn vẹn có thể có một số trong những dãy con (chưa phải toàn bộ):

–          7,2,4,3 bằng phương pháp xóa một thành phần từ trên đầu và 2 thành phần từ lúc cuối

–          5,7,2 bằng phương pháp xóa 0 thành phần từ trên đầu và 4 thành phần từ lúc cuối

–          5,7,2,4,3,1,6 bằng phương pháp xóa 0 thành phần từ trên đầu và 0 thành phần từ lúc cuối.

–          1 bằng phương pháp xóa 5 thành phần từ trên đầu và một thành phần từ lúc cuối.

–          ……………..

Ta nói thành phần trung vị của dãy C có độ dài M (M là số lẻ) là thành phần ở vị trí ở chính giữa của dãy sau khoản thời hạn đã sắp xếp dãy C theo thứ tự tăng dần. Ví dụ: Phần tử trung vị của dãy 5,1,3 là 3.

Yêu cầu: Tìm số dãy con của Ađộ dài lẻthành phần trung vị là số B.

Dữ liệu:

–          Dòng 1: Hai số nguyên N (1≤N≤100 000) và số B (1≤B≤N).

–          Dòng 2: chứa N số nguyên cách nhau bởi dấu cách lần lượt là những thành phần của dãy A.

Kết quả:

–          Dòng 1:Số nguyên duy nhất là số dãy con của A có độ dài lẻ và có thành phần trung vị là B.

Ví dụ:

INPUT
OUTPUT
5 4

1 2 3 4 5

2
INPUT
OUTPUT
6 3

1 2 4 5 6 3

1
INPUT
OUTPUT
7 4

5 7 2 4 3 1 6

4

Giải thích test số ba: 4 dãy con của dãy A có độ dài lẻ và thành phần trung vị là 4 là: 4, 7,2,4, 5,7,2,4,3, 5,7,2,4,3,1,6.

Ý tưởng

Bước 1. Tạo một mảng a nhận những giá trị 1,-1 bằng phương pháp dyệt toàn dãy gặp thành phần to nhiều hơn b thì a[i]=1 nhỏ hơn b thì a[i]=-1

Bước 2. Tìm vị trí của b trong dãy là k và có a[k]=0.

Nhiệm vụ hiện giờ là tìm vị trí toàn bộ những cặp L,R sao cho L=k mà tổng dãy a từ L tới R bằng 0 như sau

Bước 3. Tạo ra 4 mảng LDuong, LAm, RDuong, RAm đều phải có n thành phần ban sơ toàn 0.

Bước 4. (xác lập RDuong, RAm) Xét vị trí từ k+1 tới n ta tính tổng từ a[k+1] tới a[i] nếu tổng bằng 0 thì đếm vào R, nếu tổng ra giá trị x ta xét 2 kĩ năng còn sót lại x >0 thì đếm vào dãy RDuong[x] tăng thêm ngược lại RAm[-x] tăng thêm

Bước 5. (xác lập LDuong, LAm) Xét vị trí từ k-1 tới 1 ta tính tổng từ a[k-1] lùi tới a[i] nếu tổng bằng 0 thì đếm vào L, nếu tổng ra giá trị x ta xét 2 kĩ năng còn sót lại x >0 thì đếm vào dãy LDuong[x] tăng thêm ngược lại LAm[-x] tăng thêm

Bước 6. Kết quả gồm có một là chính mỗi số b, và cặp 0 bên trái ghép với 0 bên phải là L*R và cặp từ k tới vị trí 0 bên phải là R và từ 0 bên trái tới k là L (ban sơ K=1+L*R+R+L) tiếp sau đó thêm vào đó những cặp có tổng bằng 0 bằng phương pháp ghép tổng i bên trái với -i bên phải và i bên phải với -i bên trái K=K+LAm[i]*RDuong[i]+LDuong[i]+RAm[i]

Nguồn

spoj/PTIT/problems/BCTEST16/

Code

ideone/gBJKIx

Cho một chuỗi nhị phân có n phần từ: x1, x2, x3, …, xn. Giá trị đếm bít liền kề được định nghĩa theo công thức:

AdjBC(x) = x1*x2 + x2*x3 + … + xn-1*xn.

tức là đếm những bít 1 mà bít liền kề cũng là bít 1.

Ví dụ:

AdjBC(011101101) = 3

AdjBC(111101101) = 4

AdjBC(010101010) = 0

Viết chương trình nhận vào hai số nguyên n và k và trả về số những xâu nhị phân x có n thành phần mà AdjBC(x) = k.

Ví dụ với n=5, k=2, ta có 6 xâu nhị phân độ dài 5 có AdjBC(x) = 2 là: 11100, 01110, 00111, 10111, 11101, 11011.

Dữ liệu vào:

Dòng thứ nhất ghi số 1<= n <=1000 là số bộ Test.

Mỗi bộ Test ghi trên một dòng khởi đầu là số thứ tự bộ test, tiếp sau đó là hai số nguyên dương n và k với n không to nhiều hơn 100, k<n.

Dữ liệu ra:

Với mỗi bộ test, ghi trên một dòng: số thứ tự bộ test, tiếp theo là số xâu nhị phân độ dài n có AdjBC(x) = k.

Ví dụ cho Input và Output:

INPUT
OUTPUT
10

1 5 2

2 20 8

3 30 17

4 40 24

5 50 37

6 60 52

7 70 59

8 80 73

9 90 84

10 100 90

1 6

2 63426

3 1861225

4 168212501

5 44874764

6 160916

7 22937308

8 99167

9 15476

10 23076518

Ý tưởng: Quy hoạch động hay Lập trình động (Dynamic Programming)

Đặt C[n][k] là số những xâu có độ dài n và có k số 1 đứng kề ngay sau số 1 tìm công thức truy hồi tính C[n][k]. (xem code)

Nguồn

spoj/PTIT/problems/BCBIT/

Code

ideone/75HDo2

Một đoạn số có tổng bằng nhau trong một dãy số là một nhóm những số theo như đúng thứ tự ban sơ trong dãy mà nếu nhóm với nhau thì sẽ cho ra cùng một giá trị tổng. Ví dụ với dãy: 2 5 1 3 3 7 thì ta trọn vẹn có thể nhóm thành: (2 5) (1 3 3) (7) cùng cho giá trị tổng là 7.

Chú ý: đoạn đặc biệt quan trọng chứa toàn bộ những thành phần của dãy cũng rất sẽ là một đoạn có tổng bằng nhau với chính giá trị tổng những số của dãy đó.

Yêu cầu: viết chương trình nhận vào những dãy số nguyên dương và trả về giá trị tổng nhỏ nhất trọn vẹn có thể của một đoạn tổng bằng nhau trong dãy.

Dữ liệu vào

Dòng thứ nhất chứa một số trong những nguyên 1 ≤ t ≤ 1000 là số lượng bộ test. Mỗi bộ test gồm có:

  • Dòng thứ nhất chứa thứ tự bộ test và số M (1≤ M ≤ 10000) là số thành phần của dãy.
  • Các dòng tiếp theo mỗi dòng ghi 10 số của dãy phân cách bởi 1 dấu cách. Dòng ở đầu cuối trọn vẹn có thể có thấp hơn 10 số.  (Các số trong dãy đều nhỏ hơn 20000).

Dữ liệu ra

Với mỗi bộ test, in ra trên một dòng gồm số thứ tự bộ test và tổng nhỏ nhất trọn vẹn có thể đạt được của những đoạn số có tổng bằng nhau.

Ý tưởng:

Bước 1: Đặt lại tổng

a[1]=a[1];

a[2]=a[1]+a[2];

a[3]=a[1]+a[2]+a[3]

a[n]= a[1]+a[2]+ … + a[n]

Bước 2: Gọi S=a[n] ta duyệt từ trên đầu đến dãy nếu nơi nào S chia hết cho a[i] thì tức là trọn vẹn có thể phân dãy ra những đoạn bằng nhau có tổng là a[i] (thực ra a[1]+…+a[i]) ta kiểm tra xem có đúng như vậy không trải qua vòng lặp tạo ra dãy a[i], a[i]*2 … a[i]*k=S, nếu vượt quá số thứ tự thì dừng không thỏa mãn thị hiếu, nếu tìm kiếm được thì xuất a[i]

Bước 3: Nếu không tồn tại thành phần nào thỏa mãn thị hiếu thì xuất ra S là toàn dãy

Nguồn

spoj/PTIT/problems/BCSEQ1/

Code

ideone/MZ1axj

Penny Game là một trò chơi đơn thuần và giản dị cho hai người chơi. Trò chơi này yêu cầu từng người chơi chọn một dãy duy nhất ba mặt đồng xu ví như HEADS TAILS HEADS (HTH). Các đồng xu sẽ tiến hành tung liên tục cho cho tới khi xuất hiện một trong hai dãy đã được chọn lúc đầu. Người chơi nào chọn được dãy xuất hiện thứ nhất sẽ là người thắng cuộc.

Bạn hãy viết một chương trình đọc một chuỗi 40 giá trị tung đồng xu liên tục và xác lập mỗi một chuỗi ba mặt đồng xu xuất hiện bao nhiêu lần. Hiển nhiên, ta sẽ đã có được 8 chuỗi 3 mặt đồng xu lần lượt là: TTT, TTH, THT, THH, HTT, HTH, HHT và HHH. Các chuỗi này trọn vẹn có thể xếp chồng lên nhau. Ví dụ ta có 40 xu liên tục ở mặt HEADS thì sẽ đã có được 38 chuỗi HHH xuất hiện

Dữ liệu: Dòng thứ nhất ghi số 1 ≤ P ≤ 1000 là tổng số bộ test. Mỗi bộ test gồm 2 dòng:

  • Dòng thứ nhất chứa số N là thứ tự bộ test.
  • Dòng thứ hai là dãy 40 ký tự mô tả chuỗi giá trị tung đồng xu trong số đó chỉ gồm hai ký tự là H và T. Không có bất kể dấu cách nào trong những dòng tài liệu vào.

Kết quả: Ghi ra màn hình hiển thị một dòng cho từng bộ test trong số thứ nhất là thứ tự bộ test. Tiếp theo là 8 số cho biết thêm thêm số lần xuất hiện của mỗi chuỗi 3 đồng xu theo thứ tự ở trên. Mỗi số viết cách nhau một dấu cách. Sẽ có 9 dấu cách trong những dòng kết quả.

Example

Input:

4

1

HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

2

TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT

3

HHTTTHHTTTHTHHTHHTTHTTTHHHTHTTHTTHTTTHTH

4

HTHTHHHTHHHTHTHHHHTTTHTTTTTHHTTTTHTHHHHT

Output:

1 0 0 0 0 0 0 0 38

2 38 0 0 0 0 0 0 0

3 4 7 6 4 7 4 5 1

4 6 3 4 5 3 6 5 6

Ý tưởng

Sử dụng một ôtômat có 4 trạng thái A,B,C,D ghi lại là đang ở đi được 2 ký tự nào, mọi khi đi thêm một ký tự thì tùy từng sẽ cộng vào bộ tương ứng và chuyển trạng thái ôtômat

Nguồn

spoj/PTIT/problems/BCPENNY/

Code

ideone/zoQy9I

Reply
9
0
Chia sẻ

Review Chia Sẻ Link Cập nhật Cho số từ nhiên n không thật 7 chữ số hay in ra giá trị gấp hai của n ?

– Một số Keyword tìm kiếm nhiều : ” Video full hướng dẫn Cho số từ nhiên n không thật 7 chữ số hay in ra giá trị gấp hai của n tiên tiến và phát triển nhất , Chia Sẻ Link Down Cho số từ nhiên n không thật 7 chữ số hay in ra giá trị gấp hai của n “.

Hỏi đáp vướng mắc về Cho số từ nhiên n không thật 7 chữ số hay in ra giá trị gấp hai của n

You trọn vẹn có thể để lại Comment nếu gặp yếu tố chưa hiểu nghen.
#Cho #số #từ #nhiên #không #quá #chữ #số #hay #giá #trị #gấp #đôi #của Cho số từ nhiên n không thật 7 chữ số hay in ra giá trị gấp hai của n

Phương Bách

Published by
Phương Bách