抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

[原创]Codeforces Round #404 (Div. 2)

2017-03-16 11:12:44 Tabris_ 阅读数:354


博客爬取于 2020-06-14 22:41:11
以下为正文

版权声明:本文为 Tabris 原创文章,未经博主允许不得私自转载。
https://blog.csdn.net/qq_33184171/article/details/62418811


# 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

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

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

因为前半段的最后一个'('是固定的,所有我们要求
\sum_{i=1}^{n} C(n-1,i-1)\times C(m,i)

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

when(n\leq m), \\ \sum_{i=1}^{n} C(n,i)*C(m,i)\\=\sum_{i=1}^{n} C(n,i)*C(m,m-i)\\=C(n+m,m)\\=\dfrac{(n+m)!}{(n)!\times {(m)}!}

然后我们就可以计算了。

ans \\= \sum_{i=1}^{n} C(n-1,i-1)\times C(m,i) \\= \sum_{i=1}^{n}\big[ C(n,i)-C(n-1,i)\big]\times C(m,i)\\ =\sum_{i=1}^{n} C(n,i)\times C(m,i)-\sum_{i=1}^{n}C(n-1,i)\times C(m,i) \\=C(n+m,m)-C(n-1+m,m) \\ =\dfrac{(n+m)!}{(n)!\times {(m)}!}-\dfrac{(n+m-1)!}{(n-1)!\times {(m)}!}

E Anton and Permutation

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

不会,待补

评论