【JOISC2012】fish

Description

  有 \(n\) 条鱼,第 \(i\) 条鱼的长度为 \(L_i\),颜色是 \(C_i\)\(C_i\) 只能是 ‘R’,'G','B')。
  你需要从中挑出至少一条鱼,要求挑出的鱼中不能存在两条鱼 \(x,y\) 满足 \(2L_x\le L_y\)
  求可以挑出 \(a\) 条红鱼、\(b\) 条绿鱼、\(c\) 条蓝鱼的三元组 \((a,b,c)\) 的个数。
  \(n\le 5\times 10^5\)

Solution

  将所有鱼按 \(L\) 从小到大排序。
  枚举每条鱼 \(l\)\(L\) 最小的鱼,求在此基础上能挑出的 \(L\) 最大的鱼 \(r\)。设第 \([l,r]\) 条鱼中有 \(a\) 条红鱼,\(b\) 条绿鱼,\(c\) 条蓝鱼,则 \((0,0,0)\)\((a,b,c)\) 这个立方体空间中的所有三维点都是可以选的。问题转化成了求 \(n\) 个立方体的体积并。
  发现 \(n\) 个立方体

猜你喜欢

转载自www.cnblogs.com/scx2015noip-as-php/p/11716704.html
今日推荐