Tải bản đầy đủ (.pptx) (11 trang)

Giáo án powerpoint python 11_BÀI TẬP VÀ THỰC HÀNH: Tệp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (578.1 KB, 11 trang )

Bài 16

VÍ DỤ VỀ LÀM VIỆC VỚI TỆP
(2 tiết)


Bài 1
Cho N điểm trong mặt phẳng tọa độ A i = (xi, yi). Khoảng cách Manhattan giữa hai điểm A và B có giá
trị D = |xA – xB| + |yA – yB|
Yêu cầu: Tính khoảng cách Manhattan lớn nhất giữa các cặp điểm đã cho
Dữ liệu vào: Từ file văn bản DISTANCE.INP:
Dòng 1: ghi số nguyên dương n (2 ≤ n ≤ 105).

- Dòng 2 .. N + 1: mỗi dòng 2 số nguyên thể hiện tọa độ của điểm (|x i|, |yi| ≤ 109). Các số viết cách
nhau một dấu cách
Dữ liệu ra: Ghi ra file văn bản DISTANCE.OUT
- Gồm 1 số nguyên duy nhất là kết quả bài toán




Bài 2
Xét dãy số nguyên dương khác nhau từng đôi một: a1, a2, …an, trong đó 1 ≤ ai ≤ 106, 1 ≤ n ≤ 105). Với số
nguyên x cho trước (1 ≤ x ≤ 200000). Hãy xác định số cặp (ai, aj) thỏa mãn các điều kiện:
+ ai + aj = x
+1≤i≤j≤n
Dữ liệu vào: Từ file văn bản SUMX.INP gồm:
Dòng 1: chứa số nguyên dương n
Dòng 2: chứa n số nguyên a1, a2, …an. Các số cách nhau bởi dấu cách
Dòng 3 chứa số nguyên x
Dữ liệu ra: Ghi ra file văn bản SUMX.OUT một số nguyên – số cặp tìm được






Bài 3
Cho N (N <= 10000) đoạn thẳng trên trục số với các điểm đầu xi và độ dài di (|xi|, di là những số ngun
khơng vượt q 109). Tính tổng độ dài trên trục số bị phủ bởi N đoạn trên
Ví dụ: có 3 đoạn x1 = -5, d1= 10; x2 = 0, d2 = 6; x3 = -100, d3 = 10 thì tổng độ dài trên trục số bị phủ bởi
3 đoạn trên là 21
Dữ liệu vào: Từ file văn bản SEG.INP gồm:
Dòng 1: chứa số nguyên n (n ≤ 10000).
Dòng thứ i trong n dòng sau chứa 2 số nguyên xi, di. Các số cách nhau bởi dấu cách
Dữ liệu ra: Ghi ra file văn bản SEG.OUT là tổng độ dài trên trục số bị phủ bởi n đoạn trên


SEG.inp
3

SEG.out
21

-5 10
0 6
-100 10
6

65

-5 10
0 6

-100 10
5 20
30 10
35 20
7
-5 10
0 6
-100 10
5 20
30 10
35 20
45 5

65


Gợi ý: (hãy vẽ trục số để làm cho dễ)
- Sắp xếp dãy theo chiều tăng dần của xi.
- Tính tổng s các di.
- Xét các khả năng:
+ Nếu xi+1 >= xi+di thì chuyển (ko làm gì cả vẫn giữ nguyên s)
+ Nếu xi+1 < xi+di <=xi+1 + di+1 thì s = s-(xi+di - xi+1)
+ Nếu xi+di > xi+1 + di+1 thì s = s-di+1




×