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.1用户登录接口
用户的登录主要涉及到小程序登录.APP的帐号密码登录.APP的微信开发平台帐号登录.相应的地址是:http://qb.net/index.php/index/wxapp.login/index.htm ...
- python和C语言从路径中获取文件名
1.Python import os file_name = os.path.basename(filepath)#带后缀的文件名(不含路径) file_name_NoExtension = os.p ...
- 5.@pytest.mark.parametrize()数据驱动
简介: pytest.mark.parametrize 是 pytest 的内置装饰器,它允许你在 function 或者 class 上定义多组参数和 fixture 来实现数据驱动. @pytes ...
- Vitepress搭建组件库文档(下)—— 组件 Demo
上文 <Vitepress搭建组件库文档(上)-- 基本配置>已经讨论了 vitepress 搭建组件库文档的基本配置,包括站点 Logo.名称.首页 home 布局.顶部导航.左侧导航等 ...
- 题解 P6745 『MdOI R3』Number
前言 不知道是不是正解但是觉得挺好理解. 科学计数法 将一个数表示为\(a\times 10^x\) 的形式.其中\(a\leq10\),\(x\) 为整数. \(\sf Solution\) 其实这 ...
- etcd定时任务脚本执行失败
etcd定时任务脚本执行失败 报错如下:etcdctl命令不存在 是因为在脚本中etcdctl命令没有写绝对路径,修改标记部分改成绝对路径 可以先获取路径然后改成绝对路径问题解决 which etcd ...
- 长文梳理muduo网络库核心代码、剖析优秀编程细节
前言 muduo库是陈硕个人开发的tcp网络编程库,支持Reactor模型,推荐大家阅读陈硕写的<Linux多线程服务端编程:使用muduo C++网络库>.本人前段时间出于个人学习.找工 ...
- Oracle数据泵导入dmp文件,报ORA-39083、ORA-01917错误解决办法
将10.16.23.111数据库服务器中的数据库名称为cwy_init1的数据导出,随后在10.16.23.112数据库服务器创建空库cwy_init2,将导出的cwy_init1数据文件(cwy_i ...
- 什么是CLR?
CLR翻译为"公共语言运行库",全称是Common Language Runtime,它是一个可以由多种语言使用的"运行时",CLR的核心功能如内存管理,程序集 ...
- Feign 实现 GET 方法传递 POJO
Feign 实现 GET 方法传递 POJO 作者:Grey 原文地址: 博客园:Feign 实现 GET 方法传递 POJO CSDN:Feign 实现 GET 方法传递 POJO 需求 Sprin ...