Codeforces Round #132 (Div. 2)

A. Bicycle Chain

  • 统计\(\frac{b_j}{a_i}\)最大值以及个数。

B. Olympic Medal

  • \(\frac{m_{out}=\pi (r_1^2-r_2^2)hp_1}{m_{in}=\pi r_2^2hp_2} = \frac{A}{B}\)
  • \[r_2^2=\frac{r_1^2}{1+\frac{Ap_2}{Bp_1}} \]

  • \(r_1,p_1\)取最大值,\(p_2\)取最小值。

C. Crosses

  • 分两种情况讨论:
  1. 两个矩形形成嵌套,那么假设\(c \le a, d \le b\),如果找到一对\((a,b)\)满足\(ab=s\),那么对应的方案数有$$(n-a+1)(m-b+1)(2(a+1)(b+1)-1)$$\((n-a+1)(m-b+1)\)表示矩形的个数,\(2(a+1)(b+1)-1\)表示矩形ab包含cd以及cd包含ab的方案数。
  2. 两个矩形构成十字形,满足\(a \lt c, d \lt b\),枚举\(a,b,d\)之后可以求出\(c\),那么方案数有\((n-c+1)(m-b+1)\)

D. Hot Days

  • 每个地区单独考虑。
  • \(t_i \ge T_i\),无论怎么都赔钱,那么只要租一辆车即可,代价$$cost_i+mx_i$$。
  • \(t_i \lt T_i\),假设租了\(c\)辆车,代价为$$c\cdot cost_i+(n - c(T_i-t_i)+(T_i-t_i))\cdot x_i$$
  • 这是一个关于\(c\)的线性函数,那么最小代价必然在两端。这个式子的前提是\(c\)辆车坐不下所有人的情况,所以加偏移量计算即可。

E. Periodical Numbers

  • 考虑计算\((2^k, x]\)范围内满足题意的个数,\(2^{k+1} \gt x\)
  • 记长度为\(i\)构成串小于等于\(x\)的串的个数为\(g[i]\)
  • 设长度为\(l,n\ \%\ l =0\)前缀为\(t\),若\(p=tt\cdots t \le x\),则\(g[l]+=1\),显然如果一个前缀\(w \le t\),构成的串也会小于等于\(x\)
  • 当然,\(w\)不能是一个循环串,否则会重复计数,只要枚举\(l\)的约数\(j\),然后扣掉相应的方案数即可。
posted @ 2016-10-26 21:55  mcginn  阅读(158)  评论(0编辑  收藏  举报