倒计时三天。

这场又是巨头们的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位整形。

最新文章

  1. GnuStep使用
  2. 基于HT for Web 3D技术快速搭建设备面板
  3. 深入理解AOP
  4. jQuery:获取浏览器中的分辨率
  5. LayoutTransition实现显示、隐藏动画
  6. Redis 笔记与总结1 安装部署
  7. 控制执行流程 Thinking in Java 第四章
  8. Jquery Ajax Get示例
  9. R与数据分析旧笔记(十二)分类 (支持向量机)
  10. Nginx+Python+uwsgi+Django的web开发环境安装及配置
  11. 更符合面向对象的数据库操作方式-OrmLite
  12. H5之前端操作文件
  13. 【编程练习】收集的一些c++代码片,算法排序,读文件,写日志,快速求积分等等
  14. Java公开课-03.内部类
  15. xyplorer设置备忘
  16. 三、CSS样式——文本
  17. [JZOJ4786]小a的强迫症
  18. android studio 添加有趣的注释模板 佛祖保佑无bug等
  19. 迷你MVVM框架 avalonjs 学习教程9、类名操作
  20. Hibernate错误:Could not bind factory to JNDI

热门文章

  1. Linq to sql之left join运用示例
  2. VBA决策(十)
  3. MySQL5.6.11安装步骤(Windows7 64位)
  4. java轻松玩转httpget和httppost
  5. C++——namespace
  6. python | 不可变数据类型
  7. CSS实现宽度自适应100%,宽高16:9的比例的圖片或者矩形
  8. 推荐一款在IntelliJ IDEA中使用微信/QQ的插件
  9. 浅析pagehelper分页原理(转)
  10. .Net Core:Middleware自定义中间件