随笔分类 -  OI

摘要:题意:给你一颗带权二叉树,求问要修改几次可以将其变成二叉搜索树?我们先跑出原树的中序遍历,那么我们问题变成如何用最少的次数将序列变成严格上升显然我们可以跑出LIS,那么n-LIS就是答案,但是这样做是有问题的,比如1,4,2,3,LIS=3但是显然我们只修改一次是不行... 阅读全文
posted @ 2017-10-03 17:20 扩展的灰(Extended_Ash) 阅读(80) 评论(0) 推荐(0)
摘要:题意:给你一颗树,每次选择一条简单路径进行染色,问最后每条边的颜色此题非常之坑,各种卡,主要是卡栈空间首先看题就写了个树剖,让后各种TLE和RE,开了O3还是不行#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#... 阅读全文
posted @ 2017-10-03 16:58 扩展的灰(Extended_Ash) 阅读(116) 评论(0) 推荐(0)
摘要:题意:给你一颗树,每次选择一条简单路径进行染色,问最后每条边的颜色此题非常之坑,各种卡,主要是卡栈空间首先看题就写了个树剖,让后各种TLE和RE,开了O3还是不行#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#... 阅读全文
posted @ 2017-10-03 16:58 扩展的灰(Extended_Ash) 阅读(101) 评论(0) 推荐(0)
摘要:有n个无聊的人,对于一条长为m(n#includeusing namespace std;int n,m,x,y,v[2000010];int s[2000010>=1) s[x]++;}int fpr(int x){ for(x+=M;x;x>>=1) if((x... 阅读全文
posted @ 2017-10-02 21:27 扩展的灰(Extended_Ash) 阅读(77) 评论(0) 推荐(0)
摘要:有n个无聊的人,对于一条长为m(n#includeusing namespace std;int n,m,x,y,v[2000010];int s[2000010>=1) s[x]++;}int fpr(int x){ for(x+=M;x;x>>=1) if((x... 阅读全文
posted @ 2017-10-02 21:27 扩展的灰(Extended_Ash) 阅读(125) 评论(0) 推荐(0)
摘要:给你一个图,求一个最大边和最小边差值最小的生成树首先我们可以枚举最小边,每次跑一个最小生成树即可但是这样会超时,我们考虑优化采用最优性剪枝,假设我们当前树中的最小边是i,当前边是j,当前最优答案是ans,那么对于所有边k使得Length(j)-Length(k)>An... 阅读全文
posted @ 2017-10-02 11:53 扩展的灰(Extended_Ash) 阅读(109) 评论(0) 推荐(0)
摘要:给你一个图,求一个最大边和最小边差值最小的生成树首先我们可以枚举最小边,每次跑一个最小生成树即可但是这样会超时,我们考虑优化采用最优性剪枝,假设我们当前树中的最小边是i,当前边是j,当前最优答案是ans,那么对于所有边k使得Length(j)-Length(k)>An... 阅读全文
posted @ 2017-10-02 11:53 扩展的灰(Extended_Ash) 阅读(104) 评论(0) 推荐(0)
摘要:题意:给你n个不同的数问你能构成多少个不同的二叉堆显然不能枚举,我们考虑用递推我们令f[i]表示以i为根的二叉堆有多少种令l,r为i的左右儿子,令size[i]为以i为根的堆的大小那么显然,f[i]=f[l]*f[r]*C(size[i]-1,size[l]),因为n... 阅读全文
posted @ 2017-10-02 11:26 扩展的灰(Extended_Ash) 阅读(99) 评论(0) 推荐(0)
摘要:题意:给你n个不同的数问你能构成多少个不同的二叉堆显然不能枚举,我们考虑用递推我们令f[i]表示以i为根的二叉堆有多少种令l,r为i的左右儿子,令size[i]为以i为根的堆的大小那么显然,f[i]=f[l]*f[r]*C(size[i]-1,size[l]),因为n... 阅读全文
posted @ 2017-10-02 11:26 扩展的灰(Extended_Ash) 阅读(142) 评论(0) 推荐(0)
摘要:给你一个序列s,求区间[l,r]使得gcd(s[l]~s[r])*(r-l+1)最大,输出这个最大值,n=2*g[i],所以整个g数组长度不会超过lg k#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#incl... 阅读全文
posted @ 2017-09-28 16:26 扩展的灰(Extended_Ash) 阅读(101) 评论(0) 推荐(0)
摘要:给你一个序列s,求区间[l,r]使得gcd(s[l]~s[r])*(r-l+1)最大,输出这个最大值,n=2*g[i],所以整个g数组长度不会超过lg k#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#incl... 阅读全文
posted @ 2017-09-28 16:26 扩展的灰(Extended_Ash) 阅读(93) 评论(0) 推荐(0)
摘要:完成斐波那契进制下的加法运算第一位为1,第二位为2,依次类推。。这里其实很简单,只是要考虑一下进位即可首先连续两位不为零直接向前进位即可但是不能解决问题,因为可能出现一个位上面的值大于1那么我们可以这样做,设连续的四位分别为:0,0,2,0那么我们可以将其变成1,0,... 阅读全文
posted @ 2017-09-27 21:33 扩展的灰(Extended_Ash) 阅读(84) 评论(0) 推荐(0)
摘要:完成斐波那契进制下的加法运算第一位为1,第二位为2,依次类推。。这里其实很简单,只是要考虑一下进位即可首先连续两位不为零直接向前进位即可但是不能解决问题,因为可能出现一个位上面的值大于1那么我们可以这样做,设连续的四位分别为:0,0,2,0那么我们可以将其变成1,0,... 阅读全文
posted @ 2017-09-27 21:33 扩展的灰(Extended_Ash) 阅读(146) 评论(0) 推荐(0)
摘要:A国有n个城市,城市之间有一些双向道路相连,并且城市两两之间有唯一路径。现在有火车在城市a,需要经过m个城市。火车按照以下规则行驶:每次行驶到还没有经过的城市中在m个城市中最靠前的。现在小A想知道火车经过这m个城市后所经过的道路数量。很显然的树剖题目嘛,加上个区间打标... 阅读全文
posted @ 2017-09-27 21:28 扩展的灰(Extended_Ash) 阅读(154) 评论(0) 推荐(0)
摘要:A国有n个城市,城市之间有一些双向道路相连,并且城市两两之间有唯一路径。现在有火车在城市a,需要经过m个城市。火车按照以下规则行驶:每次行驶到还没有经过的城市中在m个城市中最靠前的。现在小A想知道火车经过这m个城市后所经过的道路数量。很显然的树剖题目嘛,加上个区间打标... 阅读全文
posted @ 2017-09-27 21:28 扩展的灰(Extended_Ash) 阅读(119) 评论(0) 推荐(0)
摘要:有一个长度为n的数组{a1,a2,...,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。这是一个经典的主席树的题目,对于每个节点i开一颗线段树存储[1,i]区间内每个数最后出现的位置,那么查找的时候直接再树上类似平衡树找最小即可#pragma GCC o... 阅读全文
posted @ 2017-09-27 21:24 扩展的灰(Extended_Ash) 阅读(72) 评论(0) 推荐(0)
摘要:有一个长度为n的数组{a1,a2,...,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。这是一个经典的主席树的题目,对于每个节点i开一颗线段树存储[1,i]区间内每个数最后出现的位置,那么查找的时候直接再树上类似平衡树找最小即可#pragma GCC o... 阅读全文
posted @ 2017-09-27 21:24 扩展的灰(Extended_Ash) 阅读(99) 评论(0) 推荐(0)
摘要:JIH的玩具厂设立以来,发展了一张销售关系网。这张网以玩具厂为总代理(根),构成一颗树。每个节点都代表一个客户,且每个节点都有重要度ai。JIH想将这些客户划成若干类别,当然同一类的客户重要度相差太大总是不妥。所以JIH决定先进行市场调研。JIH会选择两个客户X,从X... 阅读全文
posted @ 2017-09-27 21:20 扩展的灰(Extended_Ash) 阅读(113) 评论(0) 推荐(0)
摘要:JIH的玩具厂设立以来,发展了一张销售关系网。这张网以玩具厂为总代理(根),构成一颗树。每个节点都代表一个客户,且每个节点都有重要度ai。JIH想将这些客户划成若干类别,当然同一类的客户重要度相差太大总是不妥。所以JIH决定先进行市场调研。JIH会选择两个客户X,从X... 阅读全文
posted @ 2017-09-27 21:20 扩展的灰(Extended_Ash) 阅读(90) 评论(0) 推荐(0)
摘要:Abathur采集了一系列Primal Zerg 的基因样本,这些基因构成了一个完整的进化链。为了方便,我们用A0,A1...An-1 这n 个正整数描述它们。一个基因Ax 可以进化为序列中在它之后的基因Ay。这个进化的复杂度,等于Ax | Ax+1...| Ay的值... 阅读全文
posted @ 2017-09-26 21:45 扩展的灰(Extended_Ash) 阅读(168) 评论(0) 推荐(0)