1009-自闭++

A

假设我们以i为分界点,选取i以前的为J组,i以后的为S组(规定第i个被分到J组)
J组还可以选\([1,i-1]\)这个区间里的i−1个人,方案为 \(2^{i-1}\)
那么S组可以选\((i,n]\)区间里的n−i个人,去掉一个都不选的不合法方案,其总方案数为 \(2^{n-i}-1\)

i号点的贡献为:$2^{i-1}\times(2^{n-i}-1) $
i的取值范围是\([1,n]\)(n号点可以取,因为\(2^{n-1}\times(2^{n-n}-1)=0\)
那么答案就为\[\sum_{i=1}^{n}\ (2^{n-i}-1)\times (2^{i-1})\]
打开括号:\[\sum_{i=1}^{n}\ (2^{n-1}-2^{i-1})=\sum_{i=1}^{n}\ 2^{n-1}-\sum_{i=1}^{n}\ 2^{i-1}\]
整理得:\[Ans = (n-2)\times (2^{n-1})+1\]

此题规模巨大,注意使用快速乘

由于上次OB学长模拟题的影响,我想了半天的组合数,推来推去推了2h结果什么都没推出来,结果最后是这个,难受
就算得到了第一个式子我也没有化简,难受\(++\)
化简完了我也想不到要快速乘,难受\(+=inf\)

猜你喜欢

转载自www.cnblogs.com/qwqq/p/11649949.html
今日推荐