YMOI 2019.6.29
题解 YMOI 2019.6.29
放弃FAIOJ,用cena考了一次试。被全方位吊打..
T1 开灯
题面:
在一条无限长的路上,有一排无限长的路灯,编号为1,2,3,4,……。
每一盏灯只有两种可能的状态,开或者关。如果按一下某一盏灯的开关,那么这盏灯的状态将发生改变。如果原来是开,将变成关。如果原来是关,将变成开。在刚开始的时候,所有的灯都是关的。
小明每次可以进行如下的操作:
指定两个数,a,t(a为实数,t为正整数)。将编号为[a],[2a],[3a],……,[t*a]的灯的开关各按一次。其中[k]表示实数k的整数部分。在小明进行了n次操作后,小明突然发现,这个时候只有一盏灯是开的,小明很想知道这盏灯的编号,可是这盏灯离小明太远了,小明看不清编号是多少。
幸好,小明还记得之前的n次操作。于是小明找到了你,你能帮他计算出这盏开着的灯的编号吗?
第一眼看到题的时候,看到“无限长”有点慌,打了暴力就跑路了
再看一眼,虽然总数是无限的,但可能出现的灯是优先的。那么,只要当前的灯是灭的,就把编号插入队列;灯是亮的,就弹出;那么最后剩下的不久是答案吗。
插入,弹出...刚学的fhq_treap!于是考场上喜滋滋地打了100行花Qtreap,自我感觉良好。丝毫没有发觉用异或就能超级!超级!高效简洁地解决问题..
而且,这还没完!考场上我为了保险,把数组考到了1e7级别的,结果:全部MLE,喜捧鸭蛋。。
下回考试一定记住要算好空间。Ps:128MB约等于6e7个int
T2 打砖块
考场的时候察觉到了是dp,但是没能推出正确的dp
首先简化问题,假如没有奖励子弹会怎么样?
简单,f[i][j]表示前i列用j发子弹,轻松转移
那么,现在有奖励子弹了,是不是可以认为有奖励子弹的砖块可以无需子弹,直接得分,然后用旧方法?我在考场上的思路也就止步于此。答案是:不行
假设最后一发子弹打在了N上,同时N上面裸露出了Y。但是,由于我们手头上没有子弹了,这个Y是心有余而力不足的
也就是说,虽然奖励子弹是无需消耗子弹的,但是前提是我们用一发子弹去换得另一发子弹,我们必须自备一发子弹
emm,假如依旧用f[i][j]表示,然后转移,就会出现大量分情况讨论,似乎有点难以解决..不过题解好像大部分都是dp,才疏学浅读不懂
假如我们在当初就“藏”了一发子弹。先用剩余的子弹去打,那么只要有Y,我们就可以用这个私房弹打掉,然后再归还回来。最后的情况一定不会再有裸露的Y,我们只要用这个最后的一发子弹打掉一个N即可。
枚举每一列作为打掉最后一个N的那一列,预处理出来从左至右和从右至左分别打掉i发子弹可以获得最大收益,即可得到答案 ( ̄y▽, ̄)╭
T3 收费站
这回可算想到了二分答案!但是,思路错了
我原本的思路是:先跑一遍spfa判可行性,然后用二分加并查集判最优。但是并查集的时候,我是直接把所有收费小于答案值得收费站联通进去,忽略了一些可能距离受限而本应放弃的收费站。而这个错误想法竟然混到了90分??
说正解:依旧是二分答案,带着二分去跑带限制的dijkstra。具体而言,就是收费大于二分的收费站都无法访问,用剩余的点去跑dijktra
注意,正权图下,dijkstra加优先队列的确吊打spfa
欸,太菜了。好像往届的大佬都没有考到我这惨淡的分的。。继续努力吧(~ ̄(OO) ̄)ブ
YMOI 2019.6.29的更多相关文章
- Alpha冲刺(6/10)——2019.4.29
所属课程 软件工程1916|W(福州大学) 作业要求 Alpha冲刺(6/10)--2019.4.29 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪 ...
- YMOI 2019.6.22
题解 YMOI 2019.6.22 lia麦頔溜了,缺了lia麦頔的排名仅供参考 不过分数还是暴露无遗 T1 邪恶入侵 简易题干: 在三维空间内有一些点,点之间有双向边.每一次询问给出一个m,只有边权 ...
- YMOI 2019.6.15
题解 YMOI 2019.6.15 前记 NOIP信心个蛋赛,被各路大佬吊打,信心-- 耻辱墙: \(2019.6.15\) \(rank\) \(\color{red}{3}\) T1 简单队列 题 ...
- YMOI 2019.6.8
题解 YMOI 2019.6.8 前言 第二回考试,承让拿了第一次rank1,(●ˇ∀ˇ●) 题解 这次考试总体发挥比较好,每一道题都尽可能得取得了所能及的所有分.虽然多少还是有失误,不过在所难免.保 ...
- 2019.03.29 bzoj5463: [APIO2018] 铁人两项(圆方树+树形dp)
传送门 题意简述:给你一张无向图,问你满足存在从a−>b−>ca->b->ca−>b−>c且不经过重复节点的路径的有序点对(a,b,c)(a,b,c)(a,b,c) ...
- 2019.03.29 NOIP训练 友好国度(点分治+容斥)
传送门 思路: 直接上点分治+容斥计算每个因数对应的贡献即可. 代码: #include<bits/stdc++.h> #define ri register int using name ...
- 2019.03.29 bzoj3323: [Scoi2013]多项式的运算(非旋treap)
传送门 题意:定义一个无穷项的多项式f(x)f(x)f(x),初始各项系数都为0,现在有几种操作 将xLx^LxL到xRx^RxR这些项的系数乘上某个定值v 将xLx^LxL到xRx^RxR这些项的系 ...
- 2019.03.29 读书笔记 关于params与可选参数
void Method1(string str, object a){} void Method2(string str, object a,object b) { } void Method3(st ...
- 2019.03.29 读书笔记 关于override与new
差异:override:覆盖父类分方法,new 隐藏父类方法. 共同:都不能改变父类自身方法. public class Test { public string Name { get; set; } ...
随机推荐
- 在CentOs7虚拟机Linux离线安装mysql5.6(亲测可用)
在该博主博客的的基础上进一步改进:https://blog.csdn.net/zhousq8929/article/details/117223255 文章目录 1.在官网下载mysql-5.6.36 ...
- 4.pytest结合allure-pytest插件生成allure测试报告
之前我们使用的测试报告插件是pytest-html 这次使用的插件是allure-pytest,更加美观强大 安装插件 pip3 install allure-pytest 安装allure(Mac) ...
- Python基础之模块:1、模块的导入和使用
目录 一.模块 1.简介 2.模块的表现形式 二.模块的分类 1.自定义模块 2.内置模块 3.第三方模块 三.导入模块的句式 学前须知: 1.import句式 2.from...import...句 ...
- ubuntu 基本指令
系统相关 df: disk free 用以显示系统上文件系统磁盘的使用情况 # 以M/G单位显示硬盘空间大小 df -h apt: advanced packaging tool 包管理工具 apt ...
- 用于数据科学的顶级 C/C++ 机器学习库整理
用于数据科学的顶级 C/C++ 机器学习库整理 介绍和动机--为什么选择 C++ C++ 非常适合 动态负载平衡. 自适应缓存以及开发大型大数据框架 和库.Google 的MapReduce.Mong ...
- windows查看端口和杀掉端口
//执行下面命令 netstat --help 获取netstat的所有命令参数 //例如查看8080端口占用 netstat -ano | findstr 8080 //查看该端口是什么 taskl ...
- Linux Polkit本地权限提升漏洞(CVE-2021-4034)
Linux Polkit本地权限提升漏洞(CVE-2021-4034) 免责声明: 漏洞描述 影响范围 漏洞检测 漏洞复现 修复建议 免责声明: 发现这个漏洞被各大预警平台刷屏了,目前主流Linux系 ...
- ThinkPHP 6.0 RC2 版本发布——架构升级、精简核心
自从5.2版本变更为6.0以来,官方一直致力于优化架构和精简核心,同时也在准备手册和测试工作,在经过近1个月的开发迭代后,官方宣布发布ThinkPHP6.0RC2版本. 主要更新 相比较RC1版本更新 ...
- vmware workstation NAT模式配置
一. 配置虚拟网络编辑器 1. 打开虚拟网络编辑器 2. 点击右下角更改设置 3. 选择NAT模式 点击选中NAT模式的虚拟网络,默认为VMnet8(可调整),可设置NAT模式的子网IP和掩码 4. ...
- Karmada跨集群优雅故障迁移特性解析
摘要:在 Karmada 最新版本 v1.3中,跨集群故障迁移特性支持优雅故障迁移,确保迁移过程足够平滑. 本文分享自华为云社区<Karmada跨集群优雅故障迁移特性解析>,作者:Karm ...