倒计时三天。

这场又是巨头们的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的更多相关文章

  1. android菜鸟学习笔记23----ContentProvider(三)利用内置ContentProvider监听短信及查看联系人

    要使用一个ContentProvider,必须要知道的是它所能匹配的Uri及其数据存储的表的结构. 首先想办法找到访问短信及联系人数据的ContentProvider能接受的Uri: 到github上 ...

  2. PostMan的在线安装和简单使用

    Postman是一款很流行的WEB接口测试工具,因其强大的功能及清新的界面,赢得许多测试及开发者的喜爱.   1.PostMan的在线安装 因google退出中国,使得chrome上的扩展插件无法在线 ...

  3. csp模拟赛低级错误及反思

    \(csp\)模拟赛低级错误及反思. 1.没开\(longlong\). 反思:注意数据类型以及数据范围. 2.数组越界(前向星数组未开两倍,一题的数据范围应用到另一题上,要开两倍的写法为开两倍数组) ...

  4. CSP 201612-3 权限查询 【模拟+STL】

    201612-3 试题名称: 权限查询 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 授权 (authorization) 是各类业务系统不可缺少的组成部分,系统用户通过授权 ...

  5. CSP复赛day2模拟题

    没错,我又爆零了.....先让我自闭一分钟.....so 当你忘记努力的时候,现实会用一记响亮的耳光告诉你东西南北在哪. 好了,现在重归正题: 全国信息学奥林匹克联赛(NOIP2014) 复赛模拟题 ...

  6. 【CSP模拟赛】Freda的迷宫(桥)

    题目描述 Freda是一个迷宫爱好者,她利用业余时间建造了许多迷宫.每个迷宫都是由若干房间和走廊构成的,每条走廊都连接着两个不同的房间,两个房间之间最多只有一条走廊直接相连,走廊都是双向通过.  黄昏 ...

  7. @CSP模拟2019.10.16 - T3@ 垃圾分类

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 为了保护环境,p6pou建设了一个垃圾分类器. 垃圾分类器是一个 ...

  8. CSP模拟赛2游记

    这次由于有课迟到30min,了所以只考了70min. 调linux配置调了5min,只剩下65min了. T1:有点像标题统计,但要比他坑一点,而且我就被坑了,写了一个for(int i=1;i< ...

  9. CSP模拟赛游记

    时间:2019.10.5 考试时间:100分钟(连正式考试时间的一半还没有到)题目:由于某些原因不能公开. 由于第一次接触NOIinux系统所以连怎么建文件夹,调字体,如何编译都不知道,考试的前半小时 ...

随机推荐

  1. wamp新建虚拟目录无法运行的解决方法

    操作步骤: 打开 D:\wamp\bin\apache\apache2.4.9\conf\httpd.conf  文件,大概在第242行 把 <Directory /> AllowOver ...

  2. java计算接口调用时间

    方法一: LocalDateTime beginTime = LocalDateTime.now(); Long opetime = Duration.between(between,LocalDat ...

  3. 运行 jar 的问题

    lib stwe.jar 同目录

  4. Go 信道Channel

    信道(Channel) 信道(Channel)可以被认为是协程之间通信的管道.数据可以从信道的一端发送并在另一端接收. 默认为同步模式,需要发送和接收配对.否则会被阻塞,直到另外的信道准备好后被唤醒. ...

  5. stm32 printf重定向

    printf函数调用fputc int fputc(int ch, FILE *p) { USART_SendData(USART1, ch); //重定向到串口 while(USART_GetFla ...

  6. menustrip选项怎么设置竖向分割线

    效果图: 解决方案: 选中一个项--[右键]--[插入]--[separator]

  7. 实现Vue的双向绑定

    一.概述 之前有讲到过vue实现整体的整体流程,讲到过数据的响应式,是通过Object.defineProperity来实现的,当时只是举了一个小小的例子,那么再真正的vue框架里是如何实现数据的双向 ...

  8. [LeetCode] 283. Move Zeroes ☆(移动0到最后)

    描述 给定一个数组nums,写一个函数,将数组中所有的0挪到数组的末尾,维持其他所有非0元素的相对位置. 举例: nums = [0, 1, 0, 3, 12], 函数运行后结果为[1, 3, 12, ...

  9. c#创建目录和文件夹,数据写入并生成txt文件

    c#创建目录: // 获取程序的基目录.System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径.System.Diagnostics.Pro ...

  10. 2018 CERC 混合博弈

    N堆石子 先手最多拿A个 后手最多拿B个 每次都至少要拿一个 谁先取完谁赢 如果A和B相等直接就是一个bash博弈 如果一个石堆的石子数少于min(A,B) 则是个nim游戏 我们先讨论只有N=1且A ...