首页 > TAG信息列表 > Hnoi2017
P3721 [AH2017/HNOI2017]单旋 题解
题目链接 这是一道很有意思的题……用一个数据结构维护另一个数据结构…… 先考虑这个题的答案,也就是深度如何维护?作为 LCT 练习题单中的一道题,很容易想到用 LCT 维护链上点数,这样每个点的深度就可以把这个点和根 split 出来,直接返回这个点的 siz 就行了。 然后,考虑到需要找整棵树「AHOI / HNOI2017」影魔
「AHOI / HNOI2017」影魔 cdq 分治写法。 首先利用单调栈求出 \(L_i,R_i\) 分别表示在 \(i\) 左边第一个 \(K\) 值大于 \(K_i\),右边第一个 \(K\) 值大于 \(K_i\) 的位置。 如 \(L_i\) 不存在设为 0,如 \(R_i\) 不存在设为 \(n+1\)。 然后我们考虑提供 \(p1\) 攻击力的情况: 容易发现[AHOI/HNOI2017]影魔 题解
传送门QAQ 思路 首先有一个套路(我自己总结的,错了别骂窝 qwq): 统计满足类似 \(i \lt j \lt k\) 且 \(a_i \lt a_j \lt a_k\) 的关系的 \((i,j,k)\) 数量的这类题一般来说突破点都是中间的 \(j\),并且一般会采用单调栈处理。 这道题的预处理就是这个套路: 首先对于每个 \(i\),求出左边P3723 [AH2017/HNOI2017]礼物 题解
Description Luogu传送门 Solution 不难发现,将其中一个手环中所有装饰物的亮度增加一个相同的非负整数 \(c\),可以转化成对其中一个手环增加 \(c\ (c \in Z)\)。那么最终的差异值就是: \[\sum\limits_{i = 1}^{n}(a_i - b_i + c)^2 \]把平方拆开: \[\sum\limits_{i = 1}^{n}a_i^2 + b【题解】[AH2017/HNOI2017]影魔
Problem \(\text{Solution:}\) 对于 p1 的获得条件,要求端点两个值恰好是次大值和最大值;对于 p2 的获得条件,要求其中一个是最大值。 线段树并不一定是用来动态直接回答询问的,这题区间的答案也并不好合并。考虑处理出每一个点左右比他大的第一个数的位置后贡献应该长什么样: 首先 R[i【数学】[AH2017/HNOI2017]礼物
先枚举 \(c\) 打一个表,然后发现这是个关于 \(c\) 的凸函数。 int main() { read(n); read(m); for (int i=1; i<=n; i++) read(A[i]); for (int i=1; i<=n; i++) read(B[i]); for (int j=-10; j<=10; j++) { for (int i=1; i<=n; i++) A[i]+=j; int mn=inf; for (int k=题解 [AHOI2017/HNOI2017]大佬
传送门 注意到题面里n很小,有\(n\leq100\) 考虑联系n的实际意义 n是你在大佬手中能活的天数 题面颇富深意 好了不闹了 n很小,对于\(40\%\)的数据,爆搜即可 考场上靠这个骗了40pts 对于满分做法 我是考完看了题解才开始写的 然而题解貌似写麻烦了 首先对大佬的伤害与特定日期无关,只与#2018. 「AHOI / HNOI2017」单旋(平衡树模拟+set+线段树)
https://loj.ac/problem/2018 题解: 先考虑只有加点怎么做?设要加的点是第\(x\)大,\(x-1\)的右儿子和\(x+1\)的左儿子一定恰好有一个是空的,加到那里即可。 再模拟一下把最小值\(x\)给splay到根的过程,发现\(x\)到根的链几乎没有变,变得是:把\(x\)的右儿子接到\(x\)的父亲,把原来的根[AHOI2017/HNOI2017]单旋
题目 点这里看题目。 分析 最妙的地方在于,这道题其实是用一种数据结构模拟另一种数据结构! 我们需要维护深度和树的结构,以下对于每个操作进行分别讨论。 插入一个新节点 可以发现,这个新节点一定会成为自己的前驱或者后继中深度较大者的儿子。 然后可以更新深度AHOI/HNOI2017大佬
SOL: 首先可以发现保证自己不死和怼大佬是可以分开的 一个\(n^2DP\)算出最多可以用来怼大佬的天数,问题就转化为用\(n\)天怼大佬是否成功 先求出所有可能的讽刺值及其天数,惊人发现竟存的下!看来要多尝试才好 这样攻击一次和零次的都可以轻易判断 攻击两次(讽刺值\(f1,f2\)天数\(d1,d[AH2017/HNOI2017] 单旋 - Splay
Splay 暴力维护节点信息即可 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int delta,t1,t2,t3,k[1000005],ch[1000005][2],fa[1000005],a[1000005],t[1000005],n,ind,root,opera[[AH2017/HNOI2017] 影魔 - 线段树
#include<bits/stdc++.h> #define maxn 200010 using namespace std; int a[maxn],st[maxn][2],top,L[maxn],R[maxn],root[2][maxn]; struct node{int x,y;}A[maxn]; struct Node{int x,yl,yr;}B[maxn<<1]; long long num; bool cmp1(node p,node q){return p.x&lLuogu P3723 [AH2017/HNOI2017]礼物
拆一下式子: \(\begin{aligned}原式&=\sum\limits_{i=1}^n(x_i-y_i+c)\\ &=\sum\limits_{i=1}^nx_i^2+y_i^2+2x_ic-2y_ic+2c^2-2x_iy_i\\&=nc^2+\sum\limits_{i=1}^nx_i^2+y_i^2+2c(x_i-y_i)-2x_iy_i\end{aligned}\) 那么我们只要令最后一项最大即可。 我们把 \(x\) 数组复制一倍拼[AH2017/HNOI2017]礼物 (FFT)
题面 LOJ传送门 题解 直接把贡献写出来看看。 \[\sum_{i=1}^n(a_i-b_i+x)^2=\sum_{i=1}^n(a_i^2+b_i^2)+nx^2+2x\sum_{i=1}^n(a_i-b_i)-2\sum_{i=1}^na_ib_i\] 发现当\(x\)已知时,唯一需要考虑的就是最后一项,因为可以循环位移数组。然后由于\(x\)值域\([-m,m]\)可枚举,那么问题就在HNOI2017模拟赛 C题
题目: 分析: 开始觉得是神仙题。。。 然后发现n最多有2个质因子 这说明sm呢。。。 学过物理的小朋友们知道,当一个物体受多个不同方向相同的力时,只有相邻力的夹角相等,受力就会平衡 于是拆扇叶相当于在风扇上等分角度 考虑贪心的话,就是一次拆越少,也就是角度分越大越好[AH2017/HNOI2017]单旋
题目 \(\rm splay\)水平太差,于是得手玩一下才能发现规律 首先插入一个数,其肯定会成为其前驱的右儿子或者是后继的左儿子,进一步手玩发现前驱的右儿子或者是后继的左儿子一定只有一个是空的,我们找到这个空位置插入就好了 于是我们需要一个\(\rm std::set\)来查找前驱后继,同时我们还BZOJ 4828: [AH2017/HNOI2017]大佬 Dp
title BZOJ 4828 LUOGU 3724 题面巨长,再次不想贴了 analysis 细读题面,可以发现和自己自信值有关的就一项,所以题目再三强调的你不能死,其实是句废话。 但是最终答案是问是否能怼死大佬,而跟着有关的就天数和嘲讽值这两个因素,所以,好像清晰了点儿(但是好像还是改变不了这是个神仙题的事[BZOJ4827][Hnoi2017]礼物(FFT“
4827: [Hnoi2017]礼物 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1315 Solved: 915[Submit][Status][Discuss] Description 我的室友最近喜欢上了一个可爱的小女生。马上就要到她的生日了,他决定买一对情侣手 环,一个留给自己,一 个送给她。每个手环上各有 n 个装[BZOJ4827][Hnoi2017]礼物(FFT)
4827: [Hnoi2017]礼物 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1315 Solved: 915[Submit][Status][Discuss] Description 我的室友最近喜欢上了一个可爱的小女生。马上就要到她的生日了,他决定买一对情侣手 环,一个留给自己,一 个送给她。每个手环上各有 n 个装[LOJ 2022]「AHOI / HNOI2017」队长快跑
[LOJ 2022]「AHOI / HNOI2017」队长快跑 链接 链接 题解 不难看出,除了影响到起点和终点的射线以外,射线的角度没有意义,因为如果一定要从该射线的射出一侧过去,必然会撞到射线 因此,我们可以把射线的方向规约成两类,分成向上与向下的两种。 不难发现,改变射线的方向后,原有的限制条件并未[HNOI2017]抛硬币
Description 小A和小B是一对好朋友,他们经常一起愉快的玩耍。最近小B沉迷于××师手游,天天刷本,根本无心搞学习。但是已经入坑了几个月,却一次都没有抽到SSR,让他非常怀疑人生。勤勉的小A为了劝说小B早日脱坑,认真学习,决定以抛硬币的形式让小B明白他是一个彻彻底底的非洲人,从而对这个游[AH2017/HNOI2017]礼物(FFT)
[Luogu3723] [DarkBZOJ4827] 题解 首先,有一个结论:两个手环增加非负整数亮度,等于其中一个增加一个整数亮度(可以为负) 设增加亮度为x.求\(\sum_{i=1}^{n}(a_{i}+x-b_{i})^2\) 把式子拆开,问题转化为求 \(\sum_{i=1}^{n}a_{i}b_{i}\)的最大值 ,就是一个卷积 [一个套路] : 所以把反过来的[HNOI2017]礼物
Description: 给定两个有n个数的序列,你可以将其中一个进行旋转(想象是在一个环上),或者对序列的每个数加上一个非负整数C 求操作后 \(\sum{(a_i-b_i)^2}\)的最小值 Description: \(n<=5*10^4,m<=100,a_i<=m\) Solution: Description: 给定两个有n个数的序列,你可以将其中一个进行旋转(想象并不对劲的bzoj4825:loj2018:p3721:[HNOI2017]单旋
题目大意 spaly是一种数据结构,它是只有单旋的splay 有一个初始为空的spaly,\(m\)(\(m\leq10^5\))次操作,每个操作是以下5种中的一种: 1.向spaly中插入一个数(过程和treap的插入类似,只不过插入之后不会调整),并询问这个数的深度 2.询问最小值的深度,并将它splay到根 3.询问最大值的深度,并将2019年2月训练记录(更新ing)
前言 正式到了寒假,在做寒假作业的同时,要好好努力一把了! (本博客链接还未开始补) \(Feb\ 7th\) 今天用一个上午写了一道神奇的离线题:【BZOJ4826】[HNOI2017] 影魔。