「SCOI2010」幸运数字】的更多相关文章

传送门 Luogu 解题思路 首先构造出所有的幸运数字. 然后考虑一个幸运数字会产生多少贡献. 对于一个数 \(x\),它在区间 \([l,r]\) 内的倍数的个数为 \(\lfloor \frac{r}{x} \rfloor - \lceil \frac{l}{x} \rceil + 1\). 那么我们就只需要对每一个幸运数字算一次贡献即可.....??? 然而答案是否定的. 因为同一个数可能是多个幸运数字的倍数,所以我们就需要容斥这些幸运数字的lcm,同理在之前要去掉是其他幸运数字倍数的幸运…
题目链接 loj#2013. 「SCOI2016」幸运数字 题解 和树上路径有管...点分治吧 把询问挂到点上 求出重心后,求出重心到每个点路径上的数的线性基 对于重心为lca的合并寻味,否则标记下传 对于每个询问,只需要暴力合并两个线性基即可 每个点只会被加到logn个线性基里,所以总复杂度为O(nlogn60 + q60*2) 然后我写了句memset(b,0,sizeof 0)...被卡了1h... 代码 #include<cstdio> #include<vector> #…
「SCOI2016」幸运数字 思路: 线性基: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 20005 #define ll long long struct DataType { ll d[],p[]; ll cnt; DataType() { memset(d,,sizeof(d)); memset(p,,sizeof(p)); cnt=; } bool insert(long long val) { ;i&…
#2013. 「SCOI2016」幸运数字 题目描述 A 国共有 n nn 座城市,这些城市由 n−1 n - 1n−1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市的象征.一些旅行者希望游览 A 国.旅行者计划乘飞机降落在 x xx 号城市,沿着 x xx 号城市到 y yy 号城市之间那条唯一的路径游览,最终从 y yy 城市起飞离开 A 国. 在经过每一座城市时,游览者就会有机会与这座城市的幸运数字拍照,从而将这…
[bzoj数据下载地址]不要谢我 先讲一下窝是怎么错的... \(MLE\)是因为数组开小了.. 看到异或和最大,那么就会想到用线性基. 如果不会线性基的可以参考一下我的学习笔记:「线性基」学习笔记and乱口胡总结 但是这一道题目需要合并线性基. 如何合并线性基? 不需要什么花里胡哨的操作,直接暴力插入就可以了. void merge(xxj &x, xxj y) { for (int i = BIT; ~i; i --) if (y.p[i]) x.ins(y.p[i]); } 代码中的\(x…
时限为什么这么大啊 明摆着放多$ log$的做法过啊$QAQ$ LOJ #2013 题意 有$ Q$次询问,每次询问树上一条链,点有点权,你需要选择一些链上的点使得异或和尽量大 点数$ \leq 2*10^4$ 询问数$ \leq 2*10^5$ 值域不超过$ 2^{64}$ $ Solution$ 直接点分 把询问用$ vector$挂在当前点分中心上 计算一个点的时候 递归计算它统率的子树,在每个点挂上从自己到根的线性基, 每次相当于继承父亲的线性基并插入一个数 然后将询问分成两类 不过当前…
题解 最大异或和,明显是个线性基 然而还有那么多路径--那就树分治,反正点数看起来很少,就是为了让人乘上一个60的常数嘛 把一个树的点分树记录下来,然后看看询问的两个点彼此相同的最后一个父亲是谁,把这个询问挂在这个点上,计算就暴力搜索这棵树里每一个节点到重心的线性基就行了,最后再用60的常数把两个线性基合起来 代码 #include <bits/stdc++.h> //#define ivorysi #define MAXN 20005 #define MAXQ 200005 typedef…
点分治+线性基 (为了这六个字窝调了一下午一晚上QAQ #include <iostream> #include <cstring> #include <cstdio> #include <vector> #include <cassert> using namespace std; typedef long long ll; int n, uu, vv, m, hea[20005], cnt, sze, rot, rnd[20005], siz…
Description 在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认 为,于是他定义自己的"幸运号码"是十进制表示中只包含数字6和8的那些号码,比如68,666,888都是"幸运号码"!但是这种"幸运号码"总是太少 了,比如在[1,100]的区间内就只有6个(6,8,66,68,86,88),于是他又定义了一种"近似幸运号码".lxhgww规定,凡是"幸运号 码"的倍数都是"近似幸…
python数字图像处理(18):高级形态学处理   形态学处理,除了最基本的膨胀.腐蚀.开/闭运算.黑/白帽处理外,还有一些更高级的运用,如凸包,连通区域标记,删除小块区域等. 1.凸包 凸包是指一个凸多边形,这个凸多边形将图片中所有的白色像素点都包含在内. 函数为: skimage.morphology.convex_hull_image(image) 输入为二值图像,输出一个逻辑二值图像.在凸包内的点为True, 否则为False 例: import matplotlib.pyplot a…