Thứ Năm, 22 tháng 9, 2016

Chữ số tận cùng khác 0

Nguồn: Đề thi đề nghị DH 2016
Cho số nguyên dương . Gọi  là bội số chung nhỏ nhất của các số 1, 2, ...., . Hãy đưa ra chữ số tận cùng khác 0 của .
Dữ liệu: Vào từ file văn bản NZERO.INP gồm nhiều bộ dữ liệu, mỗi dòng một số nguyên . Kết thúc bằng số 0 (không có câu trả lời cho dòng này)
Kết quả: Ghi ra file văn bản NZERO.OUT gồm nhiều dòng, mỗi dòng ghi kết quả tương ứng với dòng trong input
Ví dụ:
NZERO.INP
NZERO.OUT
3
10
0
6
2
Ghi chú:
·     Subtask 1: , có không quá 10 bộ dữ liệu
·         Subtask 2: , có không quá 100 bộ dữ liệu

·         Subtask 3: , có không quá 10000 bộ dữ liệu

Chủ Nhật, 18 tháng 9, 2016

ĐƯỜNG ĐI NGẮN NHẤT

Hệ thống giao thông của thành phố có N nút giao thông đánh số 1,2,3,... với M tuyến đường nối trực tiếp hai chiều.
Bờm xuất phát từ nút giao thông 1 ở thời điểm 0 và cần di chuyển tới nút giao thông N trong thời gian nhanh nhất. Tuy nhiên, hiện tại đang là thời kì kiểm soát an ninh gắt gao nên tại mỗi nút giao thông, có thể có những thời điểm bị chặn chiều đi để kiểm tra hành chính, và thời điểm rời đi phải chuyển sang thời điểm không bị chặn sớm nhất sau đó.
Chẳng hạn, nếu Bờm ở nút 2 ở thời điểm 3, muốn di chuyển đến nút 4 trong khoảng thời gian 5 thì Bờm sẽ tới nút 4 ở thời điểm 8, tuy nhiên nếu 2 bị chặn chiều ở thời điểm 3, Bờm phải chờ đến thời điểm 4 mới đi được, nếu vẫn bị chặn, Bờm phải chờ đến thời điểm 5, … Các nút giao thông không bị chặn chiều đến.
Cho thông tin về các tuyến đường và các thời điểm bị chặn của mỗi nút giao thông, hãy xác định thời điểm Bờm có thể đến N sớm nhất.
Dữ liệu: vào từ file WST.INP:
·     Dòng 1: hai số nguyên N, M  (2<=N<=10^5; 0<M<=10^5)
·     Dòng 2 …M+1: mỗi dòng ba số nguyên u, v, t (u<>v; 1<=t<=10^4) thể hiện một tuyến đường nối hai nút u, v tốn thời gian di chuyển t. Các tuyến đường là hai chiều và giữa hai nút bất kì có không quá một tuyến đường nối trực tiếp chúng.
·         Dòng M+2 … M+N+1: dòng M+2+i ghi thông tin về nút giao thông i, bắt đầu bằng số nguyên C là số thời điểm bị chặn, tiếp theo là C số nguyên không âm theo trật tự tăng chỉ các thời điểm nút i bị chặn. Dữ liệu đảm bảo tổng số lượng thời điểm bị chặn của toàn hệ thống không vượt quá 105.
Kết quả: đưa ra file wst.out
·         Ghi số nguyên duy nhất là thời điểm Bờm đến N sớm nhất có thể, số này bằng  -1 nếu Bờm không có cách di chuyển tới N.
Ví dụ:

WST.INP
WST.OUT
giải thích
4 6
2 4 5
1 3 3
3 4 3
1 4 8
2 3 4
1 2 2
0
1 3
2 3 4
0
7
Từ 1, Bờm có thể:
+ Đi trực tiếp tới 4, tốn thời gian 8
+ Đi tới 3, đến 3 ở thời điểm 3, ở đó các thời điểm 3, 4 bị chặn, Bờm chỉ có thể xuất phát từ 3 ở thời điểm 5, do đó cũng đến 4 ở thời điểm 8
+ Đi tới 2 ở thời điểm 2, thời điểm này 2 không bị chặn nên Bờm có thể đi ngay đến 4, tốn thời gian 5; cách này cho thời điểm đến 4 là 7.

Guess Number

Bính và Thân đang chơi trò chơi đoán số. Bính nghĩ ra một số nguyên x nằm trong khoảng từ 1 đến n, và Thân sẽ là người phải đoán số nguyên đó. Thân có thể hỏi Bính các câu hỏi có dạng: “Số nguyên Bính đang nghĩ có chia hết cho số nguyên y không? “
Luật chơi của trò chơi như sau: đầu tiên Thân sẽ hỏi tất cả các hỏi mà Thân muốn (số lượng câu hỏi là tùy thích, Thân có thể không hỏi câu nào), sau đó Bính sẽ trả lời tất cả các câu hỏi rằng “Có” hoặc “Không”. Sau khi nhận được tất cả các câu trả lời, Thân sẽ phải đoán xem số Bính đang nghĩ là bao nhiêu.
Thật không may, Thân không giỏi số học cho lắm, bạn hãy giúp Thân tìm số câu hỏi nhỏ nhất mà Thân cần phải hỏi để sao cho dù Bính có chọn số nào thì Thân cũng có thể đoán ra.
Input:
-         Gồm một dòng duy nhất chứa số nguyên n (1 ≤ n ≤ 105)
Output:
-         Ghi ra một dòng duy nhất là kết quả của bài toán
Example:
Input
Output
4
3
6
4
Với n = 4, Thân sẽ hỏi với các số y = 2, y = 4, y = 3. Nếu 3 lần trả lời của Bính lần lượt là: Không, Không, Không thì đó là số 1; Có, Không, Không thì đó là số 2; Không, Không, Có thì đó là số 3; Có, Có, Không thì đó là số 4. Như vậy với tối thiểu là 3 lần hỏi Thân sẽ đoán ra được số Bính nghĩ dù đó là bất cứ số nào.
Subtask 1: (50%) n ≤ 103
Subtask 2: (50%) n ≤ 105