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; } ...
随机推荐
- 齐博x1当前URL标签
当前URL标签 {:get_url('location')} 当前URL的二维码标签 {:urls('index/qrcode/index')}?url={:urlencode(get_url('lo ...
- 3.pytest断言assert
pytest使用的python自带的断言assert关键字,和unittest封装的assert断言不一样 原理:用来测试某个断言条件,如果断言条件为True,则程序将继续正常执行:但如果断言条件为假 ...
- SQL生成脚本
右键要生成脚本的数据库 选择task 选择Generate script 选择需要生成脚本的table.view.procedure
- 乾象投资:基于JuiceFS 构建云上量化投研平台
背景 乾象投资 Metabit Trading 成立于2018年,是一家以人工智能为核心的科技型量化投资公司.核心成员毕业于 Stanford.CMU.清北等高校.目前,管理规模已突破 30 亿元人民 ...
- 支持JDK19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是<支持JDK19虚拟线程的web ...
- 优雅处理Golang中的异常
我们在使用Golang时,不可避免会遇到异常情况的处理,与Java.Python等语言不同的是,Go中并没有try...catch...这样的语句块,我们知道在Java中使用try...catch.. ...
- android 代码分析
1.@Override注解 @Override 注解是用来指定方法重写的,只能修饰方法并且只能用于方法重写,不能修饰其它的元素. 作用是告诉编译器检查这个方法,保证父类要包含一个被该方法重写的方法,否 ...
- spring源码解析(二) 结合源码聊聊FactoryBean
一.什么是FactoryBean FactoryBean是由spring提供的用来让用户可以自定bean创建的接口:实现该接口可以让你的bean不用经过spring复杂的bean创建过程,但同时也能做 ...
- 【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用APIs中的TEST功能失败
问题描述 使用微软API管理服务(Azure API Management),简称APIM. 因为公司策略要求只能内部网络访问,所以启用了VNET集成.集成方式见: (在内部模式下使用 Azure A ...
- 嵌入式-c语言基础:冒泡排序实现从大到小排列
#include<stdio.h> int main() { /*冒泡排序:从大到小*/ /*i=0 第1轮(i+1):需要比较9次(sizeArr-i-1)*/ /*i=1 第2轮(i+ ...