【LOJ】#2016. 「SCOI2016」美味】的更多相关文章

题目链接 loj#2016. 「SCOI2016」美味 题解 对于不带x的怎么做....可持久化trie树 对于带x,和trie树一样贪心 对于答案的二进制位,从高往低位贪心, 二进制可以表示所有的数,那么每一位的选取情况,对于之后的可选区间也是一定的 贪心时,判断当前位,是否可以为1, 用线段树维护一下,每次走左儿子代表这一位选了1,走又儿子为选了0,这样区间是不交 对于b的限制,改一下查询的区间就行了 代码 #include<cstdio> #include<algorithm>…
题解 做了一下SCOI2015,于是决定搬运SCOI2016= v = 如果没有加法,我们可以向左向右节点查找 每个总权值是2^18 - 1,然后左右分,那么每次是一个完整的节点 如果有了加法,那么我们如果希望有数满足某一位是1或者0,是一段取值的区间,我们要保证这个区间的左右端点减少x后这个区间里还有值 我们可以通过一次\(\log n\)的操作完成这个东西 那么我们二分的话,复杂度也是\(\log n\)的 所以总复杂度就是\(O(m \log^2 n)\)的 代码 #include <bi…
#2016. 「SCOI2016」美味 思路: 主席树: 代码: #include <bits/stdc++.h> using namespace std; #define maxa 262143 #define maxn 200005 #define maxtree maxa*40 ],val[maxtree],L[maxtree],R[maxtree]; int root[maxn],mid[maxtree],tot; inline void in(int &now) { ; ')…
「SCOI2016」美味 状态极差无比,一个锤子题目而已 考虑每次对\(b\)和\(d\)求\(c=d \ xor \ (a+b)\)的最大值,因为异或每一位是独立的,所以我们可以尝试按位贪心. 如果要求\(c\)的从低到高第\(i\)位为\(0\)(最低位为第\(0\)位),那么此时\(c\)的更高位是确定好的了 \[ \_\_\_\_\_\_\_01111111\\ \_\_\_\_\_\_\_00000000 \] 这是\(c\)的上界和下界,分别减去\(b\)后,得到\(a\)需要满足的…
题目链接 loj#2013. 「SCOI2016」幸运数字 题解 和树上路径有管...点分治吧 把询问挂到点上 求出重心后,求出重心到每个点路径上的数的线性基 对于重心为lca的合并寻味,否则标记下传 对于每个询问,只需要暴力合并两个线性基即可 每个点只会被加到logn个线性基里,所以总复杂度为O(nlogn60 + q60*2) 然后我写了句memset(b,0,sizeof 0)...被卡了1h... 代码 #include<cstdio> #include<vector> #…
题目链接 loj#2015. 「SCOI2016」妖怪 题解 对于每一项展开 的到\(atk+\frac{dnf}{b}a + dnf + \frac{atk}{a} b\) 令$T = \frac{a}{b} $ 原式$=atk+Tdnf + dnf + \frac{atk}{T} $ 这就是那个单峰的对勾函数, 把单峰函数复合为求最值,发现也是个单峰函数(下凸壳) 三分就好了 或者维护一个最大值得下凸壳 代码 #include<cstdio> #include<algorithm&g…
题目链接 loj#2012. 「SCOI2016」背单词 题解 题面描述有点不清楚. 考虑贪心 type1的花费一定不会是优的,不考虑, 所以先把后缀填进去,对于反串建trie树, 先填父亲再填儿子,这样每个单词的后缀填完了才会被填. 不是单词结束点的点是没用的,去掉 根据直觉,填单词和dfs序有关,所以应该先填Size小的 根据贪心,先填Size小的儿子.因为将Size小的先填可以减少后面儿子的代价 而先填大的会增加代价. 代码 #include<queue> #include<cst…
「SCOI2016」美味 题目描述 一家餐厅有 \(n\) 道菜,编号 \(1 \ldots n\) ,大家对第 \(i\) 道菜的评价值为 \(a_i \:( 1 \leq i \leq n )\).有 \(m\) 位顾客,第 \(i\) 位顾客的期望值为 \(b_i\),而他的偏好值为 \(x_i\).因此,第 \(i\) 位顾客认为第 \(j\) 道菜的美味度为 \(b_i\ \text{xor} \ (a_j+x_i)\) (\(\text{xor}\) 表示异或运算). 第 \(i\)…
#2013. 「SCOI2016」幸运数字 题目描述 A 国共有 n nn 座城市,这些城市由 n−1 n - 1n−1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市的象征.一些旅行者希望游览 A 国.旅行者计划乘飞机降落在 x xx 号城市,沿着 x xx 号城市到 y yy 号城市之间那条唯一的路径游览,最终从 y yy 城市起飞离开 A 国. 在经过每一座城市时,游览者就会有机会与这座城市的幸运数字拍照,从而将这…
时限为什么这么大啊 明摆着放多$ log$的做法过啊$QAQ$ LOJ #2013 题意 有$ Q$次询问,每次询问树上一条链,点有点权,你需要选择一些链上的点使得异或和尽量大 点数$ \leq 2*10^4$ 询问数$ \leq 2*10^5$ 值域不超过$ 2^{64}$ $ Solution$ 直接点分 把询问用$ vector$挂在当前点分中心上 计算一个点的时候 递归计算它统率的子树,在每个点挂上从自己到根的线性基, 每次相当于继承父亲的线性基并插入一个数 然后将询问分成两类 不过当前…