codechef Chef at the River
Posted grice
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codechef Chef at the River相关的知识,希望对你有一定的参考价值。
难度
(hard)
题意
做法
设(G=(V,E))
定义1:(M(G))为(G)的最小点覆盖
定义2:(ans(G))为(G)的题意答案,不考虑船夫
结论1:(M(G)le ans(G))
第一次最少也得带走(M(G))个
结论2:(ans(G)le M(G)+1)
即用(M(G)+1)个位置必定能带走所有人:第一次带上(M(G)),其放在船上不动,然后每次将左岸一个点放入船中再带到右岸
结论3:(G)是菊花图时(ans(G)=M(G)=1)
显然,不详述
结论4:(G)不是菊花图时(ans(G)=M(G))
第一次带(M(G)),显然(M(G)ge 2),考虑(M(G))所代表的点集中两个不同点(u,v),我们将(v)放在右岸将与(u)相邻且不与(v)相邻的点带上放在右岸;由于同时与(u,v)相邻的点至多有(1)个,放完后带上(v),在与左岸交接时将(v)放在左岸,带上至多的那一个点,如果没有则不带;这时我们将船上空出来了一个位置,将(Gackslash M(G))全部放入右岸即可
然后就是板子了
以上是关于codechef Chef at the River的主要内容,如果未能解决你的问题,请参考以下文章
[CodeChef - GERALD07 ] Chef and Graph Queries
codechef AUG17 T1 Chef and Rainbow Array
CodeChef Chef and Digit Jumps 题解
codechef AUG17 T5 Chef And Fibonacci Array