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; } ...
随机推荐
- Linux实战笔记__Centos7上搭建DVWA网站(基于宝塔)
安装宝塔套件 宝塔官网有远程安装代码https://www.bt.cn/bbs/thread-19376-1-1.html 下载DVWA并上传至/www/wwwroot目录 下载地址: 配置数据库连接 ...
- day50-正则表达式01
正则表达式01 5.1正则表达式的作用 正则表达式的便利 在一篇文章中,想要提取相应的字符,比如提取文章中的所有英文单词,提取文章中的所有数字等. 传统方法是:使用遍历的方式,对文本中的每一个字符进行 ...
- 靶机: easy_cloudantivirus
靶机: easy_cloudantivirus 准备 下载靶机(Target):https://www.vulnhub.com/entry/boredhackerblog-cloud-av,453/ ...
- 题解 CF630L Cracking the Code
前言 为什么没有人暴力快速幂啊,Ta不香嘛/kel 题意 设读入为 \(abcde\) ,求 \(acedb^5\mod{10^5}\) 的结果. \(\sf {Solution}\) 显然暴力啊. ...
- <一>从指令角度了解函数堆栈调用过程
代码 点击查看代码 #include <iostream> using namespace std; int sum(int a,int b){ int temp=0; temp= a + ...
- Vue 实现小小记事本
1.实现效果 用户输入后按回车,输入的内容自动保存,下方会显示记录的条数,鼠标移动到文字所在div上,会显示删除按钮,点击按钮,相应记录会被删除,下方的记录条数会相应变化,点击clear,所有记录会被 ...
- 万万没想到,除了香农计划,Python3.11竟还有这么多性能提升!
众所周知,Python 3.11 版本带来了较大的性能提升,但是,它具体在哪些方面上得到了优化呢?除了著名的"香农计划"外,它还包含哪些与性能相关的优化呢?本文将带你一探究竟! 作 ...
- JUC学习笔记——共享模型之内存
JUC学习笔记--共享模型之内存 在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的内存部分 我们会分为以下几部分进行介绍: Java内存模型 可见性 模式之两阶段终止 模式之Balk ...
- Bitmap和byte[]的相互转换
/// <summary> /// 将Bitmap转换为字节数组 /// </summary> /// <param name="width"> ...
- 基于 Sealos 的镜像构建能力,快速部署自定义 k8s 集群
Sealos 是一个快速构建高可用 k8s 集群的命令行工具,该工具部署时会在第一个 k8s master 节点部署 registry 服务(sealos.hub),该域名通过 hosts 解析到第一 ...