HOJ 202 G. 啵啵攻略
北市赛后首po,也是 HOJ 的首po。
接下来的 80 天应该不会碰coding了吧= =。
题目很简洁,就是要你求 LIS 的个数。
可以先用 DP 把每个数字会放在 第几个 位置做出来 (pos[N])。
对每个位置开一棵 BIT,再重做一次 LIS,同时计算出做到当前 x 有几种可能 (cnt)。
也就是利用 BIT 把当前 x 所在位置 p,位置[p-1] 中所有比 x 小的数字的 cnt 加总,即为当前所有可能个数。
有点像 DP 的做完后,把 LIS 尾端的所有 cnt 加总就得到答案了。
因为记忆体的限制,所以我是直接开二维 vector,直接在 vector 弄 BIT= =。
我的code http://ideone.com/cIXjsu
p.s: 一直狂用 lower_bound XD。