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)$$
  • 剩下就随便做了。
原文地址:https://www.cnblogs.com/mcginn/p/6006243.html