bzoj 2770 YY的Treap】的更多相关文章

Written with StackEdit. Description 志向远大的\(YY\)小朋友在学完快速排序之后决定学习平衡树,左思右想再加上\(SY\)的教唆,\(YY\)决定学习\(Treap\).友爱教教父\(SY\)如砍瓜切菜般教会了\(YY\)小朋友\(Treap\)(一种平衡树,通过对每个节点随机分配一个priority,同时保证这棵平衡树关于priority是一个小根堆以保证效率).这时候不怎么友爱的\(510\)跑了出来,他问了\(YY\)小朋友一个极不和谐的问题:怎么求\…
首先我们来看一道题  BZOJ 2301 Problem b Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数n,接下来n行每行五个整数,分别表示a.b.c.d.k Output 共n行,每行一个整数表示满足要求的数对(x,y)的个数 Sample Input 2 2 5 1 5 1 1 5 1 5 2 Sample Output 14 3 HI…
[BZOJ2770]YY的Treap Description 志向远大的YY小朋友在学完快速排序之后决定学习平衡树,左思右想再加上SY的教唆,YY决定学习Treap.友爱教教父SY如砍瓜切菜般教会了YY小朋友Treap(一种平衡树,通过对每个节点随机分配一个priority,同时保证这棵平衡树关于priority是一个小根堆以保证效率).这时候不怎么友爱的510跑了出来,他问了YY小朋友一个极不和谐的问题:怎么求Treap中两个点之间的路径长度.YY秒了之后决定把这个问题交给你来做,但只要求出树…
题目描述 志向远大的YY小朋友在学完快速排序之后决定学习平衡树,左思右想再加上SY的教唆,YY决定学习Treap.友爱教教父SY如砍瓜切菜般教会了YY小朋友Treap(一种平衡树,通过对每个节点随机分配一个priority,同时保证这棵平衡树关于priority是一个小根堆以保证效率).这时候不怎么友爱的510跑了出来,他问了YY小朋友一个极不和谐的问题:怎么求Treap中两个点之间的路径长度.YY秒了之后决定把这个问题交给你来做,但只要求出树中两点的LCA. 输入 第一行两个整数n,m 第二行…
[BZOJ 2820] YY的gcd(莫比乌斯反演+数论分块) 题面 给定N, M,求\(1\leq x\leq N, 1\leq y\leq M\)且gcd(x, y)为质数的(x, y)有多少对.q组询问 分析 我们要求的是 \[\sum_{p \in P} \sum_{i=1}^n \sum_{j=1}^m [gcd(i,j)=p]\](大写P表示质数集合) 根据\(kgcd(i,j)=gcd(ki,kj)\), \[原式=\sum_{p \in P} \sum_{i=1}^{\lfloo…
Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必然不会了,于是向你来请教……多组输入 Input 第一行一个整数T 表述数据组数接下来T行,每行两个正整数,表示N, M Output T行,每行一个整数表示第i组数据的结果 Sample Input 2 10 10 100 100 Sample Output 30 2791 HINT T = 10000 N…
我们知道二叉搜索树的中序遍历是一个已经排好序的序列,知道序列我们无法确定树的形态(因为有多种). 但是,Treap如果告诉我们它的关键字以及权值,那么就可以唯一确定树的形态(Treap的O(logn)的期望时间复杂度就是依靠一个随机堆的深度不会太深) 具体的,已知关键字序列:k1,k2,k3...kn和优先级序列:p1,p2,p3,...pn, 如果我们想要找ki的父亲,只需要找“左边第一个p比它大的和右边第一个p比它大的中,p较小的那个“ 至于lca(ki,kj),是对应的pi~pj中的最小值…
2820: YY的GCD Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1624  Solved: 853[Submit][Status][Discuss] Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必然不会了,于是向你来请教……多组输入 Input 第一行一个整数T 表述数据组数接下来T行,每行两个正…
题目大意: 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对 这里就抄一下别人的推断过程了 后面这个g(x) 算的方法就是在线性筛的时候只考虑当前的数最小因子,如果进来的最小因子不存在,相当于在之前那个数的基础上的每个mu值都多加了一个质数,那么 这些mu值就要取反,如果已经包含了这个最小因子,我这里另外进行了跟之前类似的讨论方法,在代码中写着 因为这题目数据比较大,这里求解的时候不应该线性求,因为总是有一段区间的n/i*(m/i)值…
Description 神犇YY虐完数论后给傻×kAc出了一题 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对 kAc这种傻×必然不会了,于是向你来请教…… 多组输入 Input 第一行一个整数T 表述数据组数 接下来T行,每行两个正整数,表示N, M Output T行,每行一个整数表示第i组数据的结果 Sample Input 2 10 10 100 100 Sample Output 30 2791 HINT T = 1000…
题目大意:给定一棵树,选定一棵子树中的一些点,薪水和不能超过m,求点的数量*子树根节点的领导能力的最大值 考虑对于每一个节点,我们维护一种数据结构,在当中贪心寻找薪金小的雇佣. 每一个节点暴力重建一定不行.我们考虑可并数据结构.每一个节点将子节点的信息直接合并就可以 能够用启示式合并的Treap.也能够用可并堆 今天特意去学了这玩应0.0 先写了左偏树 然后又写了下随机堆-- 后者速度上更快一些 只是建议从左偏树開始学起 总之平衡树常数各种大就是了0.0 Treap+启示式合并 #include…
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3224 Description 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3. 查询x数的排名(若有多个相同的数,因输出最小的排名)4. 查询排名为x的数5. 求x的前驱(前驱定义为小于x,且最大的数)6. 求x的后继(后继定义为大于x,且最小的数) Input 第一行为n,表示操作的个数,下…
Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种傻×必然不会了,于是向你来请教……多组输入 Input 第一行一个整数T 表述数据组数接下来T行,每行两个正整数,表示N, M Output T行,每行一个整数表示第i组数据的结果 Sample Input 2 10 10 100 100 Sample Output 30 2791 HINT T = 10000 N,…
这个题目去年就做过了,这次稍微改了一下 都是基础操作 #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<string> #include<vector> #include<stack> #include<queu…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3224 bzoj不能用time(0),看到这个博客才知道,我也RE了好几发…… #include<bits/stdc++.h> using namespace std; struct Node { int val,pri,sz,cnt; Node* ch[]; int cmp(int x) const { ; :; } void push_up() { sz=cnt+ch[]->s…
2820: YY的GCD Time Limit: 10 Sec Memory Limit: 512 MB Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必然不会了,于是向你来请教--多组输入 Input 第一行一个整数T 表述数据组数接下来T行,每行两个正整数,表示N, M Output T行,每行一个整数表示第i组数据的结果 Sample Input 2…
原本看标题还以为是treap的题,但是实际上是线段树. 求两点的LCA相当于求区间priority最小值的位置. 然后就可以离线先离散化然后建树做了. 记录的minpos是线段树上叶子结点的节点编号. 一道水题. 题目链接 //Serene #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<…
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=2820 有种方法是枚举质数然后用BZOJ2301来做但是超时了... 具体式子大概张这样: 然后下面一步比较关键,就是将T=p*d带进去 这个时候需要读者自己先手化简一下将ans变成一个与T有关的式子 然后可以再看笔者这个式子 有几个注意的地方,首先T=p*d,所以T的范围是1...n 原式中的n/(p*d)和m/(p*d)就是(n/T)*(m/T)这个好懂,而mu[d]变成mu[T/p]…
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2820 题意:给定n,m.求1<=x<=n, 1<=y<=m且Gcd(x, y)为质数的(x, y)有多少对? 思路: int prime[N],tag[N],cnt;int u[N],g[N]; void init(){    int i,j,k;    u[1]=1; g[1]=0;        for(i=2;i<N;i++)     {        if(…
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2820 题解: 莫比乌斯反演 先看看这个题:HDU 1695 GCD(本题简化版) HDU 1695 GCD:求满足x∈(1~n)和y∈(1~m),且gcd(x,y)=k的(x,y)的对数. 而这个k是给定的. 可以由莫比乌斯反演得到:(详见●HDU 1695 GCD) $ANS=\sum_{d=1}^{n}\mu(d)\times\lfloor\frac{n}{d}\rfloor\time…
4491. Primes in GCD Table Problem code: PGCD Johnny has created a table which encodes the results of some operation -- a function of two arguments. But instead of a boring multiplication table of the sort you learn by heart at prep-school, he has cre…
题目: 题解: http://hzwer.com/6142.html #include<cstdio> #include<algorithm> #define N 10000005 typedef long long ll; using namespace std; int T,n,m,cnt; bool mark[N]; int pri[N],mu[N]; ll f[N]; void getphi() { mu[]=; ;i<N;i++) { ; ;j<=cnt &a…
我们可以枚举每一个质数,那么答案就是 $\sum_{p}\sum_{d<=n}\mu(d)*\lfloor n / pd \rfloor *\lfloor m / pd \rfloor$ 直接做?TLE 考虑优化,由于看到了pd是成对出现的,令T=pd $ans=\sum_{T<=min(n,m)}\lfloor n / T \rfloor *\lfloor m / T \rfloor \sum_{p \mid T}\mu(T/p)$ 或者 $ans=\sum_{T<=min(n,m)}…
Code: #include <cstdio> #include <algorithm> #include <cstring> #include <vector> #define maxn 10000009 const long long N = 10000009 ; #define ll long long #define setIO(s) freopen(s".in","r",stdin),freopen(s&qu…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=3224 https://www.luogu.org/problemnew/show/P3369 Description 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3. 查询x数的排名(若有多个相同的数,因输出最小的排名)4. 查询排名为x的数5. 求x的前驱(前驱定义为小于x,且最大的数)6…
莫比乌斯反演真(TMD)难学.我自看了好长时间. BZOJ 2820: YY的GCD Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1384  Solved: 718 Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必然不会了,于是向你来请教……多组输入 Input 第一行一个整数T 表述数据组数接下来T行,…
OI中的莫比乌斯反演 莫比乌斯函数 想要学习莫比乌斯反演,首先要学习莫比乌斯函数. 定义 莫比乌斯函数用\(\mu(x)\)表示.如果\(x\)是\(k\)个不同质数的积,则\(\mu(x) = (-1)^k\),否则\(\mu(x) = 0\)(此时\(x\)一定是某个或某些平方数的倍数).\(x = 1\)时,相当于\(x\)由\(0\)个不同质数组成,所以\(\mu(1) = 1\). \[ \mu(x)=\left\{ \begin{array}{rcl} 1 & & {x = 1…
目录 Noip 训练指南 图论 数据结构 位运算 期望 题解 Noip 训练指南 目前完成 \(4 / 72\) 图论 [ ] 跳楼机 [ ] 墨墨的等式 [ ] 最优贸易 [ ] 泥泞的道路 [ ] BZOJ2959 [ ] BZOJ2535 数据结构 [ ] luog 2572 [SCOI2010]序列操作 [ ] luogu2184 [ ] cf620E New year tree [ ] GSS1 [ ] GSS3 [ ] GSS4 [ ] HDU6315 [ ] luogu2073 […
[BZOJ 1503]郁闷的出纳员 题面 第一行有两个非负整数n和min.n表示下面有多少条命令,min表示工资下界. 接下来的n行,每行表示一条命令.命令可以是以下四种之一: 名称 格式 作用 I命令 I_k 新建一个工资档案,初始工资为k.如果某员工的初始工资低于工资下界,他将立刻离开公司. A命令 A_k 把每位员工的工资加上k S命令 S_k 把每位员工的工资扣除k F命令 F_k 查询第k多的工资 _(下划线)表示一个空格,I命令.A命令.S命令中的k是一个非负整数,F命令中的k是一个…