csp-s模拟110
倒计时三天。
这场又是巨头们的AK场,大众分200+,貌似真实的csps?
然而T1又炸了,$1<<62$暴int,要$1ll<<62$。T2试图打70部分分,T3也只会40分,可能省一卡线了。
最近做题不认真,没有思考,思路一直是歪的,不想正解,太想乱搞。态度有点消极。
T1:
如果没有下界限制,一定是把R的每个$0$位或上$1$。有了$L$的限制,找到$L$和$R$从高到低位第一个不同的位,在此位一个数取$1$,其余往后全$0$,另一个数在此位取$0$,后面全取$1$即可让这一位后或起来全是$1$。
T2:
如果直接dp出随机答题者的得分概率,进行前缀和找出第一个大于等于$P$的位置即可。但是时间、空间双双超限。再转化一下,先把随机答题者的所有得分方案枚举出来,答案就是总方案数($2^N$)乘上概率$P$(向上取整)的位置上的得分。直接枚举更是不行。而数据范围$N=40$可以考虑折半搜索。分别枚举得到用前一半题和后一半题的得分方案集合,接着求两个集合中取数之和的第$\lceil 2^N*P \rceil$大。二分答案。对两个集合排序,一边扫,一边用单调指针便可以$O(2^{\frac{N}{2}})$ $check$一次比$mid$小的个数。
T3:
合法点对就是距离为$2$并且不是三元环的点对。
对于求和,用一个小容斥。先求出任意距离为2的点对的联合权值,减掉三元环的。前者直接用一点权值成上 相邻点的相邻点的权值和 并减去自己重复的权值的平方。考虑如何找三元环。
一种方法是,先把原图构造成有向无环图:按(度数大小,点编号)的大小确定无向边的方向,然后便可以枚举起点,标记中间点,判断每个中间点是否可达另一个中间点。具体三层循环枚举点、边、点。前两层总和$M$,第三层是点的出度。实际上总的是所有有向边的终点的出度和。对于出度小于$\sqrt M$的点,枚举总和小于$M*\sqrt M$,对于度数大于$\sqrt M$的点,这样的点的数量不会超过$\sqrt M$,因为所有点度数和为$2*M$,这样的枚举总和也小于$M*\sqrt M$。所以三元环最多$M*\sqrt M$个,复杂度亦$O(M*\sqrt M)$。
还有一种不优秀的方法:$bitset$临接矩阵,压与某一点直接相连的点,枚举边,$bitset::count()$求相邻两点 的相邻点 的交集大小,减掉相应贡献。理论复杂度$O(\frac{N^2}{32})$。
对于最大值,从大到小枚举合法点对一定最优。排序相邻点。枚举中间点,找到第一个合法的最大点对就可以。最多枚举次数也就是三元环的数量。$O(M*\sqrt M)$。
由于点数多,边稀疏,判两点直接联通可以哈希/unordered_map压临接矩阵,两点压成30位整形。
csp-s模拟110的更多相关文章
- android菜鸟学习笔记23----ContentProvider(三)利用内置ContentProvider监听短信及查看联系人
要使用一个ContentProvider,必须要知道的是它所能匹配的Uri及其数据存储的表的结构. 首先想办法找到访问短信及联系人数据的ContentProvider能接受的Uri: 到github上 ...
- PostMan的在线安装和简单使用
Postman是一款很流行的WEB接口测试工具,因其强大的功能及清新的界面,赢得许多测试及开发者的喜爱. 1.PostMan的在线安装 因google退出中国,使得chrome上的扩展插件无法在线 ...
- csp模拟赛低级错误及反思
\(csp\)模拟赛低级错误及反思. 1.没开\(longlong\). 反思:注意数据类型以及数据范围. 2.数组越界(前向星数组未开两倍,一题的数据范围应用到另一题上,要开两倍的写法为开两倍数组) ...
- CSP 201612-3 权限查询 【模拟+STL】
201612-3 试题名称: 权限查询 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 授权 (authorization) 是各类业务系统不可缺少的组成部分,系统用户通过授权 ...
- CSP复赛day2模拟题
没错,我又爆零了.....先让我自闭一分钟.....so 当你忘记努力的时候,现实会用一记响亮的耳光告诉你东西南北在哪. 好了,现在重归正题: 全国信息学奥林匹克联赛(NOIP2014) 复赛模拟题 ...
- 【CSP模拟赛】Freda的迷宫(桥)
题目描述 Freda是一个迷宫爱好者,她利用业余时间建造了许多迷宫.每个迷宫都是由若干房间和走廊构成的,每条走廊都连接着两个不同的房间,两个房间之间最多只有一条走廊直接相连,走廊都是双向通过. 黄昏 ...
- @CSP模拟2019.10.16 - T3@ 垃圾分类
目录 @description@ @solution@ @accepted code@ @details@ @description@ 为了保护环境,p6pou建设了一个垃圾分类器. 垃圾分类器是一个 ...
- CSP模拟赛2游记
这次由于有课迟到30min,了所以只考了70min. 调linux配置调了5min,只剩下65min了. T1:有点像标题统计,但要比他坑一点,而且我就被坑了,写了一个for(int i=1;i< ...
- CSP模拟赛游记
时间:2019.10.5 考试时间:100分钟(连正式考试时间的一半还没有到)题目:由于某些原因不能公开. 由于第一次接触NOIinux系统所以连怎么建文件夹,调字体,如何编译都不知道,考试的前半小时 ...
随机推荐
- QTabWidget标签实现双击关闭(转)
重载了QTabWidget(由于tabBar()是protected),这样就可以获取到标签了. 1 class Tab : public QTabWidget 2 { 3 Q_OBJECT 4 pu ...
- mycat 报错 java.lang.OutOfMemoryError: Java heap space
今天排查mysql的错误日志发现 wrapper.log 中有如下错误日志 INFO | jvm 1 | 2019/10/20 12:52:31 | java.lang.OutOfMem ...
- mac下自己实现re-sign.jar对apk进行重签名
利用Robotinum对给的apk文件进行自动化测试,在不知道源码的情况下,只有apk文件如何进行自动化测试呢? 首先需要对apk文件进行重签名,并获得该apk文件的包名和程序入口的类名. 最开始网上 ...
- Flutter——CircleAvatar组件(圆形头像组件)
import 'package:flutter/material.dart'; import 'res/listData.dart'; void main() { runApp(MaterialApp ...
- 目标检测 — one-stage检测(一)
总结的很好:https://www.cnblogs.com/guoyaohua/p/8994246.html 目前主流的目标检测算法主要是基于深度学习模型,其可以分成两大类:two-stage检测算法 ...
- idou老师教你学Istio06: 如何用istio实现流量迁移
流量迁移是流量管理的一个重要功能.istio提供的流量管理功能将流量从基础设施扩展中解耦,支持动态请求路由,故障注入.超时重试.熔断和流量迁移等.流量迁移的主要目的是将流量从微服务的某一版本的逐步迁移 ...
- Ubuntu安装依赖文件
我们在安装软件的时候,有时会出现由于依赖的软件没有被安装,会导致软件安装的失败,其实我们可以用命令来安装依赖的软件,这里以Ubuntu为例进行说明. 我在安装wps-office的时候,显示安装成功了 ...
- Spring MVC + freemarker实现半自动静态化
这里对freemarker的代码进行了修改,效果:1,请求.do的URL时直接生成对应的.htm文件,并将请求转发到该htm文件2,自由控制某个页面是否需要静态化原理:对org.springframe ...
- jaxb读有BOM的XML文件问题
一开始找了半天没找到什么原因,读文件就报错: Content is not allowed in prolog 后来发现是文件是UTF-8带BOM和不带BOM的问题 问题就好解决了,直接读带BOM文件 ...
- HDU-1160-FatMouse's Speed(DP, 最长递增子序列)
链接: https://vjudge.net/problem/HDU-1160 题意: FatMouse believes that the fatter a mouse is, the faster ...