CodeForces - 681D Gifts by the List(思维)
生活随笔
收集整理的這篇文章主要介紹了
CodeForces - 681D Gifts by the List(思维)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目鏈接:點擊查看
題目大意:給出一個 n 個點組成的森林,每條邊都是有向邊,規(guī)定一個點的祖先節(jié)點也包括了其本身,現(xiàn)在每個人都想要送給其祖先禮物,已知第 i 個人想要送給祖先 a[ i ] 。
要求構(gòu)造一個序列稱之為 list,現(xiàn)在 n 個人按照順序從 1 ~ n 開始送禮物,規(guī)則就是輪到第 i 個人時,他去 list 里找到第一個自己的祖先然后送出去禮物,問是否存在這樣一個序列 list,滿足每個 i 都可以送給 a[ i ] 禮物
題目分析:題意有點難明白的一道題,然后明白題意了也可能不會做的一道題。。
直接說結(jié)論吧,如果 a -> b -> c -> d 是一個子孫關(guān)系,a 是祖先節(jié)點,如果 d 給 a 送禮物,那么 b 和 c 一定也要給 a 送禮物
反證法證明一下,如果 c 給 b 送禮物,那么在 list 里 b 一定在 a 的前面,所以 d 就無法給 a 送禮物了
所以得到了一個小結(jié)論就是,每個人要么給自己送禮物,要么和父節(jié)點送禮物的對象相同才行
這樣一來只需要按順序保存一下祖先節(jié)點即可
代碼:
?
?
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的CodeForces - 681D Gifts by the List(思维)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树形DP求树的最小支配集,最小点覆盖,最
- 下一篇: CodeForces - 1452E T