女神(goddess)——组合数学
出自某模拟赛。
题目大意:
对1e9+7取模。
数据范围
20 % : n<=300
40 % : n<=2,000
50 % : n<=10,000
70 % : n<=1,000,000
100 % : n<=1,000,000,000
题解
方法众多。
然而我太蒟了,2h43min愣是写了一个40pts暴力走人。
开始指着想正解,但是发现想不出来,然后写n^2暴力,结果总是要么漏算要么算重要么取模出错。。。最后才调出来。
1.如果比较菜,请尝试打表:
$n^3$暴力显然。然后打表。
$n=1,ans_1=1$
$n=2,ans_2=6$
$n=3,ans_3=24$
$n=4,ans_4=80$
然后,套路的先观察相邻两项的关系。
然后尝试和项数的下标套上关系。
$ans_2=ans_1\times \frac{6}{1}$
$ans_3=ans_2\times \frac{8}{2}$
$ans_4=ans_3\times \frac{10}{3}$
诶,然后发现了规律!!
可以递推。
$f_{n+1}=f_n\times \frac{4+2\times n}{n}$
$f_{n+1}=f_n\times \frac{2\times(n+2)}{n}$
迭代下去得:
$f_{n+1}=f_1 \frac{2^n\times (n+2)!}{2n!}$
$f_{n+1}=\frac{2^{n}\times (n+1)\times(n+2)}{2}$
$f_{n}=\frac{2^{n-1}\times n\times(n+1)}{2}$
即可出结果
2.正解:
有点意思的是,i+n-i-1=n-1,k-j+j-1=k-1对于任意的i,j恒成立。
这就是突破口
考虑组合数的意义。
$\sum_{k=1}^n(k\times\sum_{j=1}^k\sum_{i=0}^{n-1}(C_i^{k-j}\times C_{n-i-1}^{j-1})$
$=\sum_{k=1}^n(k\times\sum_{i=0}^{n-1}\sum_{j=1}^k(C_i^{k-j}\times C_{n-i-1}^{j-1})$
j和i换了位置之后,
发现,其实i就是枚举的一个分割点,
然后对于选择的k-1个数,在1~i个数中选择k-j个,
在i+1~n-i-1个数中选择j-1个。
好像和$C_{n-1}^{k-1}$有些关系。
发现,对于$C_{n-1}^{k-1}$中的每个方案。
其实都可以找出0~n-1这n个分界点,然后统计一次。
每个方案被统计了n次。
所以,
原式
$=\sum_{k=1}^nk\times n\times C_{n-1}^{k-1}$
已经可以O(n)递推了。
我们可以用刚才的打表中方法,搞出递推式,然后迭代出来通项公式。
即可O(logn)求解。
3.但是这个还不够漂亮!!!
这个可是组合数啊!!不是一般的数。
组合数毕竟有实际的意义。
观察这个式子的组合意义。
$\sum_{k=1}^nk\times n\times C_{n-1}^{k-1}$
这个k-1和k,n有点麻烦。
提出来:
$=n\times (\sum_{k=1}^n(k-1)\times C_{n-1}^{k-1})+n\times 2^{n-1}$
第一个括号里面是什么意义?
对于n-1个数的集合中,所有子集的大小的和。
套路地,我们转化研究对象。
考虑每个元素被统计了几次。
就是:$2^{n-1-1}=2^{n-2}$
因为每个数自己必须出现一次,然后其他的数爱出现不出现。
所以,
$=n\times( n\times2^{n-2})+n\times 2^{n-1}$
然后就可以O(logn)计算了。
总结:
0.这个式子,我们尝试用数学知识、组合数公式化简,发现不容易化简。然后就要考虑组合数的意义。
1.组合数是一个有意义的数。这样的数学式子的推导,可以通过寻找式子的意义来进行化简。
往往起到立竿见影的效果。
2.打表找规律,要考虑把结果,递推关系和项的编号放在一起。
女神(goddess)——组合数学的更多相关文章
- JDK1.8新特性之Optional
概念 Optional 是JDK1.8中出现的一个容器类,代表一个值存在或者不存在.原来使用null表示一个值不存在,现在Optional可以更好的表达这个概念.并且可以避免空指针异常. 场景分析 需 ...
- FJNU 1154 Fat Brother And His Love(胖哥与女神)
FJNU 1154 Fat Brother And His Love(胖哥与女神) Time Limit: 2000MS Memory Limit: 257792K [Description] [ ...
- [ACdream] 女神教你字符串——三个气球
Problem Description 女神邀请众ACdream开联欢会,显然作为ACM的佼佼者,气球是不能少的~.女神准备了三种颜色的气球,红色,黄色,绿色(交通信号灯?) 有气球还不能满足女神,女 ...
- kali linux之窥看女神上网隐私(ettercap+wireshark+zenmap +dsniff)
作者:小波 http://www.cnblogs.com/xiaobo-Linux/ 无聊就玩了玩,不要干一些坏事哟~~网上也有一些文章关于kali linux的,就实战了一番.kali是用的debi ...
- 海洋女神建新installshield交流群了,原来的老群都满了,请加新群哦,记得认真填写验证信息
群号511751143 海洋女神installshield群
- 南邮CTF隐写之丘比龙的女神
刚开始下载下图片来 习惯性的binwalk一下 没发现东西 formost一下也没分离出来 扔进c32asm中发现有nvshen.jpg 于是改后缀名字为.zip 解压nvshen.jpg发现无法解压 ...
- 找女神要QQ号码
引言 我们组来了个美女程序员,我心里窃喜,哈哈这下机会来了.我在想怎么下手呢?好吧,还是从QQ号码开始,找到女神要到QQ号,哈哈,我真是个天才~~~ 是这样子滴 想法是美好的,现实是残酷的,找女神要Q ...
- poj 3734 Blocks 快速幂+费马小定理+组合数学
题目链接 题意:有一排砖,可以染红蓝绿黄四种不同的颜色,要求红和绿两种颜色砖的个数都是偶数,问一共有多少种方案,结果对10007取余. 题解:刚看这道题第一感觉是组合数学,正向推了一会还没等推出来队友 ...
- 美女程序员是如何将QQ转换成题目中那串数字的--读博文《找女神要QQ号码》
我只能说好好的端午节你们不约么?,还在这里写代码?我也是够无聊的,下班了不走也在这跟风写着玩!<找女生要QQ号码原文>原文链接http://www.cnblogs.com/iforever ...
随机推荐
- 在进行分布式框架搭建的过程中,出现问题advised by org.springframework.transaction.interceptor.TransactionInterceptor.invoke(org.aopalliance.intercept.MethodInvocation)?
今天在进行宜立方商城,进行文件配置的时间,遇到如下的问题,问题是:advised by org.springframework.transaction.interceptor.TransactionI ...
- RC电路简介,RC串并联电路的工作原理及应用
RC电路简介,RC串并联电路的工作原理及应用 RC电路全称Resistance-Capacitance Circuits.一个 相移电路(RC电路)或称 RC滤波器. RC网络, 是一个包含利用电压源 ...
- Alpha版发布 - 感谢有你们
在本次alpha开发的过程中,很感谢组长王航对我信任,让我统筹大家的工作任务和进度,使我对项目管理有了深刻的理解. 我也要感谢邹双黛,因为我以前很少做文字类的工作,写东西非常生硬,邹双黛即使在有做家教 ...
- vim 编码方式的设置
和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括UCS-2.UTF-8 等流行的 Unicode 编码方式.然而不幸的是,和很多来自 Linux 世界的软件一样,这需要 ...
- NumPy常用函数总结
转载:https://www.cnblogs.com/hd-chenwei/p/6832732.html NumPy库总包含两种基本的数据类型:矩阵和数组,矩阵的使用类似Matlab,本实例用得多的是 ...
- CS小分队第一阶段冲刺站立会议(5月11日)
昨日成果:完成了倒计时器的制作,为其添加了声音:并对扫雷游戏的失败添加了动态效果: 遇到的困难:把图片放入picturebox中无法改变图片的大小,音乐格式只能使用.wav,该格式音乐比较大,增加了整 ...
- Python if后直接跟数字或字符串
(1)如果if后面的条件是数字,只要这个数字不是0,python都会把它当做True处理,见下面的例子 if 15: print 'YES' 输出YES,但是如果数字是0,就会被认为是False. ( ...
- 福大软工·第十一次作业-Alpha事后诸葛亮
福大软工·第十一次作业-Alpha事后诸葛亮 组长博客链接 本次作业博客链接 项目Postmortem 模板 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描 ...
- Codeforces Beta Round #6 (Div. 2 Only) 单调队列
题目链接: http://codeforces.com/contest/6/problem/E E. Exposition time limit per test 1.5 secondsmemory ...
- CentOS6.5 重启网络报错:Bringing up interface eth0: Error: Connection activation failed: Device not managed by NetworkManager or unavailable
CentOS6.5 重启网络报错: Bringing up interface eth0: Error: Connection activation failed: Device not manage ...