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的更多相关文章
随机推荐
- CF241E Flights 差分约束
传送门 差分约束永远是Itst最烂的图论知识点没有之一qwq 先用dfs把在\(1\)到\(N\)的路径上的所有点都拿出来,其他的点和边状态任意都不会影响答案. 然后考虑设\(dis_i\)表示从\( ...
- 线程池及Executor框架
1.为什么要使用线程池? 诸如 Web 服务器.数据库服务器.文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务.请求以某种方式到达服务器,这种方式可能是通过 ...
- sudo apt-get install libstdc++6
sudo apt-get install libstdc++6 yum install libncurses.so.5 sudo apt-get install libncurses.so.5 su ...
- NEST dynamic 和 alias
/// <summary> /// Dynamic = false无法搜索 /// </summary> public void Dynamicmapping() { var ...
- caement Archaic spelling of cement
caement Archaic spelling of cement. caement Alternative forms[edit] caement (archaic) cæment (archai ...
- 140款Android开源优秀项目源码
BeautifulRefreshLayout-漂亮的美食下拉刷新 https://github.com/android-cjj/BeautifulRefreshLayout/tree/Beautifu ...
- Docker03-安装Docker运行环境
目录 Ubuntu 18 中安装Docker 查看Docker安装信息 查看Docker版本,命令:docker version 查看Docker运行信息,命令: docker info 检查安装是否 ...
- ElasticSearch(十一):Spring Data ElasticSearch 的使用(一)
1.环境准备 我本地使用的环境为: 虚拟机版本:Centos 7.3 两台 IP 分别为:192.168.56.12, 192.168.56.13 Elasticsearch版本:6.4.0 ( ...
- IDEA如何配置tomcat及建一个web项目
需求:项目工程可能别人已经建好了,我需要把项目导入到自己的IDEA并配置tomcat运行; 准备工作:1.本地的tomat服务器 2.IDEA工具 3.JDK 步骤: 1.点击Run -> Ed ...
- C++学习(3)——指针
1. 指针所占内存空间 在32位操作系统下,占用4个字节,64位下占8个字节 2. 空指针与野指针 空指针:指针变量指向内存中编号为0的空间 用途:初始化指针变量 注意:空指针指向的内存量是不可以 ...