09 2019 档案
摘要:https://codeforc.es/problemset/problem/1217/C 这题明显是$O(nlogn)$的做法,因为二进制的位置还是很有限的,首位连续的0我们可以用前缀和来判断。 1 #include <bits/stdc++.h> 2 using namespace std; 3
阅读全文
摘要:https://codeforc.es/problemset/problem/1216/F 有直线上n个位置,每个位置上可以花费i的代价使得联网,某些位置可以放置路由器,放路由器的代价也是i,放置了路由器以后,可以让[i-k,i+k]的范围内上网,要求每台电脑都可以上网,最少需要多少代价。 思路:
阅读全文
摘要:https://codeforc.es/problemset/problem/1216/E2 同e1,由于k最大是$10^{18}$,所以我们不能预处理,只能每次二分的时候临时去计算。 1 #include <bits/stdc++.h> 2 using namespace std; 3 #defi
阅读全文
摘要:https://codeforc.es/problemset/problem/1216/E1 求1121231234...序列里面第k个数字,k不超过10亿。 我们只要预处理一个sum数组,然后每次二分一下(其实不二分也可以) 1 #include <bits/stdc++.h> 2 using n
阅读全文
摘要:https://codeforc.es/problemset/problem/1216/D 贪心: 找出最大的a[i],令为t,即假设这个t就是原来的x 然后b[i]=t-a[i]; b[i]表示每个缺了的数量。 最后求一个所有b[i]的最大公约数。 答案就是累加b[i]/gcd 1 #includ
阅读全文
摘要:https://codeforc.es/problemset/problem/1216/C 判断一个矩形是否被另外两个矩形完全覆盖,这题是我是用离散化的方法来做的。 1 #include<bits/stdc++.h> 2 using namespace std; 3 int x[7],y[7],tx
阅读全文
摘要:https://codeforc.es/problemset/problem/1216/B 这题还是贪心,直接排序即可 。 1 #include<bits/stdc++.h> 2 using namespace std; 3 int const N=1000+10; 4 int a[N],n,b[N
阅读全文
摘要:https://codeforc.es/problemset/problem/1216/A 本题直接$O(n)$贪心。 1 #include<bits/stdc++.h> 2 using namespace std; 3 int const N=200000+10; 4 char s[N]; 5 i
阅读全文
摘要:这是一道被离线爆艹的模板题。 你要维护一张无向简单图。你被要求加入删除一条边及查询两个点是否连通。 0:加入一条边。保证它不存在。 1:删除一条边。保证它存在。 2:查询两个点是否联通。 本题解法: 1.lct 2.对操作进行分块,然后维护并查集(需要回到过去)。 时间复杂度$O(m*sqrt(m)
阅读全文
摘要:http://codeforces.com/problemset/problem/1217/E 这题的思路是: 1.首先不能有进位 2.由于要求和最小,所以我们只要选择两个数就可以了。 1 #include<bits/stdc++.h> 2 using namespace std; 3 int co
阅读全文
摘要:http://codeforces.com/problemset/problem/1217/D 这题的思路是构造,我们可以知道颜色最多只需要两种,然后按照dfs的顺序。 1 #include<bits/stdc++.h> 2 using namespace std; 3 int const N=50
阅读全文
摘要:这是一个好题,感觉是noi2018里面最好的题目,考验打表能力,动态规划和对卡特兰数的理解。 1 #include<bits/stdc++.h> 2 using namespace std; 3 int const N=1000000+10; 4 int const mod=998244353; 5
阅读全文
摘要:1856: [Scoi2010]字符串 Description lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数不能少于0的个数。现在lxhgww想要知道满足要求的字符串共有多少个,聪明的程序员们,你们能
阅读全文
摘要:题目链接 题目大意:有n个地方需要通讯,每个地方可以用两种基站里面的其中一种,有p种基站, 每种基站能够接收的频率在l到r范围内,最大的频率是M,有m对基站会相互干扰,所以不能同时选。 要求一种频率,使得每个地方都能通讯。 输出使用的频率和哪几个基站。 题目分析: 这题明显可以用2sat来做,但是我
阅读全文
摘要:https://blog.csdn.net/hwzzyr/article/details/81190442
阅读全文
摘要:Description 给你N个点的无向图 (1 <= N <= 15,000),记为:1…N。 图中有M条边 (1 <= M <= 30,000) ,第j条边的长度为: d_j ( 1 < = d_j < = 1,000,000,000). 现在有 K个询问 (1 < = K < = 20,000
阅读全文
摘要:3545: [ONTAK2010]Peaks Description 在Bytemountains有N座山峰,每座山峰有他的高度h_i。有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走,现在有Q组询问,每组询问询问从点v开始只经过困难值小于等于x的路径所能到达的山峰
阅读全文
摘要:3551: [ONTAK2010]Peaks加强版 Description 【题目描述】同3545 【题目描述】同3545 Input 第一行三个数N,M,Q。 第二行N个数,第i个数为h_i 接下来M行,每行3个数a b c,表示从a到b有一条困难值为c的双向路径。 接下来Q行,每行三个数v x
阅读全文
摘要:题目描述 本题的故事发生在魔力之都,在这里我们将为你介绍一些必要的设定。 魔力之都可以抽象成一个 n 个节点、m 条边的无向连通图(节点的编号从 1 至 n)。我们依次用 l,a 描述一条边的长度、海拔。 作为季风气候的代表城市,魔力之都时常有雨水相伴,因此道路积水总是不可避免 的。由于整个城市的排
阅读全文
摘要:After finishing her tour around the Earth, CYLL is now planning a universal travel sites development project. After a careful investigation, she has a
阅读全文
摘要:It is vitally important to have all the cities connected by highways in a war. If a city is conquered by the enemy, all the highways from/toward that
阅读全文
摘要:As the manager of your company, you have to carefully consider, for each project, the time taken to finish it, the deadline, and the profit you can ga
阅读全文
摘要:Eva would like to make a string of beads with her favorite colors so she went to a small shop to buy some beads. There were many colorful strings of b
阅读全文
摘要:Programmers often have a preference among program constructs. For example, some may prefer if(0==a), while others may prefer if(!a). Analyzing such pa
阅读全文
摘要:裸题: 扩展欧拉定理的应用 1 #include<bits/stdc++.h> 2 using namespace std; 3 int ph(int x){ 4 int ret=x; 5 for(int i=2;i*i<=x;i++) 6 if(x%i==0){ 7 ret=ret/i*(i-1)
阅读全文
摘要:Description 给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 Input 给出一个数字N,代表有N个点.N<=1000000 下面N-1条边. 给出一个数字N,代表有N个点.N<=100
阅读全文
摘要:Description Input Output 输出test行,每行一个整数,表示答案。 输出test行,每行一个整数,表示答案。 Sample Input 1 2 2 2 3 1 Sample Output 3 HINT Test<=50 Pi<=10^5,1<=Q1<=10^9 1 #incl
阅读全文
摘要:Description Informatikverbindetdichundmich. 信息将你我连结。B君希望以维护一个长度为n的数组,这个数组的下标为从1到n的正整数。一共有m个操作,可以 分为两种:0 l r表示将第l个到第r个数(al,al+1,...,ar)中的每一个数ai替换为c^ai,
阅读全文
摘要:根据一些书上的记载,上帝的一次失败的创世经历是这样的: 第一天, 上帝创造了一个世界的基本元素,称做“元”。 第二天, 上帝创造了一个新的元素,称作“α”。“α”被定义为“元”构成的集合。容易发现,一共有两种不同的“α”。 第三天, 上帝又创造了一个新的元素,称作“β”。“β”被定义为“α”构成的集
阅读全文
摘要:题目背景 这是一道模板题。 这是一道模板题。 题目描述 您需要写一种数据结构,来维护一个序列,其中需要提供以下操作(对于各个以往的历史版本): 在第 pp 个数后插入数 xx 。 删除第 pp 个数。 翻转区间 [l,r][l,r],例如原序列是 \{5,4,3,2,1\}{5,4,3,2,1},翻
阅读全文
摘要:题目背景 本题为题目 普通平衡树 的可持久化加强版。 数据已经经过强化 感谢@Kelin 提供的一组hack数据 本题为题目 普通平衡树 的可持久化加强版。 数据已经经过强化 感谢@Kelin 提供的一组hack数据 题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操
阅读全文
摘要:Description 小y有n个妹子,编号分别为1, 2,... n。为了更好管理这些妹子,小y想把他们分成若干组~ 在开始的开始(我们记作分组方案0)中,每个妹子各成一组。 每次小y会选择一个已有的分组方案i,挑出其中两个不在同组的妹子x, y,将她们所在的组合并。 我们将第j次操作得到的分组方
阅读全文
摘要:Description Description:自从zkysb出了可持久化并查集后……hzwer:乱写能AC,暴力踩标程KuribohG:我不路径压缩就过了!ndsf:暴力就可以轻松虐!zky:……n个集合 m个操作操作:1 a b 合并a,b所在集合2 k 回到第k次操作之后的状态(查询算作操作)
阅读全文
摘要:Description n个集合 m个操作操作:1 a b 合并a,b所在集合2 k 回到第k次操作之后的状态(查询算作操作)3 a b 询问a,b是否属于同一集合,是则输出1否则输出0 0<n,m<=2*10^4 n个集合 m个操作操作:1 a b 合并a,b所在集合2 k 回到第k次操作之后的状
阅读全文
摘要:这个题目我是建立一个操作树,根据时间的关系。 合并的过程还是用并查集来实现(按秩合并),然后关于询问,我是这么处理的,对于每个联通块,我建立一个权值分块,即cnt数组 由于内存限制,所以我权值的块的大小是1200,块数是最多90,每次递归的时候,就增加cnt,递归回来的时候,就减去cnt,这样就在操
阅读全文
摘要:这题我是维护一个操作树,然后在操作树上进行可持久化操作,用倍增每次寻找答案,时间复杂度$O(TlogT)$。 加上读入优化,轻松卡过,最快可以做到$O(T)$,%%% 1 #include<bits/stdc++.h> 2 using namespace std; 3 int const N=100
阅读全文
摘要:我们对最长不下降子序的单调序列进行维护,用可持久化平衡树来维护。 (ps我写的好像是主席树) 1 #include<bits/stdc++.h> 2 using namespace std; 3 int const N=500000+10; 4 int const M=N*20; 5 int rt[
阅读全文
摘要:https://loj.ac/problem/120 这是一道模板题。 您需要维护一个序列,其中需要提供以下操作: 第0个版本为空序列。修改操作不会影响被修改的版本,而总是产生一个新版本。 fhq treap 注意split和merge的时候要新建节点。 1 #include<bits/stdc++
阅读全文
摘要:Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区
阅读全文
摘要:摘自: https://www.cnblogs.com/mjtcn/p/8028926.html %大神 正文 FHQ treap 的整理 treap = tree + heap,即同时满足二叉搜索树和堆的性质。 为了使树尽可能的保证两边的大小平衡,所以有一个key值,使他满足堆得性质,来维护树的平
阅读全文
摘要:Description 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3. 查询x数的排名(若有多个相同的数,因输出最小的排名)4. 查询排名为x的数5. 求x的前驱(前驱定义为小于x,且最大的数)6. 求x
阅读全文