| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | USACO 2021 - Cowntagion | 100 (p) | 4.0s | 512M |
| 2 | USACO Dec/20 Silver - Rectangular Pasture | 100 (p) | 1.0s | 512M |
| 3 | USACO 2021 - Stuck in a Rut | 100 (p) | 4.0s | 512M |
Farmer John và các nông dân khác đã làm việc không ngừng để kiểm soát sự lây lan của căn bệnh COWVID-19 nguy hiểm trên các trang trại.
Họ cùng quản lý \(N\) trang trại (\(1\le N\le 10^5\)), được đánh số \(1\ldots N\). Các trang trại được nối bởi \(N-1\) con đường sao cho có thể đi từ trang trại \(1\) đến bất kỳ trang trại nào qua một dãy đường.
Không may, một con bò ở trang trại \(1\) vừa có kết quả dương tính với COWVID-19. Chưa có con bò nào khác tại trang trại đó hoặc các trang trại khác mắc bệnh. Tuy nhiên, vì biết bệnh dễ lây, Farmer John dự đoán đúng một trong hai sự kiện sau sẽ xảy ra trong mỗi ngày kế tiếp:
Farmer John lo lắng về tốc độ lây lan của dịch bệnh. Hãy xác định số ngày ít nhất có thể để mỗi trang trại đều có ít nhất một con bò mắc bệnh.
Dòng đầu tiên chứa số nguyên \(N\). Mỗi dòng trong \(N-1\) dòng tiếp theo chứa hai số nguyên \(a\) và \(b\), cách nhau bởi dấu cách, mô tả một con đường giữa hai trang trại \(a\) và \(b\). Cả \(a\) và \(b\) đều thuộc đoạn \(1\ldots N\).
In số ngày ít nhất để dịch bệnh có thể lan tới mọi trang trại.
Ví dụ 1
4
1 2
1 3
1 4
5
Một chuỗi sự kiện có thể xảy ra là: số bò bệnh tại trang trại \(1\) tăng gấp đôi rồi lại tăng gấp đôi, nên sau hai ngày trang trại \(1\) có \(4\) con bò bệnh. Trong mỗi ngày thuộc ba ngày tiếp theo, một con bò bệnh lần lượt đi từ trang trại \(1\) đến trang trại \(2\), \(3\) và \(4\). Sau \(5\) ngày, mỗi trang trại có ít nhất \(1\) con bò bệnh.
USACO 2020 December Contest, Silver - Cowntagion: https://usaco.org/index.php?page=viewproblem2&cpid=1062
Tác giả: Dhruv Rohatgi.
Cho một chuồng rộng vô hạn được biểu diễn dưới dạng lưới 2D. Có một tập hợp lớn gồm \(N\) con bò, con bò thứ \(i\) đứng ở hàng \(x_i\) cột \(y_i\) (ký hiệu là ô \((x_i, y_i)\)).
Một cách đặt hàng rào sẽ bao đóng trọn vẹn một vùng chữ nhật các ô, với các cạnh phải song song với trục \(x\) và \(y\), vùng có thể nhỏ tới mức chỉ bao gồm một ô.
Với một cách đặt hàng rào, có thể dựng nên một tập hợp con các con bò nằm trong hàng rào.
Đếm số tập con khác nhau của tập hợp lớn có thể xây dựng bằng cách đặt hàng rào như trên.
Ví dụ 1
4
0 2
1 0
2 3
3 5
13
Có \(2^4\) tập con của tập hợp 4 con bò.
Không thể xây dựng hàng rào chỉ chứa ba con bò 1-2-4, hoặc chỉ chứa hai con bò 2 và 4, hoặc chỉ chứa bò 4, nên đáp án là \(2^4-3=13\)
Farmer John vừa mở rộng trang trại, nên từ góc nhìn của đàn bò, trang trại giờ gần như vô hạn! Những chú bò xem khu vực chăn thả là một lưới ô vuông hai chiều vô hạn, mỗi ô đầy cỏ ngon. Mỗi con trong số \(N\) con bò của Farmer John (\(1\le N\le 1000\)) bắt đầu ở một ô khác nhau; một số con quay mặt về phía bắc, số còn lại quay mặt về phía đông.
Mỗi giờ, mỗi con bò thực hiện một trong hai việc sau:
Theo thời gian, mỗi con bò để lại phía sau một "vệt" gồm các ô trống không còn cỏ. Nếu hai con bò đi vào cùng một ô còn cỏ trong cùng một lượt, chúng cùng ở trong ô đó và tiếp tục đi theo hướng tương ứng vào giờ tiếp theo.
Farmer John không vui khi thấy bò ngừng gặm cỏ và muốn biết phải trách ai. Nếu bò \(b\) dừng trong một ô mà bò \(a\) đã ăn cỏ trước đó, ta nói bò \(a\) đã chặn bò \(b\). Hơn nữa, nếu bò \(a\) chặn bò \(b\) và bò \(b\) chặn bò \(c\), ta cũng nói bò \(a\) đã chặn bò \(c\); quan hệ "chặn" có tính bắc cầu. Mức trách nhiệm của mỗi con bò bằng số bò mà nó đã chặn. Hãy tính mức trách nhiệm của từng con bò.
Dòng đầu tiên chứa \(N\). Mỗi dòng trong \(N\) dòng tiếp theo mô tả vị trí ban đầu của một con bò bằng một ký tự N (quay mặt về phía bắc) hoặc E (quay mặt về phía đông), cùng hai số nguyên không âm \(x\) và \(y\) (\(0\le x\le 10^9\), \(0\le y\le 10^9\)) là tọa độ của ô. Mọi tọa độ \(x\) đôi một khác nhau; tương tự, mọi tọa độ \(y\) cũng đôi một khác nhau.
Để làm rõ hướng và tọa độ: nếu một con bò ở ô \((x,y)\) và đi về phía bắc, nó đến ô \((x,y+1)\). Nếu đi về phía đông, nó đến ô \((x+1,y)\).
In \(N\) dòng. Dòng thứ \(i\) là mức trách nhiệm của con bò thứ \(i\) trong dữ liệu vào.
Ví dụ 1
6
E 3 5
N 5 3
E 4 6
E 10 4
N 11 1
E 9 2
0
0
1
2
1
0
Trong ví dụ này, bò \(3\) chặn bò \(2\), bò \(4\) chặn bò \(5\), và bò \(5\) chặn bò \(6\). Theo tính bắc cầu, bò \(4\) cũng chặn bò \(6\).
USACO 2020 December Contest, Silver - Stuck in a Rut: https://usaco.org/index.php?page=viewproblem2&cpid=1064
Tác giả: Brian Dean.