CSPS_109
T1
状压+位运算解决
T2
打完暴力后感到了迷茫..
不过看这张表里1的数目占了一半之多,应该合法情况挺多的
拿出了从未用过的srand(time(0));
结果撞上正解了(笑)(rp--)
现在$Lrefrain$教会我正解了
解释下题解式子
设$c_i$为含有第i个元素的集合数量
已知$\sum\limits_{i=1}^{2*n} c_i=n*(n+1)$
求$\sum\limits_{i=1}^{2*n} \frac{C(c_i,2)}{C(n+1,2)}$即任选两个集合的交的大小的期望
考虑上式取min值的情况,由于组合数增长很快,$c_i$应是平均分配。
则$c_i=(n+1)/2$上式为$2*n* \frac{((n+1)/2)^2}{n*(n+1)} -1$这里拆了个组合数
即$\frac{n+1}{2}-1=\frac{n-1}{2}$
精彩继续,为什么是$O(n)$对
我们已经知道,最劣情况下,交集总大小为$C_{n+1}^2 * \frac{n-1}{2}$
而“存在一对集合交集>n/2"要求的最低限度为$C_{n+1}^2 * \frac{n-2}{2}$
最劣情况下,会多出来的交集大小为$C_{n+1}^2 *\frac{1}{2}$
也就是$\frac{(n+1)*n}{4}$
考虑多出来的大小最劣时能使多少对合法
那显然是让合法的消耗的交集大小最大,也就是完全匹配
每对匹配,消耗$O(n)$个大小,那么也会有最少对数为
$O(n)$
随便随
T3
想了会dp,不可做。
也许只能贪心了,贪心好像挺对的。
到了不放不行的地步再放,能辐射到一片最大的区域,有包容性。
考虑在有根树里dfs,一个灭火器可以向儿子方向或向父亲方向灭火
肯定是优先去灭深度最大的儿子,这点在回溯的过程中解决了
剩余的可以回头去消他的父亲叔叔兄弟啥的,记录在数组里。
第二种情况一定可以在lca处被枚举到,所以这个灭火器的贡献不怕遗漏了
upd:非常侥幸..使用了比较降智的累加避免了我没想到的向上取整把0取成1的情况
CSPS_109的更多相关文章
随机推荐
- 牛客CSP-S提高组赛前集训营2 T2沙漠点列
原题链接 算法不难,比赛的时候就和cyc大佬一起yy了正解,不过因为交的时候比较急(要回寝室惹),我有两数组开错大小直接爆到50,cyc大佬则只把文件输入关了一半,直接爆零(╯ ̄Д ̄)╯┻━┻ 要尽量 ...
- 2019-07-24 require 和 include的区别
require 和 include 都是文件引入的常用用法.那他们有什么区别吗? 首先我们创建一个需要引入的文件叫做test.php,里面写上简单的一行代码: echo "我是要被引入的文件 ...
- 【故障处理】分布式事务ORA-01591错误解决
[故障处理]分布式事务ORA-01591错误解决 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你 ...
- Ftp站点搭建的详细过程(包括指定用户登录)
最近接到要部署一个Ftp站点的一个任务,然后过程中有点小插曲踩了一些坑(指定用户登录,用户名和密码都是对的,输入了超级多遍,还是不行,登录不上,后面详细说明解决方案),特此记录一下.避免大家踩坑. 参 ...
- golang中逗号ok模式_转
,ok,第一个参数是一个值或者nil,第二个参数是true/false或者一个错误error.在一个需要赋值的if条件语句中,使用这种模式去检测第二个参数值会让代码显得优雅简洁.这种模式在go语言编码 ...
- ireport(1.2.7)的IllegalAccessError异常
IllegalAccessError异常: Exception in thread "main" java.lang.IllegalAccessError: tried to ac ...
- MSSQL-反弹注入
工具:香港云免费云服务器:http://www.webweb.com 注册使用匿名邮箱:https://bccto.me/ 香港云服务器搭建MSSQL数据库,并建表admin,字段数要大于等于我们想要 ...
- Matplotlib:mpl_toolkits.mplot3d工具包
简介 mpl_toolkits.mplot3d是Matplotlib里面专门用来画三维图的工具包,官方指南请点击此处<mplot3d tutorial> 使用 导入 使用from mpl_ ...
- Linux 解决krb5p安全验证开机无法挂载问题
从开始练习rhce以来,其中nfs挂载题目经常出现配置没有任何问题,但是开机无法挂载使用krb5p验证的挂载目录. 使用systemctl status mnt-nfssecure.mount命令查看 ...
- AT2000 Leftmost Ball
设\(f[i][j]\)表示当前有\(i\)个白球,一共放完了\(j\)种球 显然有\(j <= i\) 对于每个状态目前已经放下去的球是固定了的,那么考虑转移 放白球 从\(f[i - 1][ ...