Codeforces Round #404 (Div. 2)

来源:互联网 发布:淘宝整点秒杀怎么设置 编辑:程序博客网 时间:2024/05/01 00:59

A Anton and Polyhedrons

————————————————————————————————————————————
傻逼题不解释

B Anton and Classes

————————————————————————————————————————————
傻逼题不解释

C Anton and Fairy Tale

————————————————————————————————————————————
就是给你仓库的容积N,最开始每天运来M,但仓库里至多有N,第i天被鸟吃i,问你至多撑几天,使得仓库里面不为0,(先被吃,在运,如果吃完就成0了,那么就已经算撑不住了)

首先考虑n<=m的情况,最多撑n天,没有问题。

然后考虑其他情况,

开始几天,鸟吃的没有运来的多,所以相当于没有变化,
那么m天后,相当于每天减少1,2,3,4,······。
那么就是 (1+ans)*ans/2>=n-m

最后的结果就是ans+m
计算那个式子可以用不等式开根号,也可以二分,注意下二分的时候别溢出就行了。

D Anton and School - 2

————————————————————————————————————————————
给你一个字符串,问你字串中前半段为’(‘,后半段为’)’的子串有多少个,子串不要求必须连续。

很明显,我们可以枚举每一个’(‘,来计算以这个为前半段结尾的子串有多少个,
首先预处理出前缀’(‘的个数和后缀’)’的个数,
在遍历一遍母串,每当到’(‘的时候我们就计算以这个跟为前半段结尾的子串有多少个,

因为前半段的最后一个’(‘是固定的,所有我们要求
ni=1C(n1,i1)×C(m,i)

然后推导了半天还是不会,最后Q给了个公式

when(nm),ni=1C(n,i)C(m,i)=ni=1C(n,i)C(m,mi)=C(n+m,m)=(n+m)!(n)!×(m)!

然后我们就可以计算了.

ans=ni=1C(n1,i1)×C(m,i)=ni=1[C(n,i)C(n1,i)]×C(m,i)=ni=1C(n,i)×C(m,i)ni=1C(n1,i)×C(m,i)=C(n+m,m)C(n1+m,m)=(n+m)!(n)!×(m)!(n+m1)!(n1)!×(m)!

E Anton and Permutation

————————————————————————————————————————————

不会,待补

0 0
原创粉丝点击