首页 > TAG信息列表 > LOJ
Loj#3320-「CCO 2020」旅行商问题
正题 题目链接:https://loj.ac/p/3320 题目大意 有一张\(n\)个点的无向完全图,每一条边是红色或者蓝色,对于每个点\(s\)求从这个点出发的一条尽量短的经过所有点的路径。 \(1\leq n\leq 2000\) 解题思路 显然地猜测一下最短的长度肯定是\(n\),说是找一条路径,实际上我们是能够找到一hall 定理 & loj#6062. 「2017 山东一轮集训 Day2」Pair
hall 定理:对于任意二分图的一部的子集 \(S\),这些点在另一部所连的点集并为 \(S'\),若有 \(|S|\le |S'|\),那么该二分图有完美匹配。 证明的话考虑归纳喽,对于一个新点,给它分配一个,那么剩下的就是 \(n-1\) 的情况了。 图论的知识要补了。。。。 https://loj.ac/p/6062 回到这题。 考虑LOJ #3341. 「NOI2020」时代的眼泪
看题解不要在多个题解之间反复横跳! 题目叙述 平面上若干个点 \((i,p_i)\) ,其中 \(p_i\) 为一个 \(1\sim n\) 的排列,\(m\) 次询问,每次询问一个矩形内部点对满足一个在左下一个在右上的数量。 题解 直接分块。 散块对整块/散块的贡献 预处理 \(s_{i,j}\) 表示 \(1\sim i\) 这些块内,LOJ #2307. 「NOI2017」分身术
题目叙述 一个点集,每次去掉一个集合内部的一些点(不超过 100 个),求剩下节点构成的凸包面积是多少。强制在线。 题解 基本做法是每次求出 100 层凸包(一层一层向内求凸包)。每次去掉一些节点,就找出最内部的没有任何一个节点被去掉的凸包,向外每层相当于添加一个凸包的一个连续部分,去掉原LOJ #2304. 「NOI2017」泳池
题目叙述 \(1001\times n\) 的网格图,每个格子有 \(p\) 的概率是不危险的。求最大的不危险的格子组成的底边与整个网格底边重合的最大长方形面积恰好为 \(k\) 的概率是多少。 题解 先差分一步,改成求最大值 \(\le k\) 的概率。 有一种想法是从左往右 dp ,但很快发现我们需要维护一个LOJ #2721. 「NOI2018」屠龙勇士
题目叙述 有点长,大概就是一个扩展CRT的模板。 题解 相当于求 \(b_ix\equiv a_i\pmod {p_i}\) 的解了。 考虑先用扩展 CRT 求 \(x\mod p_i\) 是多少。 然后合并即可。 写的时候注意扩展欧几里得要边取模边做。 另外如果想写得简单一些,可以考虑直接套上去,不先把 \(x\mod p_i\) 取值LOJ #2718. 「NOI2018」归程
题目叙述 给定 \(n\) 个点 \(m\) 条边的无向图,每条边有一个长度和一个高度,一个人坐车能走过所有高度 \(>p\) 的边,从 \(v\) 节点出发,要走到 \(1\) 号节点,坐车走不了的就得步行。求最小步行距离,多次询问。 题解 对 1 跑单源最短路。在Kruskal重构树上走能够经过的节点是一个子树。直LOJ#535「LibreOJ Round #6」花火 题解
题面 如果只能交换相邻两项,那么答案就是排列的逆序对数。 现在我们就是要求交换两个数,使得交换后的排列逆序对数最少。 不难发现我们一定不会交换满足 \(i<j,h_i<h_j\) 的 \((i,j)\),因为这样只会让逆序对变多。 考虑怎么刻画减少的逆序对: \((i,j)\); 满足 \(i<k<j,h_k<h_i\) 的 \(【luogu P6656】【LOJ 173】【模板】Runs(字符串)(Lyndon 串)
【模板】Runs 题目链接:luogu P6656 / LOJ 173 题目大意 给你一个字符串,要你求它所有的 Runs。 思路 本文也是参考着 command_block 大神的博客 进行学习的,只是书写一下自己的个人理解。 首先有一(亿)些关于 Lyndon 的知识建议先看看。 然后就开始讲了咯。 (文中许多东西建立在前面这LOJ #3343. 「NOI2020」超现实树
提交记录 题目叙述 二叉树,称一棵树可以长成另外一颗树,当且仅当可以通过替换这棵树的叶子节点为随便其他的树,变成另一棵树。给定一个树的集合,判断是否可以只有有限棵树凑不出。 题解 考虑暴力怎么写,判断 \(i\) 的子树的所有情况是不是几乎完备的。然后只要判断左儿子和右儿子是不是LOJ #3534. 「NOI2021」庆典
提交记录 题目叙述 给定一个 \(n\) 个点 \(m\) 条边的有向图,满足如果 \(x\) 到 \(w\) 右边,并且 \(y\) 到 \(w\) 也有边,那么就一定有边 \(x\) 到 \(y\) 或者 \(y\) 到 \(x\) 。每次给出 \(k\) 条边 \(a_i\rightarrow b_i\) 表示这次询问新加入的边(不一定这样做之后的图还满足原题的Loj#2324-「清华集训 2017」小 Y 和二叉树
正题 题目链接:https://loj.ac/p/2324 题目大意 给出\(n\)个点的一棵树,每个点的度数不超过\(3\)。 你要求它的一个二叉树结构(根任意选择)使得其中序遍历的字典序最小。 \(1\leq n\leq 10^6\) 解题思路 直接找根感觉比较麻烦,我们考虑先确定中序遍历中的第一个点。 显然这个点是最Loj#510-「LibreOJ NOI Round #1」北校门外的回忆【线段树】
正题 题目链接:https://loj.ac/p/510 题目大意 给出一个代码 function add(x,v) while x <= n do s[x] = s[x] xor v x = x + lowbit(x) //注意,这里是 lowbit,这也是两份代码唯一的区别 end while end function function query(x) ans = 0 whileLoj#3005-「JOISC 2015 Day 4」Limited Memory【交互题】
正题 题目链接:https://loj.ac/p/3005 题目大意 有一个长度为\(n\)的括号串\(S\),其中包括[]和<>两种括号类型,一个合法的括号串要求同类型的括号一一对应。 你每次可以询问\(S\)中的一个字符并且传递一个\([0,2^{22})\)的数字到下一次。 你的程序每次只知道字符串长度\(n\)和上一Loj #10177 USACO 2011 Open Gold 修剪草坪 单调队列优化DP
在一年前赢得了小镇的最佳草坪比赛后,FJ 变得很懒,再也没有修剪过草坪。现在,新一轮的最佳草坪比赛又开始了,FJ 希望能够再次夺冠。 然而,FJ 的草坪非常脏乱,因此,FJ 只能够让他的奶牛来完成这项工作。FJ 有\(N\)只排成一排的奶牛,编号为\(1\)到\(N\) 。每只奶牛的效率是不同的,奶牛\(i\)的【luogu P6621】【LOJ 3301】魔法商店(线性基)(保序回归)
魔法商店 题目链接:luogu P6621 / LOJ 3301 题目大意 给你 n 个物品,每个有魅力值和价格。 然后一组合法的方案定义为数量最多的一个物品集,使得每个非空子集魅力值的异或和都非 0。 然后你可以修改物品的价格,费用是价格差的平方。 然后给你两个合法方案,要你用最小的费用使得它们在所LOJ #6089. 小 Y 的背包计数问题
题面传送门 奇妙的思维(技巧?)题。 发现每个物品有\(i\)个,体积为\(i\),对于\(i>\sqrt n\)的物品来说,这个个数的限制是相当于没有的。所以相当于完全背包。 前面\(O(\sqrt n)\)个可以暴力多重背包算方案数。 考虑后面\(n\)个最多选择\(O(\sqrt n)\)个。所以可以设\(dp_{i,j}\)表示选LOJ #3634. 「2021 集训队互测」音符大师
题面传送门 首先好像有一道题交闹钟来着,是\(m=0\)的版本。 考虑设\(f_{i,j,0/1}\)为一个点在\([a_i-m,a_i]\)左/右,另一个点在\(j\)点的最小答案。 然后转移分类讨论:首先找到第一个不在\([a_i-m,a_i]\)区间内的位置\(x\),如果找不到直接贡献答案。 如果是这一步转移\(a_i\),那么相当于Loj#10159.旅游规划
Loj#10159.旅游规划 题目说的很明确了,问点是否在最长路径上,记录最长次长以及最长转移的位置。 怎么判断点在最长路径上,只要最长次长和向上走三者中较大的两个的和为最长路就能说明在最长路径上。 代码显然好写。 /* Knowledge : Rubbish Algorithm Work by :Gym_nastics Time : O(LOJ #3006. 「JOISC 2015 Day 4」防壁
LOJ #3006. 「JOISC 2015 Day 4」防壁 首先有一个很显然的结论是:对于每条线段,贪心地向询问点移动直到覆盖的方案一定是最优的。于是我们就得到了一个 \(\mathcal O(NM)\) 的暴力做法。 我们先考虑Subtask2也就是 \(a_i=0\) 的情况怎么做。对于线段 \([0,t]\) 我们定义询问loj#6518-「雅礼集训 2018 Day11」序列【整体二分,dp,线段树】
正题 题目链接:https://loj.ac/p/6518 题目大意 一个长度为\(n\)的序列\(a\),你可以花费\(1\)的代价让一个数\(+1\)或者\(-1\),给出\(m\)个限制形如第\(k\)个数要是区间\([l,r]\)的最大/最小值。 求满足所有限制的最小代价 \(1\leq n\leq 5000,1\leq a_i\leq 10^5\) 解题思路 一个[背包] LOJ#6089. 小 Y 的背包计数问题
\(\texttt{link}\) 考虑根号分治: \(i\le \sqrt n\):做多重背包,可以先做完全背包,再 \(f_j-=f_{j-i(i+1)}\) 减掉不合法的。 \(i > \sqrt n\):每种物品可以看作有无限个,做完全背包,但是直接做还是 \(\mathrm{O(n^2)}\) 的。 类似 \(ARC107D\),考虑记 \(dp(i,j)\) 为选了 \(i\) 个物【DS】loj#535. 「LibreOJ Round #6」花火
题传 真难写,, 考虑冒泡排序,每一次交换相邻的减少 1 对逆序对,那么我们肯定要第二种操作尽量多地减少逆序对。 考虑第二种操作 swap(i,j) 减少的逆序对数量:\(\forall k\in(i,j),h_j<h_k<h_i\),\(k\) 的个数乘二。 考虑抽象到二维平面,点坐标为 \((i,h_i)\),那么就是以 \((i,h_i)\) 为左2022 LOJ 随机做题随笔——二月
Tag & Difficulty Sol 难度纯粹个人评价。 02.01 3620 Tag & Difficulty Tag: observation | Difficulty: 2400 Sol codeplus 和 HDU 多校都出现过的原题 /fn 但是线性做法其实还是有点水平的。 先枚举绝对众数是谁,把非绝对众数改成 -1,绝对众数改成 1,那么需要计算的就是和大于LOJ #6733. 人造情感
LOJ #6733. 人造情感 先考虑如何求解 \(W(S)\)。设 \(f_u\) 为考虑子树 \(u\) 内的路径集合的 \(W\) 值,则有转移 \[f_u=\max\left\{\sum_{v\in \operatorname{ch}_u}f_v\right\}\cup\left\{w+\sum_{v\notin \operatorname{path}(x,y)\and\operatorname{fa}_v\in \operatornam