Codeforces Round #133 (Div. 2)

A. Tiling with Hexagons

  • 看成大三角形扣去3个小三角形。

B. Forming Teams

  • 由于每个点的度数不超过2,所以最后每个点要么在一条链上要么在一个环上。
  • 在环上的话,每组平分,人数为$$\frac{x}{2}$$
  • 一条链上的点,则平分成\(a,b\)\(a=\frac{x}{2}, b=x-a\),考虑分配两个组中使得两组差值最小。

C. Hiring Staff

  • \(m<n\)时,每天的人数为$$k, k, \cdots,k, k+1, k, k, \cdots,k,k,\cdots$$显然只有当人手不足时,才会增加人手。在\(k \gt 1\)的情况下,模拟下最多招\(2k\)个人,为第\(1\)天招\(k\)个人,第\(n\)天招\(1\)个人,第\(n+1\)天招\(k-1\)个人,后面的人都休息够了所以不用继续招人。
  • \(m=n\)时,则在第\(2n\)天需要在额外招人来传递钥匙,所以总共需要\(2k+1\)个人。
  • 之前的前提都是在\(k>1\)的前提下,当\(k=1\)时需要特判几种情况:
  1. \(m \lt n - 1\),显然只需要招2个人就够了。
  2. \(m = n-1\ and\ 2 \lt n\)时,招3个人,之所以\(n \gt 2\),因为第一个人重新开始工作时需要恢复工作状态。
  3. \(n=2\)时,\(m=1\)需要3个人,而\(m=2\)则需要4个人。

D. Spider's Web

  • 只考虑一边的话,每次从小到大枚举,相邻的扇形的交点位置也是单调上升的,所以只要一个指针维护下位置,就可以算出相应的点数。

E. Martian Luck

  • \(k\)进制下的$$digit\ root(x)=x\ % \ (k-1)$$
  • 剩下就随便做了。
posted @ 2016-10-28 00:14  mcginn  阅读(126)  评论(0编辑  收藏  举报