省队集训Day1 睡觉困难综合征】的更多相关文章

传送门:https://www.luogu.org/problem/show?pid=3613 [题解] 按二进制位分开,对于每一位,用“起床困难综合征”的方法贪心做. 写棵LCT,维护正反两种权值,每个维护2种,代表全0的输出和全1的输出. 然后直接上LCT即可. 权值的合并有点trick,可以参考代码,需要压位. # include <stdio.h> # include <string.h> # include <iostream> # include <a…
题目背景 刚立完Flag我就挂了WC和THUWC... 时间限制0.5s,空间限制128MB 因为Claris大佬帮助一周目由乃通过了Deus的题,所以一周目的由乃前往二周目世界找雪辉去了 由于二周目世界被破坏殆尽,所以由乃和雪辉天天都忙着重建世界(其实和MC差不多吧),Deus看到了题问她,总是被告知无可奉告 Deus没办法只能去三周目世界问三周目的由乃OI题... 三周目的世界中,因为没有未来日记,所以一切都很正常,由乃天天认真学习... 因为Deus天天问由乃OI题,所以由乃去学习了一下O…
一.[NOI2014]起床困难综合症 题目描述 网址:https://daniu.luogu.org/problemnew/show/2114 大意: 有一条链,链上每一个节点包含一个位运算f 与 一个值w , 一个值V从链首出发. 每经过一个点u ,有: \(V = V (f)w\),其中f = {&.|.^}中的一个. 现在限定初始值V在区间\([0,R]\)中,请选定一个值,使得最终结果最大. 题目解法 史上最简单的NOI题目,当时肯定一群大佬秒A. 显然对于二进制,每一位的运算之间没有影…
传送门 题意:给出一个$N$个点的树,树上每个点有一个位运算符号和一个数值.需要支持以下操作:修改一个点的位运算符号和数值,或者给出两个点$x,y$并给出一个上界$a$,可以选取一个$[0,a]$内的整数值,在从$x$到$y$的路径上,每走到一个点就与这个点对应的数值进行对应的位运算,求到达$y$点时数字的可能的最大值.$N,\text{操作数} \leq 10^5$,数字在$unsigned long long$范围内. 可以先去做NOI2014的起床困难综合征 考虑用起床困难综合征的贪心策略…
洛谷题目传送门 膜拜神犇出题人管理员!!膜拜yler和ZSY!! 没错yler连续教我这个蒟蒻写起床困难综合症和睡觉困难综合症%%%Orz,所以按位贪心的思路可以继承下来 这里最好还是写树剖吧,不过我根本不会,于是只好来个LCT,用unsigned long long维护链上双向的按位操作.具体方法yler已经讲得很好啦 注意因为信息的维护是有方向性的,所以pushdown要写规范...... #include<cstdio> #define RG register #define R RG…
题目: P3613 睡觉困难综合症 解题思路: LCT,主要是维护链上的多位贪心答案,推个公式:分类讨论入0/1的情况,合并就好了(公式是合并用的) 代码(我不知道之前那个为啥一直wa,改成结构体就好了QAQ: #include<cstdio> #include<cstring> #include<algorithm> #define lll tr[spc].ch[0] #define rrr tr[spc].ch[1] #define lls tr[spc].dt[0…
题面描述https://www.luogu.org/problemnew/show/3613 原题NOI2014起床困难综合症https://www.luogu.org/problemnew/show/2114做完原题就可以尝试解决这道题目了 题意:一棵n个节点的树,每个节点上有一个位运算操作符(与.或.异或)和一个数字,走过一个点的时候当前值就会和这个数字做相应运算.现在给定x,y,z,要求在[0,z]中选区一个初值使从x点走到y点的最终结果最大.支持动态修改点上的操作符与数字. 我太菜了完全…
题意 NOI2014 起床困难综合症 放在树上,加上单点修改与链上查询. 题解 类似于原题,我们只需要求出 \(0\) 和 \(2^{k - 1} - 1\) 走过这条链会变成什么值,就能确定每一位为 \(0 / 1\) 走完后变成什么值. 我们对于 \(LCT\) 每个节点维护两个值 \(r_0,r_1\) 表示 \(0\) 和 \(2 ^ k - 1\) 从当前 \(LCT\) 维护的链底走到这个点会变成什么值. 然后我们就可以把位运算操作变成一个值放在这个点上. 合并信息的时候,可以这样写…
题意:有一堆兔子,还有一个r为半径的圆,要求找到最大集合满足这个集合里的兔子两两连边的直线不经过圆. 思路:发现如果有两个点之间连边不经过圆,那么他们到圆的切线会构成一段区间,那么这两个点的区间一定会有交集,形如s0 s1 e0 e1 同样的,如果是n个点,那就是s0 s1 s2..sn e0 e1 e2.. en 因此,我们枚举那个起始点,然后对于其他点我们按照s排序,对于e做最长上升子序列即可.时间复杂度O(n^2 logn) #include <cstdio> #include <…
题目大意:给出一棵n个点的树,每个点有一个运算符(与.或.异或)和一个数,支持两种操作,第一种修改一个点的运算符和数,第二种给出x,y,z,询问若有一个0~z之间的数从点x走到点y(简单路径),并且对路径上经过的点做对应的运算,最终最大能是多少.(n,操作数<=100,000,数字在[0,2^64)之间) 思路:洛谷改编NOI的一道神题,树剖/LCT维护若一开始全是0/全是1,经过一条链后各位会变成什么,用位运算合并信息,然后每个询问,从高位往低位贪心,每次取0和1中经过这条链后得到的较大值,若…