csp-s模拟109
这场考试状态是极差,也因而无畏地打下了三个乱搞。然而这场确实挺乱搞。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的更多相关文章
- 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系统所以连怎么建文件夹,调字体,如何编译都不知道,考试的前半小时 ...
- csp模拟69
考试一眼看出$T3$原题,但是没做过,心态爆炸. 然后去看$T1$,迷之认为它是矩阵快速幂?推了一个小时,发现在转移过程中方案数并不均匀分布,然后就挂了. 决定先去看T3,只会$O(n\sqrt{n} ...
- [考试反思]1110csp-s模拟测试109:细节
细节...决定成败 T2数组开小,T3long long没开够. 而且其实不止这样,考试结束前15分钟发现了好多低错: T3双向边没开2倍.dfs没递归调用.T2为了调试bitset开20没改(后来改 ...
随机推荐
- React中setState如何修改深层对象?
在React中经常会使用到setState,因为在react生态中,state就是一切.在开发过程中,时长会在state中遇到一些比较复杂的数据结构,类似下面这样的: 这时需要我们修改list中obj ...
- 4.Java集合-ArrayList实现原理及源码分析
一.ArrayList概述: ArrayList 是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存 ArrayList不是线程安全的,只能用在单线程的情况 ...
- Mysql的管理
Linux系统中:mysql进入的命令为mysql -u root -p +你的mysql密码. Mysql是如何添加用户呢? 在mysql命令行下,使用use mysql;进入mysql的数据库中. ...
- Image Processing and Analysis_8_Edge Detection:Edge and line oriented contour detection State of the art ——2011
此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...
- 【2017-12-12】Winform----Datagirdview使用
1.数据绑定 DataGirdView.DataSource = list集合 2.复选框 获取复选框选中状态 for (int i = 0; i < dataGridView1.RowCoun ...
- 图像处理---视频<->图片
图像处理---视频<->图片 // 该程序实现视频和图片的相互转换. // Image_to_video()函数将一组图片合成AVI视频文件. // Video_to_image()函数将 ...
- Ubuntu系统---编译opencv程序的几种方式g++、Makefile、Cmake
Ubuntu系统---编译opencv程序的几种方式g++.Makefile.Cmake 先建立一个工程(一个文件夹),写好xxx.cpp文件,可以是多个: //----------opencv.cp ...
- Euler's Sum of Powers Conjecture
转帖:Euler's Sum of Powers Conjecture 存不存在四个大于1的整数的五次幂恰好是另一个整数的五次幂? 暴搜:O(n^4) 用dictionary:O(n^3) impor ...
- 《流畅的Python》 A Pythonic Object--第9章
Python的数据模型data model, 用户可以创建自定义类型,并且运行起来像内建类型一样自然. 即不是靠继承,而是duck typing. 支持用内建函数来创建可选的对象表现形式.例如repr ...
- TCP IP协议和网络安全
传输层的两个协议: 可靠传输 TCP 分段传输 建立对话(消耗系统资源) 丢失重传netstat -n 不可靠传输 UDP 一个数据包就能表达完整的意思或屏幕广播 应用层协议(默认 ...