You are on page 1of 4

CONTEST #07

Bài 1: CONSTRUCT
Trên đường phố sẽ được xây n tòa nhà nằm cạnh nhau, nhìn từ trái qua phải, độ cao dự kiến của
chúng lần lượt là a1, a2,…., an.
Ban đầu, độ cao hi của các tòa nhà bằng 0.
Giám đốc H là tổng phụ trách. Ở mỗi giai đoạn, giám đốc H chọn 1 đoạn [L, R] để làm việc.
Trong giai đoạn này, khi độ cao các tòa nhà hL, hL+1,…, hR sẽ tăng lên 1. Khi hi = ai với mọi 1 ≤ i
≤ n, dự án sẽ dừng.
Kế hoạch xây dựng luôn thay đổi, có m sự kiện thuộc 2 kiểu sau:
• 1 L R k (1 ≤ L ≤ R ≤ n,1 ≤ k ≤ 105) thay đổi ax thành ax + k với mọi L ≤ x ≤ R
• 2 L R (1 ≤ L ≤ R ≤ n), giả sử a1,a2,…,aL−1,aR+1,aR+2,…,an=0, hỏi xem cần tối thiểu bao
nhiêu giai đoạn để dự án hoàn thành.
INPUT: CONSTRUCT.INP
• Dòng đầu ghi số test T (1≤T≤1000).
• Ở mỗi test: dòng đầu ghi 2 số n và m (1≤n,m≤100000) là số tòa nhà và số sự kiện.
• Dòng thứ 2 ghi n số nguyên a1,a2,...,an (1≤ai≤100000).
• Sau đó là m dòng, mỗi dòng ghi m sự kiện như mô tả ở trên. Đảm bảo ∑n≤106 và
∑m≤106
OUTPUT: CONSTRUCT.OUT
Với mỗi truy vấn, in ra trên 1 dòng kết quả cần tìm

construct.inp construct.out Giải thích


1 7 Với truy vấn đầu tiên 7 thao tác là:
54 6 1. 1 1 1 1 1
13145 6 2. 12111
215 3. 13111
1342 4. 13122
224 5. 13133
215 6. 1 3 1 4 4
7. 1 3 1 4 5
Chú ý:
- 30% số test ứng với ∑n <=1000, ∑m <=1000
- 30% số test ứng với ∑n <=1000, ∑m <=50000
- 40% số test tiếp theo không có giới hạn gì thêm.
Bài 2: CONCOMP
Trường HNA có khai trương lại phòng máy tính số 1, bao gồm 𝑁 máy tính và 𝑀 cáp kết nối một
số cặp máy tính. Các máy tính được đánh chỉ số từ 1 đến 𝑁, các dây cáp nối được đánh chỉ số từ
1 đến 𝑀.
Trong bài giảng chuyên đề về thành phần liên thông trên đồ thị cho học sinh đội tuyển môn Tin
học, giáo viên đưa ra bài toán nhằm kiểm tra về độ tin cậy của mạng bằng một loạt các thí
nghiệm trên mạng máy tính, mỗi thí nghiệm thực hiện 3 thao tác theo thứ tự sau:
1. Tạm thời ngắt kết nối các dây cáp có chỉ số từ 𝑙 đến 𝑟.
2. Đếm số lượng các thành phần máy tính liên thông trong mạng được xác định tại thời
điểm đó.
3. Kết nối lại các dây cáp bị ngắt kết nối có chỉ số từ 𝑙 đến 𝑟.
Quy ước: Một máy tính không kết nối với máy tính nào cũng được coi là một thành phần liên
thông.
Với mỗi cặp chỉ số dây cáp 𝑙, 𝑟 mà giáo viên đưa ra, hãy thực hiện thí nghiệm trên.
INPUT: CONCOMP.INP
• Dòng đầu tiên chứa hai số nguyên 𝑁 và 𝑀 (2 ≤ 𝑁 ≤ 2.103; 1 ≤ 𝑀 ≤
3.104);
• 𝑀 dòng tiếp theo mỗi dòng chứa hai số nguyên 𝑢, 𝑣 thể hiện máy tính
𝑢 kết nối với máy tính 𝑣 trong mạng;
• Dòng tiếp theo chứa số nguyên 𝑘 (1 ≤ 𝑘 ≤ 5. 104 ) là số lượng thí
nghiệm;
• 𝑘 dòng tiếp theo, mỗi dòng chứa hai số nguyên 𝑙, 𝑟 (1 ≤ 𝑙 ≤ 𝑟 ≤ 𝑀)
thể hiện một thí nghiệm trên mạng máy tính.
OUTPUT: CONCOMP.OUT gồm 𝑘 dòng, mỗi dòng chỉ ra một số nguyên là số thành phần
máy tính liên thông tương ứng với mỗi thí nghiệm.
Ví dụ:
CONCOMP.INP CONCOMP.OUT Giải thích
65 4 Lúc đầu thì có 2 thành phần liên
12 5 thông là (1,2,3,6) và (4,5)
54 6 Câu hỏi đầu tiên ngắt các dây nối
23 3 từ 1 đến 3 là bỏ đi các dây (1,2),
31 4 (5,4), (2,3) thì ta có 4 thành phần
36 2 liên thông là (1,3,6), (2), (4), (5)
6 Câu hỏi 2 bỏ từ 2 đến 5 nghĩa là bỏ
13 các dây (5,4), (2,3), (3,1), (3,6) thì
25 có 5 thành phần liên thông là (1,2),
15 (3), (4), (5), (6)
55
24
33

Chú ý:
- 30 % số test ứng với n <=500, m<=5000, k<=1000
- 40 % số test tiếp theo ứng với n<=500, m<=30000, k<=10000
- 30 % số test tiếp theo ứng với n<=2000, m<=30000, k<=50000
BÀI 3: TREE
Cho một cái cây với N nút đánh số từ 1 đến N. Cho M cặp nút (a1, b1), (a2, b2),..(aM, bM).
Việc các bạn cần làm là định hướng các cạnh của cây sao cho tồn tại một đường đi từ ai đến bi
hoặc từ bi đến ai.
Yêu cầu: Có bao nhiêu cách để làm được việc đó. Kết quả có thể rất lớn nên chỉ đưa ra kết quả
mod cho 10^9+7
INPUT: TREE.INP
• Dòng thứ nhất gồm 2 số nguyên N và M (1<=N, M<= 3*10^5) là số
nút của cây và số cặp cạnh
• N-1 dòng sau gồm 2 số nguyên dương là 2 nút được nối bởi một cạnh
• Dòng thứ i trong M dòng tiếp theo là hai số nguyên dương (ai,bi)
tương ứng. Các cặp cạnh là khác nhau
OUTPUT: TREE.OUT
Cần đưa ra một số duy nhất là kết quả của bài toán chia dư cho 10^9+7
Ví dụ:
TREE.INP TREE.OUT Giải thích
41 4 Có 4 cách như hình
12 1->2->3->4
23 1->2<-3<-4
34 1<-2->3->4
24 1<-2<-3<-4

43 0 Không có cách nào


12
13
14
23
24
34
Chú ý:
- 20% số test ứng với cây đã cho có dạng thẳng (nút I nối với i+1 khi i<n)
- 30% số test có N, M<=10^3
- 50% số test còn lại không có ràng buộc gì thêm

You might also like