Chuyên đề DFS Quảng cáo Mã bài: ADS
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 Fruit-Jelly 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 ADS.INP | ADS.OUT |
5 6
1 2
2 4
4 5
3 5
1 3
2 3 |
2
| Truyền tin Mã bài: MESSAGE
Một lớp gồm N học sinh, mỗi học sinh cho biết những bạn mà học sinh đó có thể liên lạc được (chú ý liên lạc này là liên lạc một chiều : u có thể gửi tin tới v nhưng v thì chưa chắc đã có thể gửi tin tới u).
Thầy chủ nhiệm đang có một thông tin rất quan trọng cần thông báo tới tất cả các học sinh. Để tiết kiệm thời gian, thầy chỉ nhắn tin tới 1 số học sinh rồi sau đó nhờ các học sinh này nhắn lại cho tất cả các bạn mà các học sinh đó có thể liên lạc được, và cứ lần lượt như thế làm sao cho tất cả các học sinh trong lớp đều nhận được tin .
Hãy tìm một số ít nhất các học sinh mà thầy chủ nhiệm cần nhắn.
Input
- Dòng đầu là N, M (N <= 800, M là số lượng liên lạc 1 chiều)
- Một số dòng tiếp theo mỗi dòng gồm 2 số u , v cho biết học sinh u có thể gửi tin tới học sinh v
Output
- Gồm 1 dòng ghi số học sinh cần thầy nhắn tin.
Example MESSAGE.INP | MESSAGE.OUT |
12 15
1 3
3 6
6 1
6 8
8 12
12 9
9 6
2 4
4 5
5 2
4 6
7 10
10 11
11 7
10 9
|
2
| Bộ ba cao thủ Mã bài: NKTRIO
Ở thời loạn, giang hồ có rất nhiều cao thủ võ lâm, mỗi người trong số họ lại có những tuyệt chiêu. Nếu 2 cao thủ giang hồ so tài với nhau thì từ những sở trường và sở đoản của họ, ta có thể biết trước được cao thủ nào sẽ thắng. Những cao thủ đang có ở VNOI như conankudo, gothdn, kaiel, nahnhnahk, pirate... đang muốn thi tài để xem ai được chọn làm bộ ba cao thủ.
Để mưu nghiệp lớn, minh chủ võ lâm Nuga cần tìm ra một bộ ba trong số các cao thủ giang hồ hiện tại. Để các cao thủ này quy phục dưới trướng của mình và không làm phản, Nuga muốn bộ ba cao thủ này có thể khắc chế được nhau; điều này có nghĩa là nếu 3 cao thủ được chọn là A, B và C thì A phải thắng được B, B phải thắng được C và C phải thắng được A.
Bạn hãy giúp Nuga chọn ra một bộ ba cao thủ thoả mãn yêu cầu của ông.
Dữ liệu:
Dòng đầu tiên ghi n là số cao thủ trên giang hồ (3 ≤ n ≤ 1000)
Tiếp theo là n dòng, mỗi dòng có n số. A[i,j] = 1 là người i thắng j. Dữ liệu luôn đảm bảo A[i,j] + A[j,i] = 1. A[i,i] = 0 với mọi i.
Kết quả:
Ghi ra ba số nguyên A, B và C là thứ tự của ba cao thủ thoả mãn A thắng B, B thắng C và C thắng A. Trong trường hợp có nhiều cách lựa chọn, bạn chỉ cần chỉ ra một cách; trong trường hợp không có cách lựa chọn thoả mãn yêu cầu, ghi ra ba số -1.
Ví dụ: NKTRIO.INP | NKTRIO.OUT |
5
0 1 1 1 0
0 0 1 1 0
0 0 0 0 1
0 0 1 0 0
1 1 0 1 0
|
2 3 5
|
3
0 1 1
0 0 1
0 0 0
|
-1 -1 -1
| Mạng máy tính an toàn Mã bài: SAFENET2
Có n máy tính đánh số từ 1 đến n và m dây cáp mạng,giữa 2 máy tính có thể có một hoặc nhiều đường dây cáp mạng nối chúng,không có cáp mạng nối một máy với chính nó.Hai máy tính có thể truyền dữ liệu cho nhau nếu có đường cáp nối trực tiếp giữa chúng hoặc truyền qua một số máy trung gian.
Một tập S các máy tính được gọi là hệ thống an toàn nếu dù một máy tính bất kỳ bị tấn công (do sự tò mò của người dân :-(,cứ thích truy cập và hack những trang cấm :-( ) thì trong số những máy tính còn lại,những máy tính thuộc tập S vẫn có thể truyền được dữ liệu cho nhau. Xác định số lượng lớn nhất có thể các máy tính của tập S
Input
-Dòng 1 chứa 2 số nguyên n,m(1<=n<=30.000,0<=m<=100.000)
-m dòng tiếp theo ghi thông tin về các dây cáp mạng,gồm 2 chỉ số của 2 máy được dây đó nối trực tiếp
Output
Ghi một số nguyên duy nhất là số lượng máy tính lớn nhất tìm đc
Example
SAFENET2.INP
|
SAFENET2.OUT
|
8 10
1 2
2 3
3 1
1 4
4 5
5 1
1 6
6 7
7 8
8 1
|
4
| Vòng đua xe đạp Mã bài: BIC
Một vòng đua xe đạp được tổ chức trên N thành phố, đánh số từ 1 đến N. Có M đường nối (một chiều) giữa các thành phố. Vòng đua bắt đầu từ thành phố 1 và kết thúc tại thành phố 2.
Yêu cầu
Hỏi có bao nhiêu cách tổ chức các vòng đua? (Biết hai vòng đua là khác nhau nếu chúng không sử dụng các tuyến đường như nhau)
Dữ liệu
Dòng 1: N, M
M dòng tiếp theo: mỗi dòng chứa hai số nguyên A, B, cho biết có một đường nối giữa thành phố A và thành phố B
Các thành phố có thể nối với nhau bởi nhiều hơn một con đường
Kết qủa
Gồm 1 dòng duy nhất: số cách tổ chức các vòng đua. Nếu kết qủa có nhiều hơn 9 chữ số, chỉ cần in ra 9 chữ số cuối cùng. Nếu có vô số cách tổ chức các đường đua, in ra “inf”.
Giới hạn Ví dụ
BIC.INP
|
BIC.OUT
|
8 14
6 7
6 8
7 5
5 2
5 3
4 8
1 6
5 2
7 5
6 4
1 4
5 2
7 4
8 3
|
6
|
2 2
1 2
2 1
|
inf
| Xây cầu Mã bài: BRIDGES
Đất nước Delta là quốc đảo lớn trên thế giới. Đất nước gồm N đảo nhỏ được đánh số từ 1 đến N. Việc đi lại giữa các đảo là rất khó khăn. Vì kinh tế còn rất kém phát triển, nhà nước phải khó khăn lắm mới mở được N – 1 tuyến phà biển để người dân người dân có thể đi lại được giữa hai đảo bất kì. Cách đây không lâu, đất nước mới nhận được sự đầu tư lớn của các nước tư bản. Nhà vua quyết định xây mới K cây cầu để thay cho K tuyến phà. Các cây cầu mới được xây dựng sẽ nối liền hai đảo mà trước đây có tuyến phà nối trực tiếp. Nhà vua muốn tính toán để chọn K tuyến phà nào để xây thành cầu sau cho tổng thời gian để đi lại giữa mọi cặp đỉnh là nhỏ nhất. Tức là: đạt giá trị nhỏ nhất. Trong đo TA B là thời gian đi từ đảo A đến đảo B. Bạn hãy giúp nhà Vua tính toán chọn ra K trong số N - 1 tuyến phà để thay thế bằng cầu.
Input -
Dòng thứ nhất ghi 4 số nguyên N, K, VP, VC trong đó VP là vận tốc nếu đi bằng phà và VC là vận tốc nếu đi bằng cầu. VP và VC có đơn vị là m/s
-
N – 1 dòng tiếp theo, mỗi dòng ghi 3 số U V L thể hiện giữa đảo U và đảo V đã có một tuyến phà, và khoảng cách giữa U và V là L mét.
Output
In ra K số là số hiệu của tuyến phà cần được thay thế bằng cầu.
Giới hạn -
1 ≤ K < N ≤ 10 000
-
1 ≤ VP, VC ≤ 100 000
-
1 ≤ LU V ≤ 106
-
Thời gian: 1s/test
Example BRIDGES.INP | BRIDGES.OUT |
6 2 1 2
1 2 5
3 2 6
1 4 4
4 6 4
4 5 5 | 1 3 |
Chia sẻ với bạn bè của bạn: |