这场考试状态是极差,也因而无畏地打下了三个乱搞。然而这场确实挺乱搞。T1状压但我没优化而选择循环展开,T2打$bitset$随机化(考场上打的有问题不是随机但也能A),T3贪心骗分。但是因为状态实在太差,T1的滚动数组忘了清空就WA0了。不过也算是一次乱搞的有意义的实践。

T1:

  对每一层的点到终点的路径奇偶状态压缩,按层转移。理论复杂度$O(M*2^K*K^2)$。可以把边也状压一下,转移时直接相与原状态和某一点的边,然后$lowbit$计数出这一点的奇偶情况。

T2:

  并不会证。

T3:

  这题其实感觉有点熟悉,因为之前有类似问题,只不过没有$S$的限制。同样是贪心问题。

  考虑如何发挥一个灭火器的最大效用。一定是让一个灭火器恰好覆盖在没有被覆盖的点的边界处,也就是距离没有被覆盖的点恰好$K$。对于深度大于$K$的点一定是由其祖先覆盖,深度小于等于$K$的点由根覆盖。记录距离点$i$恰好$j$的没有被覆盖的点的数量$f[i][j]$,以及距离点$i$恰好$j$的还未利用的灭火器的次数(灭火器剩下的)$g[i][j]$。合并子树便可以维护这两个数组。在每一个节点,首先处理子树内多余的灭火器与未覆盖的点,只让距离恰好为$K$和$K-1$的灭火器与点配对。这样做贪心最优。考虑会有灭火器与点在同一棵子树内,若其距离小于$K-1$,那么在父亲(祖先)处处理是不影响的(重叠2的距离仍旧小于等于$K$),但距离为$K-1$时就得在子树内处理。子树内处理完了,需要检查距离这个点$x$恰好$K$的未覆盖的点,需要$x$为之覆盖。最终根节点特殊处理,把距离小于等于$K$的灭火器和点配对,并在根加灭火器覆盖掉剩余的点。

csp-s模拟109的更多相关文章

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

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

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

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

  3. CSP复赛day2模拟题

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

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

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

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

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

  6. CSP模拟赛2游记

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

  7. CSP模拟赛游记

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

  8. csp模拟69

    考试一眼看出$T3$原题,但是没做过,心态爆炸. 然后去看$T1$,迷之认为它是矩阵快速幂?推了一个小时,发现在转移过程中方案数并不均匀分布,然后就挂了. 决定先去看T3,只会$O(n\sqrt{n} ...

  9. [考试反思]1110csp-s模拟测试109:细节

    细节...决定成败 T2数组开小,T3long long没开够. 而且其实不止这样,考试结束前15分钟发现了好多低错: T3双向边没开2倍.dfs没递归调用.T2为了调试bitset开20没改(后来改 ...

随机推荐

  1. flex 布局方式

    开始啦 1. flex-direction 有关主轴的对齐方式 column 自上到下 row 自左到右 -->默认值 row-reverse 自右到左 column-reverse 自下到上 ...

  2. 2019年Java后端工程师常见面试题和感想

    来新公司有5个月了,从第二个月开始就参与公司后端工程师的面试工作了,包括校招在内,面试超过100个(包括40个校招的终面)应聘者了,应聘者中有超过10年的技术经理,有6年以上的高级开发,有3到5年的中 ...

  3. sql语句查询结果中添加自增列

    SELECT Row_Number() over ( order by getdate() ) as init , * FROM 表名

  4. linux使用glibc版本安装mysql8.0.12

    1.前言 使用yum安装虽然很方便,但是如果要是在没有公网的环境下,是没有办法使用yum源的.所以我们可以使用mysql提供的glibc版本的安装包,进行安装. 但是在安装之前,一定要将以前的版本删除 ...

  5. docker安装与常规使用 && dockerfile编写springbootdemo镜像

    dockerfile教程参考 https://blog.csdn.net/qq_33256688/article/details/80319673   docker 创建容器命令: docker ru ...

  6. 【异常】ser class threw exception: java.sql.SQLException: The last packet successfully received from the server was 39,444 milliseconds ago. The last

    1 详细异常 ser class threw exception: java.sql.SQLException: The last packet successfully received from ...

  7. 图解数据库中的各种 JOIN

    本文转载至https://mazhuang.org/2017/09/11/joins-in-sql/#full-outer-join-excluding-inner-join,如需阅读原文请至上述链接 ...

  8. Gradle 的使用

    gradle 工具类似于maven工具,但是gradle 减少了maven中的那种使用xml 中大量的配置文件来下载依赖的jar包.而gradle大大简化了,能够很快速的添加依赖.具体关于gradle ...

  9. Reverse数组以及大O表达式

    这篇主要是对数组实现一个倒排序(比如数组1.2.3,最后输出3.2.1),当然实现这个功能是非常easy的事,但是这里需要引入另外一个很重要的概念-----如何计算一个算法的时间复杂度并学会用大O表达 ...

  10. bcb ole拖拽功能的实现

    最近项目中用到了OLE 拖拽功能 和BCB 一个Form的Drag 不同的是,只有实现了OLE 拖拽才能,从其他程序拖拽数据到Form 下面的代码实现了,同HTML网页拖拽到Form时,Form获得H ...