Scratch: Bài tập phần thuật toán


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

Bài tập 1:

Hãy thiết kế 2 nút như hình sau:

Hoán vị 2 nút

Yêu cầu: Khi nhấn vào nút 1 sẽ đổi chỗ nút 1 và nút trống cho nhau.

Bài tập 2:

Hãy thiết kế 4 nút như hình sau:

Hoán vị 4 nút

Yêu cầu: Khi nhấn vào một nút không phải là nút trống và cùng hàng hoặc cùng cột thì sẽ đổi chỗ nút đó và nút trống cho nhau. Lưu ý nếu nút nằm chéo với nút trống thì không hoán đổi vị trí được.

Bài tập 3:

Hãy thiết kế 9 nút như hình sau:

Hoán vị 9 nút

Yêu cầu: Khi nhấn vào một nút không phải là nút trống và cùng hàng hoặc cùng cột thì sẽ đổi chỗ nút đó và nút trống cho nhau. Lưu ý nếu nút nằm chéo với nút trống thì không hoán đổi vị trí được.

Bài tập 4:

Hãy thiết kế 16 nút như hình sau:

Hoán vị 16 nút

Yêu cầu: Khi nhấn vào một nút không phải là nút trống và cùng hàng hoặc cùng cột thì sẽ đổi chỗ nút đó và nút trống cho nhau. Lưu ý nếu nút nằm chéo với nút trống thì không hoán đổi vị trí được.

Bài tập 5:

1. Khai báo một biến number, set 100 cho number rồi in ra màn hình

2. Cộng thêm 200 cho number rồi in number ra màn hình.

Bài tập 6:

In ra màn hình các hình dạng sau:

1. Hình dạng 1:

*
* *
* * *
* * * *
* * * * *

2. Hình dạng 2:

* * * * *
* * * *
* * *
* *
*

3. Hình dạng 3:

        *
      * *
    * * *
  * * * *
* * * * *

4. Hình dạng 4:

* * * * *
  * * * *
    * * *
      * *
        *

5. Hình dạng 5:

        *
      * * *
    * * * * *
  * * * * * * *
* * * * * * * * *

6. Hình dạng 6:

* * * * * * * * *
  * * * * * * *
    * * * * *
      * * *
        *

7. Hình dạng 7:

* * * * * * * * *
  * * * * * * *
    * * * * *
      * * *
        *
      * * *
    * * * * *
  * * * * * * *
* * * * * * * * *

8. Hình dạng 8:

* * * * * * * * * * *
*                   *
*                   *
*                   *
*                   *
* * * * * * * * * * *

Bài tập 7:

Bạn hãy tách các ký số của một số nguyên dương n bất kỳ (0<n<1000). Ví dụ, số 153 có 3 ký số là 1, 5 và 3; số 407 có 3 ký số là 4, 0 và 7; ...

Hướng dẫn làm bài.

Bài tập 8:

Viết chương trình Python cho phép người dùng nhập vào ba (03) cột điểm thành phần của môn Ngôn ngữ lập trình Python (điểm thi lần 1, điểm online và điểm thi cuối kỳ). Tính và in ra màn hình điểm tổng kết của môn học, cho biết tỉ lệ của các cột điểm thành phần lần lượt là 25%, 25% và 50%.

Bài tập 9:

Hãy nhập vào 2 cạnh góc vuông của 1 hình tam giác vuông rồi tính chu vi và diện tích của hình tam giác vuông đó.

Bài tập 10:

Hãy nhập vào 3 cạnh của một tam giác rồi tính chu vi, diện tích của hình tam giác đó.

Bài tập 11:

Hãy nhập vào tuổi của một người và đưa ra kết luận và lứa tuổi của người đó theo quy tắc sau:

  • Tuổi >0 và <=2 là trẻ sơ sinh
  • Tuổi >2 và <=10 là nhi đồng
  • Tuổi >10 và <=17 là vị thành niên
  • Tuổi >17 và <=39 là thanh niên
  • Tuổi >39 và <=50 là trung niên
  • Tu tuổi >50 là cao niên.

Bài tập 12:

Hãy nhập vào năm sản xuất của một chiếc máy tính, sau đó đưa ra đề xuất đối với máy tính đó theo quy tắc sau:

  • Nếu năm sản xuất >=15 thì đưa ra đề xuất "Thay the"
  • Nếu năm sản xuất >=10 và <15 thì đưa ra đề xuất "Bao tri"
  • Những trường hợp khác đưa ra đề xuất "Khong co de xuat".

Bài tập 13:

Hãy nhập vào 1 điểm trung bình và xét học bổng đối với điểm trung bình đó theo quy tắc sau:

  • Nếu điểm trung bình >=9 thì học bổng là 5000000
  • Nếu điểm trung bình >=8 và <9 thì học bổng là 3000000
  • Nếu điểm trung bình >=7 và <8 thì học bổng là 1000000
  • Những trường hợp còn lại học bổng =0.

Bài tập 14:

Hãy nhập vào lương và giờ làm việc trong tháng của 1 nhân viên, sau đó xác định thưởng của của nhân viên đó theo quy định sau:

  • Nếu giờ làm việc >=200 thì thưởng =20% lương
  • Nếu giờ làm việc >=100 và <200 thì thưởng =10% lương
  • Những trường hợp khác thì thưởng =0

Bài tập 15:

Hãy nhập vào 1 điểm trung bình, sau đó xác định học lực tương ứng với điểm trung bình đó.

Bài tập 16:

1. Nhập một số N bất kỳ từ bàn phím.

2. N có phải số nguyên không?

3. Kiểm tra tính chẵn lẻ của N.

4. N có phải là số chẵn dương không?

5. N có phải là số lẻ âm không?

6. N có phải số chính phương không?

7. Nếu 0<N<1000 thì kiểm tra xem N có phải số đặc biệt không? (số đặc biệt là số nguyên có tổng lập phương của các ký số bằng chính nó, ví dụ số 153 = 13 + 53 + 33)

Bài tập 17:

Cho 2 số a=5, b=10. Hãy đổi giá trị (hoán vị) 2 số a b cho nhau sao cho kết quả là: a=10, b=5.

Hướng dẫn làm bài.

Bài tập 18:

Cho 4 số a=3, b=5, c=2, d=4.

a. Hãy tìm và in ra giá trị lớn nhất (Max) và nhỏ nhất (Min) trong các số trên.

b. Hãy in ra các số theo thứ tự tăng dần (2 3 4 5) và thứ tự giảm dần (5 4 3 2).

Bài tập 19:

1. Nhập một ký tự ch bất kỳ từ bàn phím.

2. Kiểm tra xem ký tự ch là nguyên âm, phụ âm, ký số (ký tự số) hay ký tự khác.

Hướng dẫn làm bài.

Bài tập 20:

1. Nhập một tháng th bất kỳ từ bàn phím.

2. Kiểm tra xem tháng th có bao nhiêu ngày.

* Gợi ý:

+ Các tháng 1, 3, 5, 7, 8, 10 và tháng 12 có 31 ngày.

+ Các tháng 4, 6, 9 và tháng 11 có 30 ngày.

+ Đối với tháng 2 bạn cần phải nhập vào một năm n, nếu n là năm nhuận thì tháng 2 có 29 ngày, ngược lại tháng 2 có 28 ngày (n là năm nhuận nếu nó thỏa mãn một trong 2 điều kiện: điều kiện thứ nhất là n chia hết cho 4 nhưng không chia hết cho 100, điều kiện thứ hai là n chia hết cho 400, ví dụ 2012 là năm nhuận, 2000 cũng là năm nhuận).

Hướng dẫn làm bài.

Bài tập 21:

1. Bạn hãy viết một chương trình giải phương trình bậc nhất ax+b=0.

2. Bạn hãy viết một chương trình giải phương trình bậc hai ax2+bx+c=0.

3. Bạn hãy viết một chương trình giải phương trình trùng phương ax4+bx2+c=0.

4. Bạn hãy viết một chương trình giải hệ phương trình bậc nhất hai ẩn.

Bài tập 22:

1. Nhập vào từ bàn phím 3 số a, b, c bất kỳ.

2. Kiểm tra xem 3 số a, b, c ở trên có thỏa mãn là 3 cạnh của một tam giác không.

3. a, b, c có phải là 3 cạnh của tam giác cân không?

4. a, b, c có phải là 3 cạnh của tam giác đều không?

5. a, b, c có phải là 3 cạnh của tam giác vuông không?

6. a, b, c có là 3 cạnh của tam giác vuông cân không?

Hướng dẫn làm bài.

Bài tập 23:

Nhập vào N số (0<N<=100) sau đó in ra số đầu tiên và số gần cuối cùng. Ví dụ nếu nhập vào 5 số là 2 3 4 5 6 thì sẽ in ra 2 và 5.

Bài tập 24:

Nhập vào một chuỗi sau đó in ra chuỗi đó và đảo ngược của chuỗi đó. Ví dụ nếu nhập vào xyz sẽ in ra xyzzyx.

Bài tập 25:

Nhập vào một chữ cái thường (a-z), in ra chữ cái đó 10 lần. Ví dụ nếu nhập vào a thì sẽ in ra aaaaaaaaaa.

Bài tập 26:

Hãy nhập vào một số N với điều kiện 0<N<100. Yêu cầu người dùng nhập cho đến khi thỏa mãn điều kiện.

Bài tập 27:

Cho dãy số vô hạn: 50, 51, 53, 56, 60, ... Hãy in ra số thứ 2021.

Bài tập 28:

1. In ra các số từ 1 đến 100.

2. In ra các số từ 100 đến 1.

3. In ra các số từ 1 đến 100 mà chia hết cho 3.

4. In ra các số từ 99 đến 1 mà chia hết cho 7.

5. Bạn hãy viết chương trình tính tổng của 50 số 1, 2, 3, ..., 50.

6. Bạn hãy viết chương trình tính tổng của 50 số 50, 49, 48, ..., 1.

7. Bạn hãy viết chương trình tình tổng của 50 số chẵn bắt đầu từ 2.

8. Bạn hãy viết chương trình tính tổng của 20 số 5, 10, 15, ..., 100.

9. Bạn hãy viết chương trình tính n! (n!=1*2*3*...*n).

10. Bạn hãy nhập vào một số N bất kỳ và kiểm tra xem N có phải số nguyên tố hay không? (Số nguyên tố là một số nguyên dương lớn hơn 1 và chỉ chia hết cho 1 và chính nó, ví dụ: 2, 3, 5, 7, 11, ...)

11. Bạn hãy nhập vào một số N bất kỳ và kiểm tra xem N có phải số hoàn hảo hay không? (Số hoàn hảo là số nguyên dương có tổng các ước số nhỏ hơn nó bằng chính nó, ví dụ: 1+2+3 = 6, vậy 6 là số hoàn hảo)

12. Bạn hãy viết chương trình in ra 10 số đầu tiên của dãy số Fibonacci. Hãy cho biết số thứ 13 có giá trị bao nhiêu?

13. Viết chương trình nhập vào một số nguyên dương N và thực hiện:

  • Số nguyên dương N có bao nhiêu chữ số?
  • Tính tổng các chữ số của N.
  • In ra chữ số lớn nhất của N.

14. Cho một dãy số vô hạn như sau: 123456789101112131415.... Hãy cho biết chữ số thứ n (n nhập vào từ bàn phím) của dãy số có giá trị bao nhiêu?

15. Hãy nhập vào một số nguyên dương N và phân tích N thành các thừa số nguyên tố.

16. Cho hai số A và B là hai số nguyên dương và A phải nhỏ hơn B (0 < A < B < 100). Hãy viết chương trình cho phép nhập hai số A và B đó từ bàn phím và thực hiện:

  • Tìm các số nguyên tố từ A đến B.
  • Tìm ước chung lớn nhất của A và B.

Bài tập 29:

Bạn hãy viết chương trình giải phương trình bậc 2 ax2+bx+c=0 dạng menu như sau:

1. Nhập 3 hệ số a, b, c

2. Xác định nghiệm

3. Thoát

Yêu cầu cụ thể:

Khi người dùng chọn 1 thì yêu cầu người dùng nhập vào từ bàn phím 3 hệ số a, b và c.

Khi người dùng chọn 2 thì bạn hãy xác định nghiệm của phương trình dựa trên các hệ số đã nhập từ mục 1.

Khi người dùng chọn 3 thì bạn hãy cho thoát khỏi trương trình.

Nếu người dùng không chọn mục 1, 2 hay 3 thì yêu cầu người dùng chọn cho đúng.

Bài tập 30:

1. Viết chương trình in ra bảng mã ASCII.

2. Viết chương trình tính tổng bậc 3 của N số nguyên đầu tiên.

3. Viết chương trình nhập vào một số nguyên rồi in ra tất cả các ước số của số đó.

4. Viết chương trình tính tổng nghịch đảo của N số nguyên đầu tiên theo công thức: S = 1 + 1/2 + 1/3 + … + 1/N

5. Viết chương trình tính tổng bình phương các số lẻ từ 1 đến N.

6. Viết chương trình tìm USCLN, BSCNN của 2 số nguyên dương.

7. Viết chương trình vẽ một tam giác cân rỗng bằng các dấu *.

8. Viết chương trình vẽ hình chữ nhật rỗng bằng các dấu *.

9. Viết chương trình tính giá trị của đa thức

Pn = anxn + an-1xn-1 + … + a1x1 + a0

Hướng dẫn đa thức có thể viết lại

Pn = (…(anx + an-1)x + an-2)x + … + a0

Như vậy trước tiên tính anx + an-1, lấy kết quả nhân với x, sau đó lấy kết quả nhân với x cộng thêm an-2, lấy kết quả nhân với x … n gọi là bậc của đa thức.

10. Viết chương trình nhập vào 1 số từ 0 đến 9. In ra chữ số tương ứng. Ví dụ: nhập vào số 5, in ra "Năm".

11. Viết chương trình phân tích một số nguyên N thành tích của các thừa số nguyên tố.

12. Viết chương trình tính dân số của một thành phố sau 10 năm nữa, biết rằng dân số hiện nay là 6.000.000, tỉ lệ tăng dân số hàng năm là 1.8% .

13. Viết chương trình tìm các số nguyên a, b, c, d khác nhau trong khoảng từ 0 tới 10 thỏa mãn điều kiện a*d*d = b*c*c*c.

14. Viết chương trình tính tổ hợp N chập K (với K <= N): C=((N-k+1) * (N-k+2)*…N)/1*2*3*…*k

Trong đó C là một tích gồm k phần tử với phần tử thứ I là (N-k+1)/I. Để viết chương trình này, bạn dùng vòng lặp For với biến điều khiển I từ giá trị đầu là 1 tăng đến giá trị cuối là k kết hợp với việc nhân dồn vào kết quả C.

15. Viết chương trình giải bài toán cổ điển sau:

Trăm trâu, trăm cỏ

Trâu đứng ăn năm

Trâu nằm ăn ba,

Ba trâu già ăn một

Hỏi mỗi loại trâu có bao nhiêu con.

16. Viết chương trình giải bài toán cổ điển sau:

Vừa gà vừa chó

Bó lại cho tròn,

Ba mươi sáu con

100 chân chẵn

Hỏi có bao nhiêu gà, bao nhiêu chó

17. Viết chương trình in ra bảng cửu chương.

18. Viết chương trình xác định xem một tờ giấy có độ dày 0.1 mm. Phải gấp đôi tờ giấy bao nhiêu lần để nó có độ dày 1m.

19. Viết chương trình tìm các số nguyên tố từ 2 đến N, với N được nhập vào.

20. Viết chương trình nhập vào x, n tính:

- sprt(x + sqrt(x + (sqrt(x))) (n dấu căn)

- 1 + x/2 + ... x^n/(n+1)

21. Viết chương trình xác định tất cả các cặp số nguyên dương (A, B) sao cho A<B<1000 và (A2+B2+1)/AB là một số nguyên.

22. Viết chương trình trò chơi Hi-Lo. Máy tính nghĩ ra một số nguyên dương bất kỳ (có thể cho một giới hạn là số phải nhỏ hơn MAX_INT). Người chơi sẽ đoán một số. Máy tính sẽ trả lời: "Số lớn hơn số phải tìm", "Số nhỏ hơn số phải tìm" hoặc "Chính xác, bạn đã thắng". Sau khi đã đoán đúng số cần tìm, máy tính sẽ tính và xuất ra số lần đoán và dừng chương trình.

23. Nhập một số nguyên dương vào từ bàn phím, sau đó in ra màn hình tất cả các số nguyên tố nằm trong khoảng từ 0 cho đến số nguyên dương đó.

24. Tìm tất cả các phương án kết hợp 3 loại giấy bạc 1000đ, 2000đ, 5000đ với nhau để cho ra số tiền N đ, với N nhập từ bàn phím. N>=1000đ và N%1000==0. Đưa ra phương án tối ưu ứng với số tờ tiền là ít nhất.

25. Tính tổng của các chữ số của một số tự nhiên n.

26. Hiển thị các chữ số của một số tự nhiên n theo thứ tự từ phải sang trái.

27. Tìm ký số lớn nhất của một số tự nhiên n.

Bài tập 31:

Bạn hãy dùng vòng lặp (Loop) viết các chương trình in ra các hình dạng như sau:

1. Hình dạng 1:

*
* *
* * *
* * * *
* * * * *

2. Hình dạng 2:

* * * * *
* * * *
* * *
* *
*

3. Hình dạng 3:

            *
         * *
      * * *
   * * * *
* * * * *

4. Hình dạng 4:

* * * * *
   * * * *
      * * *
         * *
            *

5. Hình dạng 5:

            *
         * * *
      * * * * *
   * * * * * * *
* * * * * * * * *

6. Hình dạng 6:

* * * * * * * * *
   * * * * * * *
      * * * * *
         * * *
            *

7. Hình dạng 7:

* * * * * * * * *
   * * * * * * *
      * * * * *
         * * *
            *
         * * *
      * * * * *
   * * * * * * *
* * * * * * * * *

8. Hình dạng 8:

* * * * * * * * * * *
*                       *
*                       *
*                       *
*                       *
* * * * * * * * * * *

Bài tập 32:

Discussions

It has been known that 2019/12/31 was Tuesday. Please write a project to find what day of a week of Tom’s birthday.

Sunday is represented by a value of 0, Monday is represented by a value of 1, Tuesday is represented by a value of 2, Wednesday is represented by a value of 3, Thursday by a value of 4, a Friday by a value of 5, and a Saturday by a value of 6.

Input Format: A single line contains 3 space-separated positive integers, representing the year, month and day when Tom was born

Constraints: The inputs are valid date from 1950-01-01 to 2020-12-31

Output Format: A single number from 0 to 6, representing the day of week of Tom's birthday.

Sample Input 0

1950 1 1
Sample Output 0

0

Sample Input 1

2020 2 29
Sample Output 1

6

Bài tập 33: Xâu bình đẳng

Xâu các ký tự 0 và 1 được gọi là bình đẳng nếu có độ dài chẵn và số lượng ký tự 1 ở vị trí chẵn bằng số lượng 1 ở vị trí lẻ. Ví dụ, xâu '011011' là xâu bình đẳng, cònxâu '011101' - không bình đẳng.

Yêu cầu: Cho xâu các ký tự 0, 1 độ dài lẻ và không vượt quá 200001. Hãy xác định vị trí ký tự cần xóa để xâu trở thành bình đẳng. Nếu không có cách xóa thì đưa ra số 0. Nếu có nhiều cách xóa thì đưa ra cách xóa với số thứ tự vị trí cần xóa là nhỏ nhất.

Dữ liệu vào: xâu cần xử lý.

Kết quả: Đưa ra một số nguyên - vị trí cần xóa hay số 0.

Ví dụ:

Dữ liệu vào: 0111011

Kết quả: 2

50% test xâu có độ dài không vượt quá 1000.

Bài tập 34:

Nhập từ bàn phím tuổi cha và con( tuổi cha hơn tuổi con ít nhất là 25). Đưa ra màn hình bao nhiêu năm nữa thì tuổi cha gấp đôi tuổi con.

Bài tập 35:

Ở 1 tòa nhà 100 tầng, coi như các quả trứng là như nhau:

  • Trứng sẽ vỡ nếu bị thả từ tầng >= N.
  • Trứng không vỡ nếu bị thả từ tầng < N.

Bạn có 2 quả trứng, hãy nêu 1 cách giải để tìm N với số lần thả trứng ít nhất.

Bài tập 36

Problem Statement:

Given is a positive integer N. How many tuples (A,B,C) of positive integers satisfy A×B+C=N?

Constraints:

2≤N≤106

All values in input are integers.

Input;

Input is given from Standard Input in the following format:

N

Output:

Print the answer.

---------------------------------------------

Sample Input 1:

3

Sample Output 1:

3

There are 3 tuples of integers that satisfy A×B+C=3A×B+C=3: (A,B,C) = (1,1,2), (1,2,1), (2,1,1).

Sample Input 2:

100

Sample Output 2:

473

Sample Input 3:

1000000

Sample Output 3:

13969985

Bài tập 37: Bài toán CÀ RI

Bạn đang dự một bữa tiệc tối thú vị với những người bạn thân, cố gắng thưởng thức cà ri rất nóng. Trên đĩa của bạn là rất nhiều cà ri, cơm và rau. Bạn thấy khó ăn vì món cà ri quá nóng, cơm quá dẻo và bạn không thích rau.

Để thấy dễ ăn hơn, bạn chọn cách ăn như sau: mỗi miếng gồm 2 muỗng chứa hai món khác nhau. Ví dụ, miếng đầu tiên có thể bao gồm một muỗng cà ri với một muỗng cơm. Miếng tiếp theo có thể bao gồm một muồng cơm với một muỗng rau. Bạn không thể ăn cả ba muỗng cùng một lúc, vì thìa của bạn quá nhỏ.

Vấn đề là bạn có thể không ăn hết đồ ăn của bạn. Tại bữa tiệc tối cuồi tuần trước, bạn bắt đầu bằng cách ăn tất cả cà ri và cơm, kết quả là bạn không thể ăn hết rau của bạn vì không còn lại gì để ăn kèm. Thật là đáng xấu hổ! Quyết không để bản thân ngượng chín người một lần nữa, bạn kéo máy tính xách tay của bạn ra khỏi túi và bí mật code bên dưới bàn, hy vọng sẽ giải quyết vấn đề một cách toàn diện.

Nhiệm vụ của bàn là tìm ra cách nào đó để ăn được càng nhiều thức ăn càng tốt.

INPUT

Một dòng ghi ba số nguyên c r v, tương ứng với số muỗng cà ri, cơm và rau trên đĩa của bạn. Bạn được đảm bảo rằng 0 <= c, r, v <= 100000.

OUTPUT

In ra một dòng duy nhất chứa các số nguyên x, y, z, trong đó:

  • X là số miếng có chứa một muỗng gạo với một muỗng rau;
  • Y là số miếng có chứa một muỗng cà ri với một muỗng rau;
  • Z là sô miếng có chứa một muỗng cà ri với một muỗng cơm.
  • Bạn phải chọn x, y, z sao cho bạn ăn được tối đa tổng số lượng muỗng. Nếu có nhiều hơn một cách để làm điều này, bất kỳ giải pháp nào cũng được chấp nhận.

Sample Input 1:

5 6 9

Sample output 1:

5 4 1

Sample input 2:

1 2 5

Sample output 2:

2 1 0

Ở ví dụ 1: Bạn có 5 muỗng cà ri, 6 muỗng cơm và 9 muỗng rau. Bạn bắt đầu bằng cách ăn 5 muỗng cơm với rau, còn lại 5, 1, 4 muỗng cà ri, cơm và rau (tương ứng). Sau đó bạn ăn 4 miếng cà ri với rau, còn lại 1, 1 và 0 muỗng cà ri, cơm và rau (tương ứng). Cuối cùng bạn ăn một miếng cà ri với cơm, và dùng hết sạch đồ ăn.

Ở ví dụ 2: Bữa ăn trong ví dụ này có 1, 2 và 5 muỗng cà ri, cơm và rau (tương ứng). Có quá nhiều rau và bạn không thể ăn hết các món. Giải pháp trên lựa chọn hai miếng cơm và rau và một miếng cà ri với rau. Theo đó, bạn ăn hết cà ri và cơm, để lại 2 muỗng rau. Không có cách nào để kết thúc bữa ăn mà để lại ít thức ăn hơn, nên đó là OUTPUT.

Bài tập 38. The Power Sum

Find the number of ways that a given integer, X, can be expressed as the sum of the Nth powers of unique, natural numbers.

For example, if X = 13 and N = 2, we have to find all combinations of unique squares adding up to 13. The only solution is 22 + 32.

Function Description

Complete the powerSum function in the editor below. It should return an integer that represents the number of possible combinations.

powerSum has the following parameter(s):

  • X: the integer to sum to
  • N: the integer power to raise numbers to

Input Format

The first line contains an integer X.
The second line contains an integer N.

Constraints

  • 1 <= X <= 100
  • 2 <= N <= 10

Output Format

Output a single integer, the number of possible combinations caclulated.

Sample Input 0

10
2

Sample Output 0

1

Explanation 0

If X = 10 and N = 2, we need to find the number of ways that 10 can be represented as the sum of squares of unique numbers.

10 = 12 + 32

This is the only way in which 10 can be expressed as the sum of unique squares.

Sample Input 1

100
2

Sample Output 1

3

Explanation 1

100 = (102) = (62 + 82) = (12 + 32 + 42 + 52 + 72)

Sample Input 2

100
3

Sample Output 2

1

Explanation 2

100 can be expressed as the sum of the cubes of 1, 2, 3, 4.
(1 + 8 + 27 + 64). There is no other way to express 100 as the sum of cubes.

Bài tập 39:

1. Viết chương trình nhập số nguyên dương n và thực hiện các chức năng sau:

a) Tính tổng các chữ số của n.

b) Phân tích n thành tích các thừa số nguyên tố.

c) Liệt kê các ước số của n.

d) Liệt kê các ước số là nguyên tố của n.

Bài tập 40: Trò chơi Hilo

Viết 1 chương trình mô phỏng trò chơi Hilo như sau:

Nhân vật chính là bạn Huyển Trang. Bạn Huyền trang sẽ nghĩ ra 1 số và yêu cầu bạn đoán số đó bằng cách nhập từ bàn phím cho đến khi đoán đúng thì thôi.

- Nếu bạn đoán sai và số đoán nhỏ hơn của bạn Huyền Trang thì đưa ra thông báo: "Số bạn đoán nhỏ hơn số cần đoán".

- Nếu bạn đoán sai và số đoán lớn hơn của bạn Huyền Trang thì đưa ra thông báo: "Số bạn đoán lớn hơn số cần đoán".

- Nếu bạn đoán đúng thì đưa ra thông báo: "Chúc mừng bạn, bạn đã đoán đúng rồi!".

Bài tập 41:

a. Nhập và kiểm tra một số nguyên a có 3 chữ số có phải là số đối xứng không. Ví dụ, 121 là số đối xứng, 123 không phải số đối xứng.

b. Nhập và kiểm tra một chuỗi nhập vào có thỏa mãn:

- Có ít nhất 8 ký tự

- Có ít nhất 1 chữ in hoa

- Có ít nhất 2 ký tự là số.

Bài tập 42:

Viết chương trình nhập vào số tự nhiên N (2 <= N < 5) và xuất ra tất cả các bội số của 11 mà có số lượng chữ số nhỏ hơn hoặc bằng N.

Ví dụ, với N = 2 thì kết quả là 11, 22, 33, 44, 55, 66, 77, 88, 99.

Bài tập 43:

Năm 1973 nhà toán học Neil Sloan đưa ra khái niệm độ bền của một số nguyên không âm như sau:

  • Nếu N có 1 chữ số thì độ bền của N bằng 0.
  • Nếu N có từ 2 chữ số trở lên thì độ bền của N bằng độ bền của số nguyên là tích của các chữ số của N cộng 1.

Hãy nhập N và tìm số bé hơn N có độ bền lớn nhất (0 <= N <= 2 x 109).

Ví dụ, nếu N = 100 thì kết quả là 77. Giải thích: Doben(77) = Doben(49) + 1 = Doben(36) + 1 + 1 = Doben(18) + 1 + 1 + 1 = Doben(8) + 1 + 1 + 1 + 1 = 0 + 1 + 1 + 1 + 1 = 4.

Bài tập 44:

Hãy nhập vào hai xâu bất kỳ, sau đó tiến hành trộn hai xâu này xen kẽ theo từng ký tự để được xâu mới và hiển thị ra xâu mới này.

Ví dụ, hai xâu "abc" và "123" sau khi trộn sẽ được một xâu mới là "a1b2c3".

Bài tập 45: Sách - Tác giả

Hãy nhập vào 2 dãy dữ liệu:

+ Dãy 1: Lưu trữ tên của các cuốn sách

+ Dãy 2: Lưu trữ tên các tác giả sách tương ứng

Viết chương trình hiển thị ngẫu nhiên và liên tục câu hỏi sau: "Tác giả cuốn sách ... là ai?"

Người dùng sẽ nhập tên tác giả. Nếu nhập đúng chương trình sẽ thông báo đúng và vỗ tay, nếu nhập sai chương trình sẽ thông báo sai.

Bài tập 46:

Hãy tạo ngẫu nhiên một dãy a gồm N phần tử nguyên sau đó thực hiện:

  • Sắp xếp a theo thứ tự tăng dần
  • Loại bỏ bớt các phần tử có giá trị giống nhau sao cho mỗi giá trị chỉ xuất hiện trong a duy nhất 1 lần.

Bài tập 47:

1. Nhập một số nguyên N (0<N<50).

2. Nhập một dãy gồm N số.

3. Tìm số lớn nhất trong dãy.

4. Tìm số nhỏ nhất trong dãy.

5. Tìm số dương chẵn lớn nhất trong dãy.

6. Tìm số âm lẻ nhỏ nhất trong dãy.

7. Tìm các số chính phương trong dãy.

8. Tính tổng dãy.

9. Tính trung bình cộng các phần tử dãy.

10. Tìm những phần tử lớn hơn trung bình cộng.

11. Sắp xếp dãy theo trật tự tăng dần.

12. Sắp xếp dãy theo trật tự giảm dần.

13. In ra trung bình cộng các phần tử không âm của dãy.

Bài tập 48: Change Coin

Với một giá trị N, nếu chúng ta muốn đổi N xu và chúng ta có nguồn cung vô hạn đối với mỗi đồng xu có giá trị S = {S1, S2, .., Sm}, chúng ta có thể thực hiện bao nhiêu cách để thực hiện thay đổi? Thứ tự của các đồng xu không quan trọng.

Ví dụ: đối với N = 4 và S = {1,2,3}, có bốn nghiệm: {1,1,1,1}, {1,1,2}, {2,2}, {1, 3}. Với N = 10 và S = {2, 5, 3, 6}, có năm nghiệm: {2,2,2,2,2}, {2,2,3,3}, {2,2,6}, {2,3,5} và {5,5}.

Bài tập 49:

Gayasen đã nhận được một bài tập về nhà để tính ước chung lớn nhất của hai số nguyên dương A và B. Vì các số này khá lớn, giáo sư đã cung cấp cho anh ta N số nguyên nhỏ hơn có tích bằng A, và M số nguyên với tích bằng B. Anh ta sẽ thích xác minh kết quả, vì vậy anh ấy đã yêu cầu bạn viết một chương trình để giải quyết vấn đề của anh ấy. Nhưng thay vì in câu trả lời hoàn chỉnh, bạn phải in câu trả lời là kết quả chia dư cho (10000000007).

Định dạng đầu vào:

Dòng nhập đầu tiên của đầu vào chứa số nguyên dương N (1 <= N <= 1000).

Dòng nhập thứ hai chứa N số nguyên dương được phân tách bằng dấu cách không lớn hơn 104, có tích là số A.

Dòng nhập thứ ba chứa số nguyên dương M (1 <= M <= 1000).

Dòng nhập thứ tư của đầu vào chứa M số nguyên dương được phân tách bằng dấu cách không lớn hơn 104, có tích là số B.

Ràng buộc:

1 <= N, M <= 1000

1 <= phần tử của danh sách <= 10000

Định dạng đầu ra:

In ra ước chung lớn nhất của các số A và B modulo 10000000007.

Bài tập 50:

Đôi khi bạn cần so sánh danh sách số lượng, nhưng việc sắp xếp từng danh sách thông thường sẽ mất quá nhiều thời gian. Thay vào đó, bạn có thể sử dụng các phương pháp thay thế để tìm sự khác biệt giữa mỗi danh sách.

Thử thách
Numeros The Artist đang sắp xếp hai danh sách A và B giống hệt nhau thành những thứ tự cụ thể. Sự sắp xếp của hai mảng là ngẫu nhiên, Numeros rất tự hào về sự sắp xếp của mình. Thật không may, một số số đã bị loại khỏi Danh sách A. Bạn có thể tìm thấy các số còn thiếu từ A mà không làm rối thứ tự của anh ta không?

Chi tiết
Có nhiều bản sao trong danh sách, nhưng bạn cần tìm các số thừa, tức là B - A. In các số theo thứ tự số. In mỗi số bị thiếu một lần, ngay cả khi số đó bị thiếu nhiều lần. Các số đều nằm trong phạm vi 100 cách nhau.

Định dạng đầu vào
Sẽ có bốn dòng đầu vào:

n - kích thước của danh sách đầu tiên
Tiếp theo là n số tạo nên danh sách đầu tiên.
m - kích thước của danh sách thứ hai
Tiếp theo là m số tạo nên danh sách thứ hai.

Định dạng đầu ra
Đưa ra tất cả các số (theo thứ tự tăng dần) có trong B nhưng không thuộc A.

Ràng buộc
1 <= n, m <= 200000
-10000 <= x <= 10000, x ∈ B
Xmax - Xmin <101

Đầu vào mẫu

10
203 204 205 206 207 208 203 204 205 206
13
203 204 204 205 206 207 205 208 203 206 205 206 204
Đầu ra mẫu

204 205 206
Giải trình

Mặc dù 204 được trình bày trong cả hai mảng, nhưng tần số của 204 ở A nhỏ hơn của B. Tương tự như vậy, 205 và 206 xảy ra hai lần ở A nhưng ba lần ở B. Vì vậy, ba số này tạo thành đầu ra. Các số còn lại xảy ra ít nhất nhiều lần ở A cũng như ở B - vì vậy chúng không phải là "số bị thiếu".

Bài tập 51:

1. Nhập một chuỗi a bất kỳ từ bàn phím có kích thước trong khoảng (0,50).

2. Kiểm tra xem trong chuỗi a có ký số hay không.

3. Kiểm tra xem trong chuỗi a có ký tự in HOA hay không.

4. Nhập từ bàn phím một ký tự ch bất kỳ, kiểm tra xem trong chuỗi a có chứa ký tự đó hay không?

5. Nhập từ bàn phím một chuỗi b bất kỳ, kiểm tra xem b có nằm trong a hay không? Kiểm tra xem b có độ dài lớn hơn a hay không? Kiểm tra xem b có lớn hơn a hay không?

6. Kiểm tra xem chuỗi a có tính đối xứng hay không?

7. Chuỗi a có bao nhiêu từ?

8. Cắt tất cả dấu cách (space) ở cuối chuỗi.

9. Cắt tất cả dấu cách ở đầu chuỗi.

10. Hãy đảm bảo rằng giữa hai từ bất kỳ của chuỗi a chỉ có một dấu cách.

11. Tính giá trị trung bình của tất cả các ký tự của chuỗi a theo thứ tự ký tự trong bảng mã ASCII (ví dụ nếu chuỗi là "123" thì ký tự '1' có vị trí 49, ký tự '2' có vị trí 50, ký tự '3' có vị trí 51, như vậy giá trị trung bình là 50).

12. Đếm xem mỗi ký tự trong chuỗi a xuất hiện bao nhiêu lần. Ví dụ với chuỗi "V1StudyAll" thì ký tự 'l' xuất hiện 2 lần, các ký tự khác xuất hiện 1 lần.

13. Hãy chèn vào giữa ký tự có chỉ số 4 và 5 của chuỗi a một ký tự '\n'.

14. Hãy chèn vào giữa 2 ký tự in hoa bất kỳ của chuỗi a ký tự '\t'.

Xem solution: https://youtu.be/5Ifho-YPcfM

Bài tập 52:

1. Nhập N và nhập một mảng a gồm N chuỗi (0<N<=50 và mỗi chuỗi có kích thước tối đa 30).

2. Tìm những chuỗi có kích thước nhỏ nhất, lớn nhất.

3. Tính kích thước trung bình của các chuỗi.

4. Hiển thị những chuỗi có kích thước lớn hơn kích thước trung bình. 

5. Sắp xếp các chuỗi tăng dần, giảm dần theo kích thước.

6. Tìm những chuỗi nhỏ nhất, lớn nhất theo thứ tự ký tự trong bảng mã ASCII.

7. Sắp xếp các chuỗi tăng dần, giảm dần theo thứ tự ký tự trong bảng mã ASCII.

8. Nhập vào từ bàn phím một chuỗi st có kích thước tối đa 30. Tìm những chuỗi trong mảng a có kích thước bằng chuỗi st. Tìm những chuỗi trong mảng a có chứa chuỗi st.

9. Tìm những chuỗi có tính đối xứng trong mảng a.

10. Hiển thị những chuỗi là địa chỉ email chuẩn (ví dụ "abc@def.com").

11. Tìm những chuỗi có chứa ký tự số.

12. Tìm những chuỗi có chứa ký tự in HOA.

13. Nhập từ bàn phím một ký tự c bất kỳ. Tìm những chuỗi có chứa ký tự c.

14. Mỗi chuỗi trong mảng a có bao nhiêu từ?

15. Nhập vào một ký tự rồi chèn ký tự đó vào vị trí thứ 5 của chuỗi cuối cùng.

16. Nhập M chuỗi (0<M<N) sau đó đếm xem mỗi chuỗi trong M chuỗi xuất hiện bao nhiêu lần trong N chuỗi.

17. Nối tất cả các chuỗi và in ra.

18. Hiển thị những chuỗi chứa chuỗi đầu tiên

19. Kiểm tra xem chuỗi đầu tiên có bắt đầu bằng chuỗi "hello" không.

20. Tính giá trị trung bình theo vị trí ký tự trong bảng mã ASCII của từng chuỗi.

21. Hiển thị những chuỗi có độ dài lớn hơn độ dài nhỏ nhất và nhỏ hơn độ dài lớn nhất trong mảng a

22. Nhập vào một độ dài xác định và in ra những chuỗi có độ dài bằng độ dài xác định đó.

23. Đếm số từ trong chuỗi thứ N-1

24. Chuyển chuỗi thứ hai thành chuỗi in hoa.

25. Cắt ký tự trắng ở cuối chuỗi cuối cùng

26. Cắt ký tự trắng ở đầu chuỗi cuối cùng

27. Cắt ký tự trắng thừa ở giữa chuỗi cuối cùng.

Bài tập 53 (Bình Thuận 2022 - Bài 3):

Một cái thùng không có nắp có dạng hình hộp chữ nhật, có chiều dài 1.5m và chiều cao 1.2m, chiều rộng bằng 2/3 chiều dài. Người ta sơn cả trong và ngoài thùng, biết rằng cứ 0.8kg sơn thì sơn đươc 2m2. Tính lượng sơn để sơn toàn bộ thùng.

Bài tập 54 (Hà Nội 2022 - Bài 1):

Nhập vào 3 số tự nhiên A, B, C. Đưa ra tổng của giá trị lớn nhất và giá trị nhỏ nhất của 3 số đó.

Dữ liệu: Nhập vào 3 số A, B, C (1 <= A, B, C <= 100)

Kết quả: Trả về một số duy nhất là tổng của số lớn nhất và số nhỏ nhất.

Ví dụ:

Tính tổng min và max

Bài tập 55 (Đồng Nai 2022 - Câu 3):

Cho tam giác số như sau:

1
2 3
4 5 6
7 8 9 10
...

Hãy mời người dùng nhập vào một số tự nhiên N, sau đó ta lập trình để đưa ra số đầu tiên ở hàng thứ N của tam giác là bao nhiêu?

Bài tập 56:

Cho tam giác Pascal như sau:

      1
    1 2 1
   1 3 3 1
  1 4 6 4 1
1 5 10 10 5 1
...

Hãy mời người dùng nhập vào hai số tự nhiên N và M, sau đó lập trình để đưa ra số ở vị trí M hàng thứ N của tam giác Pascal là bao nhiêu?

Bài tập 57 (Đồng Nai 2022 - Câu 2): Đổi thời gian

Hãy mời người dùng nhập vào một số tự nhiên N là số giây (seconds), sau đó hãy đổi ra giờ, phút, giây tương ứng và hiển thị theo dạng: hh : mm : ss

Ví dụ, nếu người dùng nhập vào N = 4000 thì sẽ hiển thị: 01 : 06 : 40

Bài tập 58:

Viết chương trình tìm ước số chung lớn nhất (USCLN) và bội số chung nhỏ nhất (BSCNN) của hai số nguyên dương a và b nhập từ bàn phím.

Bài tập 59:

Viết chương trình nhập vào một số N bất kỳ vàn kiểm tra xem N có phải số nguyên tố hay không. Trong trường hợp N là số nguyên tố thì hãy tìm và hiển thị số nguyên tố tiếp theo sau N.

Bài tập 60:

Viết chương trình nhập vào số nguyên dương N và sau đó phân tích số nguyên N thành các thừa số nguyên tố trong. Ví dụ: 100 = 2 x 2 x 5 x 5.

Bài tập 61 (Đà Nẵng 2022 - Bài 1): Mắc bóng đèn

Người ta mắc bóng đèn xung quanh một bảng quảng cáo hình vuông có chiều dài a dm, hai bóng đèn liên tiếp cách nhau 5 cm. Hãy mời người dùng nhập vào một số nguyên dương a, sau đó tính và hiển thị số lượng bóng đèn cần mắc.

Bài tập 62 (Đà Nẵng 2022 - Bài 3): Không thích số 3

Polycarp không thích những số chia hết cho 3 và những số có chữ số hàng đơn vị là 3. Polycarp bắt đầu viết các số nguyên dương mà bạn ý thích: 1, 2, 4, 5, 7, 8, 10, 11, 14, 16, ...

Em hãy mời người dùng nhập vào một số nguyên dương N, sau đó hiển thị ra số thứ N trong dãy số của Polycarp là bao nhiêu?

Bài tập 63 (Đà Nẵng 2022 - Bài 4): Số cân bằng

Số cân bằng là số:

  • Có số lượng các chữ số là chẵn.
  • Nửa nhóm ký tự bên trái giống nửa nhóm ký tự bên phải.

Ví dụ, số 6767, 123123, ... là những số cân bằng.

Em hãy mời người dùng nhập vào một số nguyên dương N và hiển thị tất cả các số cân bằng <= N.

Bài tập 64:

Tổng số các chữ số của một số tự nhiên là tổng của từng chữ số. Ví dụ số 1234 có tổng của các chữ số là: 1 + 2 + 3 + 4 = 10

Em hãy lập trình đếm các số tự nhiên có 4 chữ số mà có tổng các chữ số bằng 10.

Bài tập 65:

Cho hai số tự nhiên A và B. Gọi C là tích của A và B. Hãy mời người dùng nhập vào hai số tự nhiên A và B, sau đó tính tổng của các chữ số của C. Ví dụ, A = 3 và B = 5, thì C = 15, tức tổng các chữ số của C sẽ là 1 + 5 = 6.

Bài tập 66:

Cho dãy số theo quy luật như sau: 3, 4, 6, 7, 9, 10, 12, ... Hãy mời người dùng nhập vào hai số nguyên dương A và B, sau đó hãy tính tổng của các phần tử của dãy mà lớn hơn A và nhỏ hơn B. Ví dụ, A = 1 và B = 8 thì sẽ tính tổng của dãy số 3, 4, 6, 7.

Bài tập 67:

Jack mua N cuốn sách và muốn chia đều cho M người bạn thân. Em hãy giúp Jack biết cần mua ít nhất bao nhiêu cuốn sách nữa để có thể chia đều các cuốn sách cho M người bạn?

Ví dụ, nếu Jack mua N = 30 cuốn sách và Jack có M = 8 người bạn thân, thì Jack cần mua thêm ít nhất 2 cuốn nữa.

Bài tập 68:

Phương viết dòng chữ V1STUDY lặp đi lặp lại nhiều lần thành dãy các ký tự liên tiếp nhau: V1STUDYV1STUDYV1STUDYV1STUDYV1STUDY...

Sau đó Phương tô màu cho từng chữ trong dãy trên theo trật tự: RED, GREEN, BLUE, YELLOW, RED, GREEN, BLUE, YELLOW, ...

Em hãy nhập vào một số nguyên dương k, sau đó in ra màn hình chữ cái và màu tương ứng thứ k là gì theo quy cách: Chữ - Màu

Ví dụ, nếu k = 5 thì sẽ in ra là: U - RED.

Bài tập 69:

Cho ba số nguyên dương 𝑎, 𝑏 và 𝑁. Hãy tính tổng 𝑁 chữ số sau dấu chấm thập phân của phép chia 𝑎 cho 𝑏. Có thể thêm vô hạn số 0 vào cuối phần thập phân.

Ví dụ:

  + Nếu nhập vào 20, 13 và 5 thì kết quả là 4. Giải thích: 20 / 13 = 1.5384615, vậy tổng 5 chữ số sau dấu chấm là: 5 + 3 + 8 + 4 + 6 = 26.

  + Nếu nhập vào 25, 3 và 4 thì kết quả là 12. Giải thích: 25 / 3 = 8.333333, vậy tổng 4 chữ số sau dấu chấm là: 3 + 3 + 3 + 3 = 12

  + Nếu nhập vào 4, 2 và 6 thì kết quả là 0. Giải thích: 4 / 2 = 2.00000000, vậy tổng 6 chữ số sau dấu chấm là: 0.

Bài tập 70:

Cho hai số nguyên dương 𝑁 và 𝐾. Ta có 𝑋10 của một số là nhân số đó với 10, ví dụ số 𝑋10 của 24 là 240; 𝑋10 tiếp được số 2400… Số 𝑆 là tổng của số 𝑁 và 𝐾 số 𝑋10 liên tiếp của N. Hãy in ra tổng các chữ số của 𝑆.

Ví dụ: 𝑁 = 123, 𝐾 = 3 thì ta có 𝑆 = 123 + 1230 + 12300 + 123000 = 136653. Vậy tổng các chữ số của số S là: 1 + 3 + 6 + 6 + 5 + 3 = 24.

Bài tập 71:

Cho 𝑁 điểm phân biệt trên hệ trục toạ độ Oxy. Hãy đếm xem có bao nhiêu hình chữ nhật có các cạnh song song với các trục toạ độ mà bốn đỉnh là bốn điểm trong 𝑁 điểm đã cho. Dữ liệu: nhập vào từ file HCN.INP - Dòng đầu tiên gồm một số nguyên dương 𝑁 là số lượng các điểm. - 𝑁 dòng sau, mỗi dòng gồm hai số nguyên 𝑥, 𝑦 là toạ độ của một điểm.

points

Ví dụ:

Hình chữ nhật tìm thấy

Bài tập 72:

Cho số 𝑁, 𝑋 và một dãy số có 𝑁 phần tử. Hãy chọn ra ít phần tử nhất trong 𝑁 phần tử đó để tích của chúng chia hết cho 10𝑋. In ra số lượng phần tử ít nhất đã chọn.

Ví dụ: Với N = 5, X = 4 và dãy số 5 phần tử là 10, 8, 100, 25, 6, thì kết quả là 3, tức là chọn được 3 số để tích chia hết cho 104 là 8 x 25 x 100 = 20000.

Bài tập 73: Dãy bậc K

Mít mới học ba định nghĩa mới liên quan đến dãy số như sau:

  • Một dãy số được gọi là dãy đầy đủ bậc K khi dãy số có đúng K phần tử và gồm đủ các phần tử từ 1 đến K. Ví dụ dãy số (2, 3, 1) là dãy số đầy đủ bậc 3.

  • Dãy số B được gọi là dãy con của dãy số A khi dãy số B được tạo ra bằng cách xóa bỏ một số phần tử của của dãy số A (giữ nguyên thứ tự trước sau và có thể không xóa bỏ phần tử nào). Ví dụ dãy số A là (4, 2, 1, 2, 5, 6), một số dãy số con của dãy số A là (4, 1, 6); (2, 2, 5, 6); (4, 2, 1, 2, 5, 6); …

  • Dãy số A được gọi là có thứ tự từ điển nhỏ hơn dãy số B khi tồn tại vị trí i mà:

    - Với mọi vị trí j (j < i) thì aj = bj

    - ai < bi.

Sau khi học xong lý thuyết, thầy giáo đã giao cho Mít một bài tập rất khó: cho một số K và dãy số A có N số nguyên dương không lớn hơn K. Hãy tìm dãy con của dãy số A có thứ tự từ điển nhỏ nhất và là một dãy đầy đủ bậc K.

Yêu cầu: Hãy lập trình giúp Mít tìm dãy con thỏa mãn yêu cầu của thầy giáo.

Ví dụ: Nếu nhập vào N = 4, K = 3 và các phần tử của dãy là 3, 2, 1, 2 thì kết quả sẽ là: 3, 1, 2.

Bài tập 74: San bằng

Bản đồ mặt bằng của một công trình xây dựng là một hình chữ nhật kích thước m × n được chia thành lưới ô vuông đơn vị (m, n ≤ 106), các hàng ô của lưới được đánh số từ 1 tới m từ trên xuống dưới và các cột ô của lưới được đánh số từ 1 tới n từ trái qua phải. Ô nằm trên giao của hàng x và cột y được gọi là ô (x, y). Mùa mưa đến, người ta muốn tôn cao mặt bằng của công trình để tránh ngập úng bằng cách dùng k (k ≤ 106) chuyến xe ben chở đất đá bên ngoài đổ vào mặt bằng công trình. Chuyến xe thứ i đổ vào ô (xi, yi) đúng ai tấn đất đá (ai là số nguyên và 1 ≤ i ≤ k). Tổng khối lượng đất đá được các chuyến xe ben đổ vào công trình là số nguyên không vượt quá 1012 và chia hết cho m × n. Tiếp theo, máy ủi được điều tới để san đều toàn bộ khối lượng đất đá này vào các ô. Chi phí để máy ủi chuyển mỗi tấn đất đá từ một ô sang một ô khác kề cạnh là 1 (chú ý là không được chuyển đất đá ra khỏi mặt bằng công trình). Yêu cầu: Tìm cách điều khiển các máy ủi để san đều toàn bộ khối lượng đất đá vào các ô với chi phí ít nhất. Cho biết chi phí đó.

Dữ liệu nhập vào theo dạng như sau:

  - Đầu tiên nhập m, n và k.

  - k dòng tiếp theo mỗi dòng i nhập ba giá trị xi, yi và ai.

Ví dụ, nếu nhập vào dữ liệu như sau:

3 4 4
1 1 4
1 1 5
3 1 3
3 2 6

Thì kết quả sẽ là: 18

Giải thích:

San lấp

Bài tập 75: Bội chính phương

Cho một dãy số A có N phần tử. Tìm số nguyên dương P nhỏ nhất thoả mãn: P là số chính phương và P chia hết cho tất cả các phần tử của dãy số A.

Ví dụ: Nếu nhập vào N = 3 và nhập vào 3 phần tử của dãy A là 2, 1, 3, thì kết quả P = 36.

Bài tập 76: Xâu tương đồng

Cho 2 xâu 𝐴 và 𝐵 chỉ chứa các kí tự in hoa trong khoảng từ A tới Z. Kí hiệu |𝐴|, |𝐵| lần lượt là độ dài của hai xâu 𝐴 và 𝐵, (1 ≤ |𝐴|, |𝐵| ≤ 50000). Các kí tự của mỗi xâu được đánh số từ 1.

Gọi 𝐴[𝑖 … 𝑗] là xâu con gồm các kí tự liên tiếp của xâu 𝐴 từ vị trí thứ 𝑖 đến vị trí thứ 𝑗 (1 ≤ 𝑖 ≤ 𝑗 ≤ |𝐴|). Gọi 𝐵[𝑝 … 𝑞] là xâu con gồm các kí tự liên tiếp của xâu 𝐵 từ vị trí thứ 𝑝 đến vị trí thứ 𝑞 (1 ≤ 𝑝 ≤ 𝑞 ≤ |𝐵|).

Hai xâu con 𝐴[𝑖 … 𝑗] và 𝐵[𝑝 … 𝑞] được gọi là tương đồng nhau nếu tập hợp các chữ cái xuất hiện trong xâu con 𝐴[𝑖 … 𝑗] bằng với tập hợp các chữ cái xuất hiện trong xâu con 𝐵[𝑝 … 𝑞].

Xét ví dụ 𝐴 = "AAABBC" và 𝐵 = "AZACAB" ta có:

𝐴[3 … 5] = "ABB" và 𝐵[5 … 6] = "AB" là tương đồng nhau vì cùng có tập hợp các chữ cái xuất hiện là { ′A′, ′B′}

𝐴[3 … 6] = "ABBC" và 𝐵[4. .6] = "CAB" là tương đồng nhau vì cùng có tập hợp các chữ cái xuất hiện là {′A′, ′B′, ′C′}.

Yêu cầu: cho xâu 𝐴 và xâu 𝐵, hãy xác định số bộ (𝑖,𝑗, 𝑝, 𝑞) (1 ≤ 𝑖 ≤ 𝑗 ≤ |𝐴|; 1 ≤ 𝑝 ≤ 𝑞 ≤ |𝐵|) thỏa mãn 𝐴[𝑖 … 𝑗] tương đồng với 𝐵[𝑝 … 𝑞].

Dữ liệu: Vào từ thiết bị nhập chuẩn:

Dòng thứ nhất ghi xâu A.

Dòng thứ hai ghi xâu B.

Kết quả: Ghi ra thiết bị xuất chuẩn một số nguyên duy nhất là số lượng bộ (𝑖,𝑗, 𝑝, 𝑞) thỏa mãn yêu cầu.

Ví dụ:

Xâu tương đồng

Bài tập 77: Bốc bi

Hộp bi của Bờm có dạng hình chữ nhật kích thước 𝑚 × 𝑛 được chia thành lưới ô vuông đơn vị (𝑚, 𝑛 ≤ 106). Các hàng ô của lưới được đánh số từ 1 tới 𝑚 từ trên xuống dưới và các cột ô của lưới được đánh số từ 1 tới 𝑛 từ trái qua phải. Ô nằm trên giao của hàng 𝑥 và cột 𝑦 được gọi là ô (𝑥, 𝑦). Ban đầu hộp bi chưa có viên bi nào.

Đầu tiên, Bờm thực hiện 𝑘 lần bốc bi vào hộp (𝑘 ≤ 106), ở lần thứ 𝑖, Bờm bốc 𝑎𝑖 viên bi cho thêm vào ô (𝑥𝑖 , 𝑦𝑖 ), tổng số bi Bờm bốc vào hộp không vượt quá 1012.

Bờm nhận thấy rằng nếu để các viên bi phân bố không đều trong các ô, sẽ có ô chứa quá nhiều viên bi gây khó khăn cho việc đóng hộp. Bờm bèn chế tạo một robot để di chuyển bi giữa các ô sao cho tất cả các ô trong hộp đều chứa số bi giống nhau. Robot của Bờm trong một giây có thể chuyển được đúng một viên bi từ một ô sang một ô khác chung đỉnh với ô đó (chú ý là không được chuyển bi ra khỏi hộp).

Yêu cầu: Tìm cách điều khiển robot để chia đều số bi trong hộp ra các ô trong thời gian ít nhất. Cho biết thời gian robot hoàn thành công việc theo phương án tìm được.

Dữ liệu: Vào từ thiết bị nhập chuẩn:

  - Dòng 1 chứa ba số nguyên dương 𝑚, 𝑛, 𝑘

  - 𝑘 dòng tiếp theo, dòng thứ 𝑖 chứa ba số nguyên dương 𝑥𝑖 , 𝑦𝑖 , 𝑎𝑖.

Kết quả: Ghi ra thiết bị xuất chuẩn một số nguyên duy nhất là thời gian robot hoàn thành công việc theo phương án tìm được. Trong trường hợp robot không thể chia đều số bi trong hộp ra các ô, in ra số -1.

Ví dụ:

Bốc bi 1

Bốc bi 2

Bài tập 78: Tàu cao tốc

Một đất nước có 𝑛 thành phố, các thành phố được đánh số từ 1 tới 𝑛. Có 𝑚 tuyến tàu cao tốc, mỗi tuyến kết nối trực tiếp hai thành phố khác nhau theo cả hai chiều, đảm bảo từ một thành phố bất kỳ có thể đi đến một thành phố bất kỳ khác thông qua (trực tiếp hoặc gián tiếp) 𝑚 tuyến tàu cao tốc đó.

Vì kinh phí bảo trì hàng năm cho hệ thống tàu cao tốc là rất lớn, tiêu tốn một lượng lớn ngân sách của nhà nước, Bộ giao thông và Vận tải dự định sẽ loại bỏ đúng hai tuyến tàu cao tốc trong số 𝑚 tuyến (việc loại bỏ nhiều hơn hai tuyến sẽ khiến người dân phàn nàn). Hai thành phố 1 và 2 là hai thành phố trọng yếu của đất nước nên việc loại bỏ các tuyến tàu phải thỏa mãn điều kiện: từ thành phố 1 vẫn có thể đi đến được thành phố 2 thông qua các tuyến tàu không bị loại bỏ.

Yêu cầu: Bạn hãy giúp Bộ giao thông và Vận tải đếm xem có nhiêu cách loại bỏ đúng hai tuyến tàu thỏa mãn yêu cầu. Hai cách được gọi là khác nhau nếu có một tuyến tàu bị loại bỏ trong cách này nhưng không bị loại bỏ trong cách kia.

Dữ liệu: Vào từ thiết bị vào chuẩn theo khuôn dạng sau:

  • Dòng đầu tiên chứa hai số nguyên dương 𝑛 và 𝑚 (2 ≤ 𝑛 ≤ 105, 𝑚 ≤ 2 × 105) lần lượt là số lượng thành phố và số lượng tuyến tàu cao tốc;

  • 𝑚 dòng sau, mỗi dòng chứa hai số nguyên 𝑢 và 𝑣 (𝑢 ≤ 𝑛, 𝑣 ≤ 𝑛, 𝑢 ≠ 𝑣) cho biết có một tuyến tàu cao tốc hai chiều kết nối trực tiếp thành phố 𝑢 và thành phố 𝑣. Các số trên cùng một dòng được cách nhau bởi dấu cách.

Kết quả: Ghi ra thiết bị ra chuẩn gồm một số nguyên duy nhất là số cách loại bỏ đúng hai tuyến tàu cao tốc sao cho từ thành phố 1 vẫn đi đến được thành phố 2 thông quá các tuyến tàu cao tốc không bị loại bỏ.

Ví dụ:

Tàu cao tốc

Bài tập 79: Phần thưởng

An là người thắng cuộc trong cuộc thi "Tìm hiểu Đoàn Thanh niên Cộng sản Hồ Chí Minh" và được nhận phần thưởng của Ban tổ chức. Ban tổ chức chuẩn bị một bảng kích thước m x n. Các dòng của bảng được đánh số từ 1 đến m, từ trên xuống dưới, dòng i (1 <= i <= m) có trọng số là ai. Các cột của bảng được đánh số từ 1 đến n, từ trái qua phải, cột j (1 <= j <= n) có trọng số là bj. Ô nằm trên giao của dòng và cột được gọi là ô (i,j) và trên ô đó ghi một số nguyên có giá trị ai + bj (1 <= i <= m; 1 <= j <= n).

Để nhận phần thưởng, An được phép chọn một bảng con kích thước w x h chiếm trọn w x h ô của bảng và phần thưởng mà An nhận được sẽ có giá trị bằng tổng giá trị các ô nằm trong bảng con đó.

Yêu cầu: Hãy xác định tổng giá trị lớn nhất mà An có thể nhận được.

Dữ liệu:

  + Dòng thứ nhất chứa bốn số nguyên dương m, n, w, h (w <= m; h <= n);

  + Dòng thứ hai chứa m số nguyên a1, a2, ..., am (|ai| <= 106, i = 1, 2, ..., m);

  + Dòng thứ hai chứa n số nguyên b1, b2, ..., bm (|bj| <= 106, j = 1, 2, ..., n);​

Kết quả: Hiển thị một số nguyên duy nhất là tổng giá trị lớn nhất mà An có thể nhận được.

Bài tập 80: 

 

» Tiếp: Quiz 1
« Trước: Bài tập phần vẽ hình
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!