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)辆车,代价为$$ccdot 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=ttcdots t le x),则(g[l]+=1),显然如果一个前缀(w le t),构成的串也会小于等于(x)
  • 当然,(w)不能是一个循环串,否则会重复计数,只要枚举(l)的约数(j),然后扣掉相应的方案数即可。
原文地址:https://www.cnblogs.com/mcginn/p/6002064.html