Tải bản đầy đủ (.doc) (9 trang)

Bai tap nang cao do thi pascal

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 (236.47 KB, 9 trang )

← SPOJ – Lowest Common Ancestor – LCA
SPOJ – Above the Median – KMEDIAN →

SPOJ – LUBENICA – LUBENICA
Posted on 11/01/2015by connhangheovodanh

SPOJ – LUBENICA – LUBENICA
Mạng lưới giao thông ở 1 nước bao gồm N thành phố (đánh số từ 1 đến N) và N-1 đường
nối các thành phố với nhau. Có một đường đi duy nhất giữa mỗi cặp thành phố. Mỗi con
đường có một độ dài xác định.
Viết chương trình, với mỗi K cặp thành phố cho trước, tìm độ dài của con đường ngắn
nhất và dài nhất trên đường đi giữa 2 thành phố này.

Dữ liệu
Dòng đầu tiên chứa số nguyên N, 2 ≤ N ≤ 100 000.
Mỗi dòng trong số N-1 dòng tiếp theo chứa 3 số nguyên A, B, C cho biết có một con
đường độ dài C giữa thành phố A và thành phố B. Độ dài của mỗi con đường là số nguyên
dương không vượt quá 1000000.
Dòng tiếp theo chứa số nguyên K, 1 ≤ K ≤ 100 000.
Mỗi dòng trong số K dòng tiếp theo chứa 2 số nguyên D và E – chỉ số của 2 thành phố cần
truy vấn.

Kết qủa
Mỗi dòng trong số K dòng chứa 2 số nguyên – độ dài của con đường ngắn nhất và dài
nhất trên đường nối giữa 2 thành phố tương ứng.

Ví dụ
Dữ liệu:
5
2 3 100
4 3 200


1 5 150
1 3 50


3
2 4
3 5
1 2
Kết qủa
100 200
50 150
50 100

SPOJ – STONE1 – Rải sỏi
Xét trò chơi rải sỏi với một người chơi như sau:
Cho cây T và một đống sỏi gồm K viên. Ở mỗi bước người ta lấy 1 viên sỏi từ đống sỏi
và đặt vào một nút lá tuỳ ý. Nếu nút p có r nút lá và tất cả các nút lá đều đã có sỏi thì
người ta gom tất cả các viên sỏi ở các nút lá lại, đặt 1 viên ở nút p, xoá các nút lá và trả
r – 1 viên sỏi còn lại vào đống sỏi.
Trò chơi kết thúc khi đã đặt được 1 viên sỏi vào nút gốc
Yêu cầu: cho cây T, xác định số viên sỏi tối thiểu cần có để trò chơi có thể kết thúc.
Cây có n nút (N <= 400), nút gốc được đánh số 1.

Input


Dòng đầu: số n.




Một số dòng tiếp theo, mỗi dòng có dạng: i m i1 i2 … im. Trong đó m là số nút
con của nút i; i1, i2, …, im: các nút con của nút i.

Output
Số lượng viên sỏi ít nhất cần có.

Example
Input:
7
1 2 2 3
2 2 5 4
3 2 6 7
Output:
3

Lucky Numbers – LUCKYNUM – SPOJ
Posted on 23/07/2014by connhangheovodanh


ĐỀ BÀI :
Lucky Numbers – LUCKYNUM – SPOJ

Trong một số nước châu Á, 8 và 6 được coi là những chữ số may mắn. Bất cứ số
nguyên nào chỉ chứa chữ số 8 và 6 được coi là số may mắn, ví dụ 6, 8, 66,
668, 88, 886 …. Nguyên là một học sinh rất thích toán. Nguyên thích các
số may mắn nhưng chỉ thích các số có dạng
S = 8…86…6
trong đó S có ít nhất một chữ số và chữ số 6 và 8 không nhất thiết phải đồng
thời xuất hiện. Ví dụ, 8, 88, 6, 66, 86, 886, 8866 … là các số có dạng S.
Cho trước một số nguyên dương X (1 < X < 10 000), Nguyên muốn tìm số may

mắn nhỏ nhất dạng S, có không quá 200 chữ số và chia hết cho X.
Nhiệm vụ của bạn là viết một chương trình tìm số đó cho Nguyên.
Dữ liệu vào
Dữ liệu vào gồm nhiều bộ dữ liệu tương ứng với nhiều test. Dòng đầu tiên chứa
một số nguyên dương không lớn hơn 20 là số lượng các bộ dữ liệu. Các
dòng tiếp theo chứa các bộ dữ liệu.
Trên mỗi dòng tiếp theo chứa một số nguyên X tương ứng với mỗi bộ dữ liệu.
Dữ liệu ra
Với mỗi bộ dữ liệu, ghi ra trên một dòng số may mắn dạng S nhỏ nhất chia hết
cho X. Trường hợp không tồn tại số S có không quá 200 chữ số như vậy,
ghi -1.
Ví dụ
Dữ liệu vào
4
6
8
43
5
Dữ liệu ra
6
8
86
-1

VOI05 Bộ sưu tập – COLLECT – SPOJ


Posted on 23/07/2014by connhangheovodanh

ĐỀ BÀI :

VOI05 Bộ sưu tập – COLLECT – SPOJ

Một bộ sưu tập tiền xu cổ được coi là có giá trị phải gồm không ít hơn Z đồng
tiền vàng, S đồng tiền bạc và M đồng tiền đồng. Bộ sưu tập ban
đầu của Alibaba có một số lượng nhất định các đồng tiền vàng, bạc và
đồng nhưng chưa phải là một bộ sưu tập có giá trị.
Tại Trụ sở của Hiệp hội những người sưu tầm tiền cổ có đặt một máy đổi tiền để
giúp hội viên đổi được các bộ sưu tập có giá trị.
Tuy nhiên, máy đổi chỉ hỗ trợ việc đổi tiền trọn gói theo quy tắc đổi gói (Z , S ,
M ) lấy gói (Z , S , M ) đồng tiền. Các quy tắc đổi tiền khác nhau từng đôi
một, được gán số hiệu tuần tự 1,2,3, . . . và được công bố trước. Hội viên
có thể tạo gói tiền thích hợp từ bộ sưu tập của mình để thực hiện việc đổi
tiền. Các đồng tiền nhận được sau mỗi lần đổi được gộp lại với các đồng
tiền mà hội viên đang có để thành một bộ sưu tập mới và có thể được sử
dụng để đổi trong những lần sau nếu cần. Số lần đổi không hạn chế, tuy
nhiên, là người thực dụng, Alibaba luôn cố gắng giảm tới mức tối đa số
lần đổi tiền. Mặt khác, để ngăn chặn việc đầu cơ, Hiệp hội quy định, trong
mọi thời điểm, mỗi hội viên không được giữ quá 4 đồng tiền mỗi
loại và không được phép đổi tiếp khi đã đổi được một bộ sưu tập
có giá trị.
Yêu cầu: Cho biết số lượng các đồng tiền vàng, bạc, đồng mà Alibaba có ban đầu
và các quy tắc đổi tiền. Hãy chỉ ra tất cả các bộ sưu tập tiền cổ có giá trị
mà Alibaba có thể có được sau một số lần đổi không vượt quá k cho trước.
Input
Dòng đầu ghi số nguyên dương K ( K <= 1000 )
Dòng thứ 2 ghi 6 số nguyên không âm Z, S, M, Z , S , M ( 0 <= Z, S, M, Z ,
S , M <= 4 )
Các dòng tiếp theo mỗi dòng ghi 6 số nguyên không âm Z , S , M , Z , S ,
M xác định một quy tắc đổi tiền (0 <= Z , S , M , Z , S , M <= 4 )
Output

Nếu không tồn tại cách đổi để có được bộ sưu tập có giá trị, file kết quả chỉ gồm
một số -1.
0

0

0

1

1

2

2

2

0

0

0

0

0

0


1

2

1

1

1

1

2

1

2

1

2

2

2


Trong trường hợp ngược lại, dòng đầu ghi số v là số các bộ tiền cổ có giá trị mà
Alibaba có thể đổi được.
Dòng thứ i trong v dòng tiếp theo ghi 4 số nguyên Z , S , M , k mô tả bộ sưu tập

có giá trị thứ i và số lần đổi k ít nhất không vượt quá k cần thực hiện để có
được bộ sưu tập ấy. ( Các bộ Z , S , M phải đưa ra theo thứ tự từ
điển )
i

i

i

i

i

i

i

i

DẠO CHƠI ĐỒNG CỎ – PWALK – SPOJ
Posted on 13/06/2014by connhangheovodanh

ĐỀ BÀI :
DẠO CHƠI ĐỒNG CỎ – PWALK – SPOJ

Có N con bò (1 <= N <= 1,000), để thuận tiện ta đánh số từ 1->N, đang ăn cỏ
trên N đồng cỏ, để thuận tiện ta cũng đánh số các đồng cỏ từ 1->N. Biết
rằng con bò i đang ăn cỏ trên đồng cỏ i.
Một vài cặp đồng cỏ được nối với nhau bởi 1 trong N-1 con đường 2 chiều mà
các con bò có thể đi qua. Con đường i nối 2 đồng cỏ A_i và B_i (1 <= A_i

<= N; 1 <= B_i <= N) và có độ dài là L_i (1 <= L_i <= 10,000).
Các con đường được thiết kế sao cho với 2 đồng cỏ bất kỳ đều có duy nhất 1
đường đi giữa chúng. Như vậy các con đường này đã hình thành 1 cấu
trúc cây.
Các chú bò rất có tinh thần tập thể và muốn được thăm thường xuyên. Vì vậy lũ
bò muốn bạn giúp chúng tính toán độ dài đường đi giữa Q (1 <= Q <=
1,000) cặp đồng cỏ (mỗi cặp được mô tả là 2 số nguyên p1,p2 (1 <= p1 <=
N; 1 <= p2 <= N).
DỮ LIỆU

Dòng 1: 2 số nguyên cách nhau bởi dấu cách: N và Q

Dòng 2..N: Dòng i+1 chứa 3 số nguyên cách nhau bởi dấu cách: A_i, B_i,
và L_i

Dòng N+1..N+Q: Mỗi dòng chứa 2 số nguyên khác nhau cách nhau bởi
dấu cách mô tả 1 yêu cầu tính toán độ dài 2 đồng cỏ mà lũ bò muốn đi thăm
qua lại p1 và p2.
KẾT QUẢ

Dòng 1..Q: Dòng i chứa độ dài đường đi giữa 2 đồng cỏ ở yêu cầu thứ i.
VÍ DỤ
Dữ liệu


4
2
4
1
1

3

2
1 2
3 2
4 3
2
2

Kết quả
2
7

GIẢI THÍCH
Yêu cầu 1: Con đường giữa đồng cỏ 1 và 2 có độ dài là 2. Yêu cầu 2: Đi qua con
đường nối đồng cỏ 3 và 4, rồi tiếp tục đi qua con đường nối 4 và 1, và cuối
cùng là con đướng nối 1 và 2, độ dài tổng cộng là 7.

BIẾN ĐỔI SỐ – NUMBER – SPOJ
Posted on 12/06/2014by connhangheovodanh

ĐỀ BÀI :
BIẾN ĐỔI SỐ – NUMBER – SPOJ

Cho M máy biến đổi số được đánh số từ 1 đến M và 1 số nguyên dương N. Hoạt
động của máy i được xác định bởi cặp số nguyên dương (ai,bi)
(1<=ai,bi<=N). Máy nhận đầu vào là số nguyên dương ai và trả lại ở đầu
ra số nguyên dương bi.
Ta nói một số nguyên dương X có thể biến đổi thành số nguyên dương Y nếu
hoặc X=Y hoặc tồn tại dãy hữu hạn các số nguyên dương X= P1,P2,…,Pk

=Y sao cho đối với 2 phần tử liên tiếp Pi và Pi+1 bất kỳ trong dãy, luôn
tìm được 1 trong số các máy đã cho để biến đổi Pi thành Pi+1
Cho trước 1 số nguyên dương T (T<=N). Hãy bổ sung thêm 1 số ít nhất các máy
biến đổi số để bất kì số nguyên dương nào từ 1 đến N đều có thể biến đổi
thành T
Input
– Dòng 1: 3 số nguyên dương N, M, T (1<=N,M,T<=10^4)


– M dòng tiếp theo mỗi dòng chứa 1 cặp số tương ứng với một máy biến đổi số.
Các số trên một dòng cách nhau bởi 1 dấu cách
Output
Ghi ra 1 dòng duy nhất chứa 1 số nguyên dương là số lượng máy biến đổi số cần
thêm
Example
Input:
6 4 5
1 3
2 3
4 5
6 5
Output:
1

QUẢNG CÁO – ADS – SPOJ
Posted on 05/06/2014by connhangheovodanh

ĐỀ BÀI : QUẢNG CÁO – ADS – SPOJ

Nhân dịp Tết sắp đến công ty Jelly-for-Kids quyết định tăng cường việc quảng

bá sản phẩm đến người tiêu dùng. Vì thế giám đốc marketing, ông FruitJelly muốn gửi đi số lượng nhân viên tối đa có thể, làm nhiệm vụ tiếp thị
tại đại lý trong thành phố
Trong thành phố có m con đường, n đại lý bán kẹo (đánh số từ 1 đến n). Mỗi
con đường chỉ nối trực tiếp giữa 2 đại lý, và được ký hiệu bằng chỉ số của 2
đại lý mà nó nối. Đồng thời, giữa 2 đại lý bất kỳ có không quá 1 con đường
nối chúng
Ông Fruit-Jelly nghĩ rằng, ông ta sẽ quản lý nhân viên dễ hơn nếu xếp mỗi
người tiếp thị trên những hành trình có tính chất thứ tự. Tức là những đại
lý bán kẹo trên hành trình đó thỏa các điều kiện sau
Có đường nối trực tiếp giữa 2 đại lý liên tiếp nhau trên hành trình
Từ một đại lý bất kỳ trong hành trình có thể đi qua tất cả các đoạn đường trong
hành trình đó rồi trở về nơi xuất phát mà không đi qua đoạn đường nào
quá một lần
Hành trình phân công cho mỗi nhân viên phải có ít nhất một đoạn đường chưa
có nhân viên nào khác đi tiếp thị.


Mỗi nhân viên chỉ di chuyển trên hành trình mà anh ta được phân công. Hãy
tính số lượng nhân viên tối đa mà ông Fruit-Jelly có thể xếp việc, và hành
trình cụ thể mà mỗi người được xếp.
Input
Dòng đầu là 2 số tự nhiên N và M (N<=2000) (M<=5000)
Trong M dòng tiếp theo, mỗi dòng ghi 2 số nguyên mô tả một đoạn đường, mỗi
đoạn đường được mô tả bởi chỉ số của 2 đại lý mà nó nối.
Output
Dòng đầu tiên ghi Q là số lượng nhân viên tối đa tìm được
Example
Input:
5 6
1 2

2 4
4 5
3 5
1 3
2 3

Output:
2

THUẬT TOÁN :

Bài này chỉ cần xuất ra m-n+T với T là số thành phần liên thông trong đồ thị
Dùng DFS tìm thành phần liên thông cơ bản

GẶM CỎ – VMUNCH – SPOJ
Posted on 31/05/2014by connhangheovodanh

ĐỀ BÀI :
GẶM CỎ – VMUNCH – SPOJ

Bessie rất yêu bãi cỏ của mình và thích thú chạy về chuồng bò vào giờ vắt sữa
buổi tối.


Bessie đã chia đồng cỏ của mình là 1 vùng hình chữ nhật thành các ô vuông nhỏ
với R (1 <= R <= 100) hàng và C (1 <= C <= 100) cột, đồng thời đánh dấu
chỗ nào là cỏ và chỗ nào là đá. Bessie đứng ở vị trí R_b,C_b và muốn ăn
cỏ theo cách của mình, từng ô vuông một và trở về chuồng ở ô 1,1 ; bên
cạnh đó đường đi này phải là ngắn nhất.
Bessie có thể đi từ 1 ô vuông sang 4 ô vuông khác kề cạnh.

Cho bản đồ, hãy tính xem có bao nhiêu ô cỏ mà Bessie sẽ ăn được trên con
đường ngắn nhất trở về chuồng (tất nhiên trong chuồng không có cỏ đâu
nên đừng có tính nhé)
Dữ liệu

Dòng 1: 2 số nguyên cách nhau bởi dấu cách: R và C

Dòng 2..R+1: Dòng i+1 mô tả dòng i với C ký tự (và không có dấu cách)
như đã nói ở trên.
Kết quả

Dòng 1: Một số nguyên là số ô cỏ mà Bessie ăn được trên hành trình ngắn
nhất trở về chuồng.
Ví dụ
Dữ liệu
5 6
B...*.
..*...
.**.*.
..***.
*..*.C
Kết quả
9



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×