You are on page 1of 2

Bài 1.

Chi phí tính tổng


Thời gian thực hiện việc tính tổng của 2 số nguyên dương trên máy tính phụ thuộc vào độ lớn của chúng. Để
đơn giản ta coi rằng cộng hai số nguyên dương a và b phải trả chi phí cho thời gian có giá trị bằng 5% tổng
giá trị a + b. Giả sử cần tính tổng của N số nguyên dương cho trước, dễ thấy có nhiều cách thực hiện, mỗi
cách đòi hỏi chi phí thời gia nhất định. Chẳng hạn cần tính tổng các số 10, 11, 12, 13 ta có thể thực hiện lần
lượt 10+11 (mất chi phí là 2.3), kết quả đem cộng với 12 (mất chi phí 1.65) và cuối cùng cộng với 13 mất chi
phí là 2.3. Như vậy tính tổng chi phí theo cách này là 1.05 +1.65+ 2.3 = 5. Một cách khác là 10 + 11 (chi phí
1.05), 12 + 13 (chi phí là 1.25) cuối cùng cộng 2 kết quả đó với nhau chi phí là 2.3 vậy tổng là
1.05+1.25+2.3 = 4.6.
Yêu cầu cho dãy n số nguyên dương. Cần tìm cách tính tổng của các số này với tổng chi phí thời gian nhỏ
nhất.
Dữ liệu vào: đọc từ file sumation.inp
Dòng đầu tiên chứa số nguyên dương N (2 ≤ N ≤ 15000)
Dòng thứ hai ghi N số nguyên sương mà ta cần tính tổng.
Dữ liệu ra: ghi vào file sumation.out tổng chi phí thời gian tìm được. (ghi ra lấy 2 chữ số thập phân).
Ví dụ
Sumation.inp Sumation.out
4 4.6
10 11 12 13
2 0.15
12

Bài 2. Cho mảng 2 chiều kích thước NxN (1 ≤ N ≤ 1000), các dòng của mảng được đánh số từ 1 đến n từ
trên xuống dưới. các cột của mảng được đánh số từ 1 đến n từ trái qua phải. Ô nằm ở vị trí giao của dòng i
và cột j được gọi là ô (i,j), trên ô (i,j) có ghi số nguyên dương aij (1 ≤ aij ≤ 1000, 1 ≤ i,j ≤ N).
Yêu cầu: hãy đếm tất cả các ô mà tại đó tổng các số trên dòng i và tổng các số trên cột j bằng nhau.
Dữ liệu vào: file demo.inp:
Dòng đầu tiên chứa số nguyên dương N
N dòng tiếp theo mỗi dòng chứa n số nguyên aij, các số cách nhau một khoảng trằng.
Dữ liệu ra ghi vào file demo.out một dòng duy nhất là số ô (i,j) thỏa mãn yêu cầu.
Ví dụ:
Demo.inp Demo.out

3 3
123
526
729

Bài 3. Kí tự duy nhất đầu tiên.


Cho một chuỗi kí tự s chỉ gồm chữ cái tiếng anh in thường. các kí tự trong chuỗi được đánh số thứ tự 1, 2, 3
…,N (1 ≤N ≤ 200, với n là độ dài xâu S).
Yêu cầu tìm vị trí đầu tiên của kí tự xuất hiện duy nhất 1 lần trong s. Nếu không có kí tự nào thỏa mãn yêu
cầu của đề bài thì in ra -1.
Dữ liệu vào: đọc từ file kituduynhat.inp:
Dòng đầu tiên ghi số T (1 ≤ T ≤ 100) là số bộ dữ liệu vào.
T dòng tiếp theo, mỗi dòng chứa một bộ dữ liệu vào là một chuỗi S có độ dài tối đa 200 kí tự.
Dữ liệu ra ghi ra file kituduynhat.out gồm T dòng ứng với T bộ dữ liệu: mỗi dòng chứa 1 số nguyên là vị trí
đầu tiên của kí tự xuất hiện duy nhất một lần trong S.
Ví dụ:
kituduynhat.inp kituduynhat.out

4 1
abcdbc 6
abcdefabcde -1
ababab 1
a
Bài 4. Chọn việc
Có n công việc cần thực hiện trên một máy tính, mỗi việc đòi hỏi đúng 1 giờ chạy máy. Với mỗi việc ta biết
thời hạn cuối cùng phải nộp kết quả trước hoặc đúng hạn.
Yêu cầu: chỉ có 1 máy tính, hãy lập lịch để thực hiện đủ n công việc trên máy tính sao cho tổng tiền thu
được là lớn nhất với thời gian hoạt động của máy tính là nhỏ nhất.
Giả thiết rằng máy tính được khởi động vào đầu ca (thời điểm t = 0) và chỉ tắt máy sau khi đã hoàn thành đủ
n công việc.
Dữ liệu vào: file chonviec.inp:
Dòng đầu tiên ghi số n (1 ≤ N ≤ 200)
N dòng tiếp theo dòng thứ i ghi 2 số nguyên ti và mi tương ứng thời hạn giao nộp kết quả công việc và
số tiền thù lao của công việc thứ i (1 ≤ mi ≤ 106, 1 ≤ ti ≤104 )
Dữ liệu ra: ghi ra file chonviec.out gồm n + 1 dòng
N dòng đầu tiên dòng thứ j ghi số tự nhien i cho viết việc thứ i được làm trong đơn vị thời gian j.
Dòng cuối cùng ghi tổng tiền thu được.
Ví dụ:
chonviec.inp chonviec.out
4 4
1 15 2
3 10 3
5 100 1
1 27 137

You might also like