
题解
文章平均质量分 63
zsyzClb
这个作者很懒,什么都没留下…
展开
-
LCT学习笔记(qtree4-7)
洛谷P4115 Qtree4大意:修改颜色,求最远的两个黑点的距离。lct有一个性质,就是对于一个splay辅助树来说,某个点的子树是现实的树上的连续的一段。很明显,首先要边权下放到叶子结点,col表示这个点的颜色,如果是黑色就是0,不是黑色就是负无穷而根据dp的思想,维护lmax表示一段路径到达这个点子树所在链的最下面一个点的最大值,rmax表示一段路径到达这个点子树所在链的最上面一个点的最大值,dat表示最长的路径,sum表示整个子树的边权和。然后我们用两个multiset分别来维护虚儿子的r原创 2020-12-19 17:14:24 · 230 阅读 · 1 评论 -
Codeforces 1452E Two Editorials
看到数据范围可以想到要用来搞。(时限有2s所以可以再加一个log)这道题的难点在于怎么判断一个人听那一个出题人,不妨画一个图。l1,r1,l2,r2表示选的两段区间(我们令l1<=l2)x,y表示当前的人有兴趣的区间如果y<=r1,那么就一定选第一个人如果x>=l2或者x>r1,那么一定选择第二个人剩下的情况(如图所示)需要列一下公式,我们尝试比较没有选的部分的大小,从而求出是选择听哪一个出题热人,选择第二个出题人,当且仅当y−r1>=l2−xy-r_1>=l原创 2020-12-02 14:48:39 · 198 阅读 · 0 评论 -
Educational Codeforces Round 99 A-G
A这个公式求的是末尾的0不同的个数就是位数#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#include <vector>using namespace std;void solve() { char s[110]; scanf("%s", s + 1); int ans =原创 2020-12-02 09:59:58 · 159 阅读 · 0 评论 -
[NOIP2015]运输计划
让我来提供一个与众不同的贪心做法,不需要任何数据结构,O(nlogn)删掉一条边的贡献就是max(不包含这条边的路径的最大值,包含这条边的路径的最大值-这条边的长度)所以我们只需要先将路径长度从大到小排一次序,然后找到前i个路径的交际中的最大边,统计一下即可#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>原创 2020-11-28 07:36:09 · 173 阅读 · 0 评论 -
[NOIP2017]队列
这题很简单,只是码量大。用平衡树维护每一行的前m-1列,用树状数组维护第m列就行了。用上树状数组的一个优美性质就能优化到nlogn#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#define ls tr[x].son[0]#define rs tr[x].son[1]#define LL long原创 2020-11-26 19:06:10 · 191 阅读 · 0 评论 -
loj2018. 「AHOI / HNOI2017」单旋
因为不能直接打spaly,所以我们先手动模拟一次,找找性质。题目说的很明白,旋转的必须是最小的或者最大的。举最小的为例,它旋转到根节点并不会破坏原来的结构,而是将自己的右儿子变为父亲的左儿子,然后认根节点为右儿子,自己成为根节点,那么这个旋转只需要O(1)。对于插入操作,直觉告诉我会和前驱后继有关,后面发现真的是找前驱后继中深度大的那个点认父亲。删除的话就是旋转以后直接删除。还有维护深度,我们发现每次修改都是区间修改,所以对关键值离散化以后用线段树处理(不用管没出现的值),前驱后继就用stl的set原创 2020-10-14 10:33:33 · 192 阅读 · 0 评论 -
Loj2014「SCOI2016」萌萌哒
很容易想到暴力的做法,每次把每个询问相对的点并查集合并。#include <cstdio>#include <cstring>#define LL long longusing namespace std;const int N = 1e5 + 10;const LL P = 1e9 + 7; int fa[N];int findfa(int x) { return x == fa[x] ? x : fa[x] = findfa(fa[x]); }LL pow原创 2020-10-12 16:18:13 · 161 阅读 · 0 评论 -
loj2013「SCOI2016」幸运数字
求最大异或和肯定是要用线性基的,在树上的话就要加一个倍增并且要合并线性基,不过这样的时间复杂度O(q∗logn∗612)O(q*\log n*61^2)O(q∗logn∗612),还好常数比较小而且跑不满就卡过去了。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#define LL long long原创 2020-10-12 09:46:51 · 172 阅读 · 0 评论 -
LOJ2012「SCOI2016」背单词
一个很好想的贪心题(但居然花了我一个晚上的时间AC)。1.我们肯定不能让一个字符串的后缀在它的后面。因为没有相同的字符串,所以不用考虑这种情况。2.如果a是b的后缀,b是c的后缀,那么我们一定会让让a在b的前面,b在c的前面(不一定连在一起)。3.举个例子,a,aa,aaa,b,bb,我们把a,aa,aaa放在一起,b,bb放在一起,很明显,b,bb要放在a,aa,aaa的前面(你得假设第0个字符串是空,为任何一个字符串的后缀)。ba,baa,baaa,bb,bbb,bbbb同理。所以给每个字符串一原创 2020-10-11 21:37:51 · 134 阅读 · 0 评论 -
TYVJ1424占卜DIY(最简单易懂)
【题目描述】达达学会了使用扑克DIY占卜。方法如下:一副去掉大小王的扑克共52张,打乱后均分为13堆,编号1~13,每堆4张,其中第13堆称作“生命牌”,也就是说你有4条命。这里边,4张K被称作“死神”。初始状态下,所有的牌背面朝上扣下。流程如下:1.抽取生命牌中的最上面一张(第一张)。2.把这张牌翻开,正面朝上,放到牌上的数字所对应编号的堆的最上边。(例如抽到2,正面朝上放到第2堆牌最上面,又比如抽到J,放到第11堆牌最上边,注意是正面朝上放)3.从刚放了牌的那一堆最底下(最后一张)抽取原创 2020-07-27 09:51:35 · 467 阅读 · 0 评论 -
Loj2009「SCOI2015」小凸玩密室
仔细观察以后可以发现,关于电灯有以下几个性质:1根节点不是1,也就是每个点都可能为根节点,这就意味着不能用O(N^2)的做法,只能考虑O(NlogN)或者O(N)2所有点亮的灯都是连在一起的3对于一个已经点亮的点,它的左右子树只有3种可能:没有染色,已经全部染完,正在染色4当你准备将一个点染色的时候,上一个染色的点可能是它的父亲或者它父亲拥有的另外一棵子树的叶子节点根据这几个性质,可以想到dp状态:dp[i][j][0]表示将第i个点的子树全部点亮并且上去点亮i的第j个祖先所需的最小费用原创 2020-06-13 11:54:36 · 210 阅读 · 0 评论 -
bzoj2791 Rendevous
花了差不多两个钟才AC这道题,所以写了下题解这道题很明显,是求在基环树上求lca。对于基环树的题,我们都是先将环去掉,然后在去掉环以后每一棵树上面搜索一次,查询的时候再将环插进去就好了。特别地,要注意题目的限定条件。参考代码#include <cstdio>#include <cstring>#include <iostream>#i...原创 2020-01-13 13:19:28 · 272 阅读 · 0 评论 -
[NOIP提高组2016]天天爱跑步
这一道题是一道典型的由部分分推正解的题。对于子链,所有si=1,所有ti=1的情况,经过思考,会发现正解只需要将所有的路径拆成两条链,两种情况分别跑一次,把结果加起来即可。#include<cstdio>#include<cstring>#include<iostream>#include<vector>#define il i...原创 2019-12-25 13:15:05 · 283 阅读 · 1 评论 -
高斯消元与线性空间
高斯消元定义:高斯消元其实就是一种能够在线性时间解出N元一次方程组的算法。实现:先将线性方程组转化为一个以每一项系数构成的矩阵,在加上每个方程右侧的常数,可以写成N∗(N+1)N*(N+1)N∗(N+1)的”增广矩阵“。例如:{x1+2x2−x3=−62x1+x2−3x3=−9−x1−x2+2x3=7⇒∣12−1−621−3−9−1−127∣\begin{cases}x_1+2x_2...原创 2019-11-23 15:15:12 · 438 阅读 · 2 评论 -
乘法逆元及其应用(一)
最近学会了乘法逆元,有做了几道题,才发现乘法逆元在有除法又要取模的题目中非常有用。乘法逆元1.定义若整数b,mb,mb,m互质,并且b∣ab|ab∣a,则存在一个整数xxx,使得a/b≡a∗x(modm)a/b \equiv a*x \pmod{m}a/b≡a∗x(modm)。称xxx为bbb的模m乘法逆元,记为b−1(modm)b^{-1}\pmod{m}b−1(modm)。2.证明因...原创 2019-11-22 13:46:47 · 345 阅读 · 0 评论 -
NOIP 2013 提高组初赛 青蛙跳荷叶
现有一只青蛙,初始时在 n 号荷叶上。当它某一时刻在 k 号荷叶上时,下一时刻将等概 率地随机跳到 1, 2, …, k 号荷叶之一上,直至跳到 1 号荷叶为止。当 n = 2 时,平均一共 跳 2 次;当 n = 3 时,平均一共跳 2.5 次。则当 n = 5 时,平均一共跳_________次。设f(x)为x跳到1的概率可得:f(x)=(f(1)+1+f(2)+1+...+f(x...原创 2019-10-16 20:39:26 · 2137 阅读 · 0 评论 -
[POI2008]BLO-Blockade
题意翻译在Byteotia有n个城镇。 一些城镇之间由无向边连接。 在城镇外没有十字路口,尽管可能有桥,隧道或者高架公路(反正不考虑这些)。每两个城镇之间至多只有一条直接连接的道路。人们可以从任意一个城镇直接或间接到达另一个城镇。 每个城镇都有一个公民,他们被孤独所困扰。事实证明,每个公民都想拜访其他所有公民一次(在主人所在的城镇)。所以,一共会有n*(n-1)次拜访。不幸的是,一个程序员...原创 2018-12-21 20:27:57 · 498 阅读 · 0 评论 -
洛谷 P2422 良好的感觉
题目描述kkk做了一个人体感觉分析器。每一天,人都有一个感受值Ai,Ai越大,表示人感觉越舒适。在一段时间[i, j]内,人的舒适程度定义为[i, j]中最不舒服的那一天的感受值 * [i, j]中每一天感受值的和。现在给出kkk在连续N天中的感受值,请问,在哪一段时间,kkk感觉最舒适?输入输出格式输入格式: 第一行为N,代表数据记录的天数第二行N个整数,代表每一天的感受...原创 2019-01-03 13:06:20 · 344 阅读 · 0 评论 -
洛谷P2545 [AHOI2004]实验基地
题目描述 输入输出格式输入格式: 第一行有一个整数N(3<N<2000),表示登陆地带的大小是2×N。随后的两行每一行有N个整数(其绝对值不超过10^6),表示对应的矩形土地的适用度评估值,各个整数之间用一个空格隔开。 输出格式: 只有一行输出,为整数M,即所确定的实验基地的适用度。 输入输出样例输入样例#1: 4-1 2 -...原创 2018-12-18 12:56:21 · 265 阅读 · 0 评论 -
[SCOI2006]城堡
题目描述为了救出心爱的公主Julie,Billy来到了恶魔的城堡。经过了三天三夜的浴血奋战,魔王殿已近在咫尺。这是一条狭长的通道,Billy在位置0,而魔王殿在位置n+1。在每个单位时间,Billy可以往左或往右移动一个单位,或者原地不动。每个格子的上方都有石头周期性的往下砸,格子i的周期为ci。对于格子i上方的石头,可以用ci个整数来描述:h[1], h[2], …, h[ci],表示在...原创 2018-12-28 13:15:54 · 295 阅读 · 0 评论 -
[TJOI2007]线段
题目描述在一个 n*n 的平面上,在每一行中有一条线段,第 i 行的线段的左端点是(i, L(i)),右端点是(i, R(i)),其中 1 ≤ L(i) ≤ R(i) ≤ n。你从(1, 1)点出发,要求沿途走过所有的线段,最终到达(n, n)点,且所走的路程长度要尽量短。更具体一些说,你在任何时候只能选择向下走一步(行数增加 1)、向左走一步(列数减少 1)或是向右走一步(列数增加 ...原创 2018-12-11 13:36:30 · 432 阅读 · 0 评论 -
[HNOI/AHOI2018]道路
题目就去洛谷看把 这一道题是一道很明显的树形dp,其实也不算很难我们在dfs中定义root , x , y root 表示当前的点 , x表示没翻新的公路的条数,y表示没翻新的铁路的条数并且定义一个 dp[][][]记录三个量记住:千万不能memset,千万不能memset,千万不能memset,否则你会死的难看于是所以的dp就被赋值为0,只要判断值不为...原创 2018-12-22 10:37:05 · 294 阅读 · 0 评论 -
[AHOI2008]Y型项链
题目描述欢乐岛上众多新奇的游乐项目让小可可他们玩的非常开心。现在他们正在玩比赛串项链的游戏,谁串的最快就能得到优厚的奖品。这可不是普通的项链,而是一种Y型项链,项链的最中间有一颗大珍珠作为结合点,从大珍珠上连出来3条由各种宝石串起来的链子。比赛的规则是这样的:每次可以从三条链子中某一条的一端取下来一个宝石,或者安上去一个宝石,称为一次操作,经过若干次操作,最终使得三条链子完全相同。想要...原创 2018-12-22 09:47:48 · 1045 阅读 · 0 评论 -
[TJOI2013]黄金矿工
题目描述小A最近迷上了在上课时玩《黄金矿工》这款游戏。为了避免被老师发现,他必须小心翼翼,因此他总是输。在输掉自己所有的金币后,他向你求助。每个黄金可以看做一个点(没有体积)。现在给出你N个黄金的坐标,挖到它们所需要的时间以及它们的价值。有些黄金在同一条直线上,这时候你必须按顺序挖。你可以瞬间把钩子转到任意角度。请你帮助小A算出在时间T内他最多可以得到多少价值的金子。输入输出格式输入格...原创 2019-01-03 13:17:10 · 695 阅读 · 0 评论 -
洛谷P4047 [JSOI2010]部落划分
N个野人居住的地点(可以看作是平面上的坐标)。我们知道,同一个部落的野人总是生活在附近。我们把两个部落的距离,定义为部落中距离最近的那两个居住点的距离。聪聪还获得了一个有意义的信息——这些野人总共被分为了K个部落!这真是个好消息。聪聪希望从这些信息里挖掘出所有部落的详细信息。他正在尝试这样一种算法:对于任意一种部落划分的方法,都能够求出两个部落之间的距离,聪聪希望求出一种部落划分的方法,使靠得...原创 2019-01-24 14:33:35 · 355 阅读 · 0 评论 -
P4289 [HAOI2008]移动玩具
题目描述在一个4*4的方框内摆放了若干个相同的玩具,某人想将这些玩具重新摆放成为他心中理想的状态,规定移动时只能将玩具向上下左右四个方向移动,并且移动的位置不能有玩具,请你用最少的移动次数将初始的玩具状态移动到某人心中的目标状态。输入输出格式输入格式: 前4行表示玩具的初始状态,每行4个数字1或0,1表示方格中放置了玩具,0表示没有放置玩具。接着是一个空行。接下来4行表示玩具的...原创 2019-01-19 14:51:46 · 506 阅读 · 0 评论 -
NOIP2013货车运输
题目描述【题意】有n个点,编号从 1 到 n,有 m 条双向边。每一条边都有权值。现在有 q 个询问,在x到y的所有路径中,选出一条路径,使得这条路径上面边权的最小值尽量大。【输入描述】第一行有两个整数 n,m。接下来 m 行每行 3 个整数 x、y、z,表示一条权值为z的无向边。接下来一行有一个整数 q。接下来 q 行,每行两个整数 x、y(x 不等于 y)。【输出描述】输...原创 2019-01-25 12:47:34 · 455 阅读 · 0 评论 -
Caioj1149 牛场的婚礼
题目描述【题目】一个牛场有n只公牛,同时有n只母牛。每只公牛都有自己喜欢的若干母牛。(一定存在完备匹配)求每只公牛可以选择哪些母牛可以让剩下的每只公牛依旧能够选择到自己喜欢的一只母牛。【输入格式】第一行一个整数n(1 <= n <= 2000).下来n行,每行第一个数ki表示第i只公牛喜欢的母牛数目,下来ki只母牛的编号。所有ki的总和不超过 200000。【输出...原创 2019-01-26 17:20:48 · 408 阅读 · 0 评论 -
caioj 1431:Qtree2
题目描述【题目】有N个点,编号为1到N,有N-1条边,每条边都有长度。有若干个操作,操作分为两种第一种:DIST u,v 表示询问u到v的距离。第二种:KTH u,v,k 表示询问从u到v路径上第k个点的编号。【输入格式】输入一个整数T,表示有T组数据(1<=T<=25)对于每组数据,第一行输入一个整数N,表示有N个点(1<=N<=10000)下来...原创 2019-01-29 14:27:28 · 247 阅读 · 0 评论 -
SDOI2006仓库管理员的烦恼
题目描述仓库管理员M最近一直很烦恼,因为他的上司给了他一个艰难的任务:让他尽快想出一种合理的方案,把公司的仓库整理好。已知公司共有n个仓库和n种货物,由于公司进货时没能很好的归好类,使得大部分的仓库里面同时装有多种货物,这就给搬运工作人员搬运货物时带来了很多的麻烦。仓库管理员M的任务就是设计一种合理的方案,把仓库里面的货物重新整理,把相同的货物放到同一个仓库,以便于日后的管理,在整理过...原创 2019-03-08 12:46:21 · 416 阅读 · 0 评论 -
斜率优化详解(二)(刷题篇)
上一期刚刚讲完斜率优化的原理,这一期我们就开始做题吧(题目属于caioj)因为我个人比较喜欢图像法,所以这些题目都是用图像法做的(这不是废话吗)【问题描述】有N个工厂,由高到底分布在一座山上。工厂1在山顶,工厂N在山脚。L公司一般把产品直接堆放在露天,以节省费用。突然有一天,被告知三天之后将有一场暴雨,于是公司决定紧急在某些工厂建立一些仓库以免产品被淋坏。对于没有建立仓库的工厂,其...原创 2019-06-25 13:34:20 · 294 阅读 · 0 评论 -
XOR和路径
做《算法进阶》时,我遇到了我从未涉及到的概率问题研究了很久,终于学会概率dp和期望值看一下这道题【题意】给定一个无向连通图,其节点编号为1到N,其边的权值为非负整数。试求出一条从1号节点都N号节点的路径,使得该路径上经过的边的权值的XOR和最大。该路径可以重复经过某些节点或边,当一条边在路径中出现多次时,其权值在计算XOR和时也应被重复计算相应多的次数。直接求解上述问题比较困难,于是...原创 2019-10-02 22:06:05 · 367 阅读 · 0 评论 -
1999NOIp提高组--邮票面值设计
题目描述给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤15)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值MAX,使在11至MAX之间的每一个邮资值都能得到。例如,N=3,K=2,如果面值分别为1分、4分,则在1分~6分之间的每一个邮资值都能得到(当然还有8分、9分和12分);如果面值分别为1分、3分,则在1分~7分之间的每一个邮资值都能得到。可...原创 2018-11-16 19:30:35 · 888 阅读 · 0 评论 -
[TJOI2011]构造矩阵
题目描述要求构造一个n*m的01矩阵,满足每一行中1的个数分别为r[1],r[2]……r[n],每一列中1的个数为c[1],c[2]……c[m]。在此基础上要求字典序最小。两个矩阵比较字典序时先比较第一行,第一行相等再比较第二行……输入输出格式输入格式: 第一行输入两个整数n,m第二行输入n个整数r[1],r[2]……r[n]第三行输入m个整数c[1],c[2]……...原创 2018-12-16 16:06:15 · 1156 阅读 · 0 评论 -
「一本通 3.6 练习 3」旅游航道
题目描述SGOI 旅游局在 SG-III 星团开设了旅游业务,每天有数以万计的地球人来这里观光,包括联合国秘书长,各国总统和 SGOI 总局局长等。旅游线路四通八达,每天都有众多的载客太空飞船在星团的星球之间来往穿梭,他们保证了任意两个星球之间总是可以通过航道到达。但是,最近由于财政出现了困难,一些太空飞船也过于古老,又没有足够的资金购买新产品,所有只好取消一些航道。如果某一条航道的删除使...原创 2018-12-21 13:33:45 · 684 阅读 · 0 评论 -
洛谷P2190 小Z的车厢
题目描述小Z的家乡有一列在环形铁轨上行驶的火车,共停靠 n 个站(1 号站到 n 号站顺时针排列)。众所周知,春运是一件非常可怕的事情。不幸的是,小Z是铁路公司的员工,现在他收到了 m 条除夕凌晨的订票申请,每个申请 (x,y,z) 表示有 z 个人要从 x 号站顺时针坐到 y 号站,同时,当火车停靠到x号站时,所有要在x站上车的人都会上车,所有要在x号站下车的人都会下车。由于始发站不...原创 2018-11-24 09:53:35 · 535 阅读 · 0 评论 -
[USACO10JAN]奶酪塔Cheese Towers
题目描述FJ要建一个奶酪塔,高度最大为T。他有N种奶酪(每种奶酪无限个)。第i种奶酪的高度为Hi(一定是5的倍数),价值为Vi。一块高度Hi>=K的奶酪被称为大奶酪,一个奶酪如果在它上方有大奶酪(如果有多块就只算一次),它的高度Hi就会变成原来的4/5.。FJ想让他的奶酪塔价值和最大。请你求出这个最大值。输入格式:第一行三个数N,T,K,意义如上所述。 接下来n行,每行两个数V_...原创 2018-11-24 09:15:00 · 535 阅读 · 0 评论 -
[JLOI2011]不重复数字
题目描述给出N个数,要求把其中重复的去掉,只保留第一次出现的数。例如,给出的数为1 2 18 3 3 19 2 3 6 5 4,其中2和3有重复,去除后的结果为1 2 18 3 19 6 5 4。输入输出格式输入格式: 输入第一行为正整数T,表示有T组数据。接下来每组数据包括两行,第一行为正整数N,表示有N个数。第二行为要去重的N个正整数。 输出格式: ...原创 2018-11-17 09:02:03 · 333 阅读 · 0 评论 -
洛谷P1790 矩形分割
题目描述有一个长为a,宽为b的矩形(1≤a≤6,2≤b≤6)。可以把这个矩形看作是a*b个小方格。我们现在接到了这样的一个任务:请你计算出,把这个矩形分割成两个部分的方法总数。你不是可以任意地分割这个大的矩形, 必须满足:分割后,每个部分,至少各自均有一个方格是在大矩形的最外边上(即大矩形最外面一环的方格)。输入输出格式输入格式:输入文件仅包含两个数字,a和b。输出格式:输出仅...原创 2018-11-19 13:40:38 · 788 阅读 · 0 评论 -
P3819 松江1843路
题目描述涞坊路是一条长L米的道路,道路上的坐标范围从0到L,路上有N座房子,第i座房子建在坐标为x[i]的地方,其中住了r[i]人。松江1843路公交车要在这条路上建一个公交站,市政府希望让最多的人得到方便,因此希望所有的每一个的居民,从家到车站的距离的总和最短。公交站应该建在哪里呢?输入输出格式输入格式: 第一行输入L、N。接下来N行,每行两个整数x[i]和r[i...原创 2018-11-21 20:35:27 · 280 阅读 · 0 评论