zoukankan      html  css  js  c++  java
  • 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\)放在左岸,带上至多的那一个点,如果没有则不带;这时我们将船上空出来了一个位置,将\(G\backslash M(G)\)全部放入右岸即可

    然后就是板子了

  • 相关阅读:
    博客地址
    node学习2
    正则表达式总结
    Git命令操作
    IDEA快捷键
    hibernate多对多(权限管理)
    所有国家的下拉框英文全称
    所有国家的下拉框英文简写
    所有国家的下拉框中文
    poj-1248 Safecracker
  • 原文地址:https://www.cnblogs.com/Grice/p/12242078.html
Copyright © 2011-2022 走看看