首页 > TAG信息列表 > Ynoi2019

洛谷P5047 YnOI2019模拟赛T2 题解

Preface 刚看到题目时还以为是云南省选…… 人生中第一道黑题! 想当年看大佬写猪国杀(那时还是黑题)时无比仰慕,却始终认为NOI/NOI+/CTSC是多么遥不可及的高峰…… 回想一年前,我也就只有橙黄的水平,对稍微高级一点的算法毫无涉猎。当时对OI也没有什么热情,只会线性DP,连深搜广搜都分不清

[Ynoi2019 模拟赛] Yuno loves sqrt technology III

题面 Yuno loves sqrt technology III 题解 一道很水的黑题。 做过蒲公英的同学应该都知道这和蒲公英很类似。 不同的是它维护的是区间众数的个数。 因为区间众数不具有可加性,再加上强制在线,显然是用分块来维护。 首先正常分块。 预处理块内信息时的整合就直接 \(\sqrt(n) ^ 3\)

P5046 [Ynoi2019 模拟赛] Yuno loves sqrt technology I(分块+卡常)

洛谷题面传送门 zszz,lxl 出的 DS 都是卡常题( 首先由于此题强制在线,因此考虑分块,我们那么待查询区间 \([l,r]\) 可以很自然地被分为三个部分: 左散块 中间的整块 右散块 那么这样一来区间逆序对的来源可以有以下几种: 左散块内部的区间逆序对 右散块内部的区间逆序对 每个整块内部

P5048-[Ynoi2019 模拟赛]Yuno loves sqrt technology III【分块】

正题 题目链接:https://www.luogu.com.cn/problem/P5048 题目大意 就是这个 【QA】区间众数,但空间很小 长度为\(n\)的序列,要求支持查找区间众数出现次数。 强制在线 \(1\leq n,m\leq 5\times 10^5\) 解题思路 空间小就不能用蒲公英那种做法了 分块然后处理出每个连续块段的众数

luogu P5048 [Ynoi2019 模拟赛] Yuno loves sqrt technology III

题面传送门 很平凡的分块啊不知道为什么要评黑题。 首先显然要预处理块间众数。 然后就是考虑零散块怎么处理。 用一个vector将所有一样的数存下来,然后零散块左边从右到做遍历,如果碰到一个数后ans个数没有超过右边界就直接将ans++ 右边同理。 时间复杂度\(O(n\sqrt n)\),因为vector

luogu P5047 [Ynoi2019 模拟赛] Yuno loves sqrt technology II

题面传送门 没有修改,考虑莫队,容易想到一个移动指针时用树状数组维护的\(O(n\sqrt nlogn)\)的方法,但是过不去。 这种情况就可以考虑莫队二次离线,把询问拆分,分类讨论一下即可。 注意这道题需要维护正反两个离线。注意卡常。注意离线那个树状数组要用域值分块来做到\(O(1)\)查询。 哦

P5414 [YNOI2019] 排序

Aimeee 事实上每一个数付出了等于自己的值的贡献后,就可以随便动了 那么就是让不动的数在维持不严格不下降后的和最大 (因为那些随便扔啊) #include<iostream> #include <algorithm> #include<cstdio> #include<cstring> using namespace std; int t; int n; long long Aimee[1001],j

Ynoi2019模拟赛

Ynoi2019模拟赛 前言 太毒瘤了!!! 感觉都是经典的问题,但以前从没想过有什么更优的办法。。 果然是我太菜了吗。。。 出题人lxl的题解 lxl的题解已经很详细了,我就直接贴代码吧。。 Yuno loves sqrt technology I 链接 P5046 Yuno loves sqrt technology I 吐槽 第一遍写完之后果不其然

[luogu5048] [Ynoi2019模拟赛] Yuno loves sqrt technology III

题目链接 洛谷. Solution 思路同[BZOJ2724] [Violet 6]蒲公英,只不过由于lxl过于毒瘤,我们有一些更巧妙的操作。 首先还是预处理\(f[l][r]\)表示\(l\sim r\)块的众数数量,注意这里不要求具体是什么,我们就有一些奇技淫巧了。 当然第一步还是离散化,对于权值为\(v\)的点,我们开一个\(vecto

[Ynoi2019模拟赛]Yuno loves sqrt technology I

题目描述 给你一个长为n的排列,m次询问,每次查询一个区间的逆序对数,强制在线。 题解 MD不卡了。。TMD一点都卡不动。 强制在线的话也没啥好一点的方法,只能分块预处理了。 对于每个块,我们设lef[i]表示i到这个i这个元素所在块的块头的区间逆序对,rig[i]表示到块尾的逆序对。 在设一个cnt