目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定序列 A,序列中的每一项 Ai 有删除代价 Bi 和附加属性 Ci 请删除若干项,使得 A 的最长上升子序列长度减少至少 1,且付出的代价之和最小,并输出方案。 如果有多种方案,请输出将删去项的附加属性排序之
链接: https://loj.ac/problem/6278 题意: 给出一个长为 的数列,以及 个操作,操作涉及区间加法,询问区间内小于某个值 的元素个数。 思路: 分块,用vector维护每个区域的数值,每次通过二分去找满足的值. 每次单个修改时 代码: #include <iostream> #include <cstdio> #include <cstrin
题目 传送门:loj10132 在 Adera 的异时空中有一张地图。这张地图上有 N 个点,有N-1 条双向边把它们连通起来。起初地图上没有任何异象石,在接下来的 M 个时刻中,每个时刻会发生以下三种类型的事件之一: 地图的某个点上出现了异象石(已经出现的不会再次出现); 地图某个点上的异象
题面 https://loj.ac/problem/6036 题解 很抱歉的告诉大家,这道题我思考了很长时间,还是不会。 $yyb$代码的细节我也没有弄懂。我知道以后的学习中我会遇到很多这样的题,可能学习方式要进行转变了。 我只能把我看明白的部分讲给大家听。 首先是暴力,我们只要把$trie$树上具有“祖先-后
传送门 考虑如果能确定每个鞋子最终交换到的位置,那么答案容易算出 具体地,如果原位置为 $i$ 的鞋子要交换到 $pos[i]$ 那么最终答案就是 $pos$ 的逆序对数量 如果不懂可以先去写 NOIP2013火柴排队 我的题解也有关于这个的证明 考虑怎么确定最优的方案,容易想到每个鞋子都找离它
目录 @description@ @solution@ @accepted code@ @details@ @description@ 现有一个字符串 S。 Tiffany 将从中划分出 na 个子串作为 A 类串,第 i 个 Ai = S[la[i]...ra[i]]。 Yazid 将从中划分出 nb 个子串作为 B 类串,第 i 个 Bi = S[lb[i]...rb[i]]。 给定 m 组支配关系 (
目录 @description@ @solution@ @accepted code@ @details@ @description@ 今天是 IOI 酱的生日,所以她的哥哥 JOI 君给她预定了一个生日蛋糕。虽然他计划买一整个蛋糕,但是他不小心订成了 N 块蛋糕。这 N 块蛋糕编号为 1\ldots N ,每块蛋糕都有
这道题相当于倍增求LCA的板子,我们只要构建一棵树,然后距离就是x的深度+y的深度 - LCA(x,y)的深度; 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #define maxn 100005 6 using namespace std; 7 int n,Q; 8 int x,y; 9 int next[maxn*2],fir
题目传送门:LOJ #3158。 题意简述: 给定两个长度为 \(n\) 的正整数序列 \(a,b\),要求在每个序列中都选中 \(K\) 个下标,并且要保证同时在两个序列中都被选中的下标至少有 \(L\) 个,使得选中的下标对应的数的总和最大。 题解: 题目相当于要求在两个序列中选出 \(K\) 对数,不妨一对一对地选
题目传送门:LOJ #3160。 简要题意: 有一个长度为 \(n\) 的序列 \(a\),初始时 \(a_i=i\) 或 \(a_i=i^2\),这取决于 \(\mathrm{type}\) 的值。 对这个序列进行 \(m\) 次操作,每次操作给定一个值 \(A_i\),把这个序列分为两部分:\(a[1:A_i]\) 和 \(a[A_i+1:n]\),然后在不改变两个序列内部相对顺
报到日 -1 打了一场LOJ发现rk5,听完cy讲T1后感觉自己非常智障……AK的那位老哥好强啊qwq 窝在宾馆里打打游戏敲敲板子 饥荒真好玩 等着明天去报道 要退役了反而心情平静,不知道为啥
题目传送门 传送门 题目大意 (相信大家都知道) 显然要考虑一个排列$p$合法的充要条件。 考虑这样一个构造$p$的过程。设排列$p^{-1}_{i}$满足$p_{p^{-1}_i} = i$。 初始令$q = (1, 2, \cdots, n)$。 依次考虑$i = 1, 2, \cdots, n$。 设$x = p_i$,如果$q^{-1}_x >
题意 在一片长方形的草地上,有222种动物——兔子和狐狸活动。兔子走过草地会留下RRR,狐狸走过草地会留下FFF。每只动物从左上角进入草地,从右下角走出草地。其间,它可以上下左右乱跳(可以重复),经过的格子会被覆盖上它的脚印。每次草地上最多只有一只动物。求出最少有几只动物。
题目链接 题目描述 「UniversalNO」的规则如下:每张牌有一种颜色和一个点数。两个人轮流出牌,由 Alice 先手,最开始牌堆为空,出的人可以出任意牌(放到牌堆顶),之后出的牌必须和当时牌堆顶的牌的颜色或点数至少有一个相同。有牌可出者必须出,无牌可出者输。 Alice 和 Shinobu 玩了几局后觉得
【LOJ#3144】[APIO2019]奇怪装置(数论) 题面 LOJ 题解 突然发现\(LOJ\)上有\(APIO\)的题啦,赶快来做一做。 这题是窝考场上切了的题嗷。写完暴力之后再推了推就推出正解了。。。 考虑\(t1,t2\)两个时刻,如果两个时刻的\((x,y)\)相等的话,考虑是一种什么样的情况。 \[\begin{cases} t_1+
[LOJ 2134][UOJ 132][BZOJ 4200][NOI 2015]小园丁与老司机 题意 给定平面上的 \(n\) 个整点 \((x_i,y_i)\), 一共有两个问题. 第一个问题是从原点 \((0,0)\) 出发, 在只能向←↖↑↗→五个方向中有未到达的点的方向走且在没有到达一个点的时候不能中途转弯的情况下最多能到达的点数
Loj #2585. 「APIO2018」新家 题目描述 五福街是一条笔直的道路,这条道路可以看成一个数轴,街上每个建筑物的坐标都可以用一个整数来表示。小明是一位时光旅行者,他知道在这条街上,在过去现在和未来共有 \(n\) 个商店出现。第 \(i\) 个商店可以使用四个整数 \(x_i, t_i, a_i, b_i\) 描
LOJ#3102. 「JSOI2019」神经网络 首先我们容易发现就是把树拆成若干条链,然后要求这些链排在一个环上,同一棵树的链不相邻 把树拆成链可以用一个简单(但是需要复杂的分类讨论)的树背包实现 \(dp[u][j][0/1/2]\)表示第\(u\)个点已经选了\(j\)条链,0是两个不同子树的链拼到一起,1是只有1个
Loj #2554. 「CTSC2018」青蕈领主 题目描述 “也许,我的生命也已经如同风中残烛了吧。”小绿如是说。 小绿同学因为微积分这门课,对“连续”这一概念产生了浓厚的兴趣。小绿打算把连续的概念放到由整数构成的序列上,他定义一个长度为 \(m\) 的整数序列是连续的,当且仅当这个序列中的
LOJ#3109. 「TJOI2019」甲苯先生的线段树 发现如果枚举路径两边的长度的话,如果根节点的值是\(x\),左边走了\(l\),右边走了\(r\) 肯定答案会是\((2^{l + 1} + 2^{r + 1} - 3)x + t\),可以发现\(t < (2^{l + 1} + 2^{r + 1} - 3)\),于是考虑计算对于\(t\),左边走了\(l\),右边走了深度\(r\)
Loj #2553. 「CTSC2018」暴力写挂 题目描述 temporaryDO 是一个很菜的 OIer 。在 4 月,他在省队选拔赛的考场上见到了《林克卡特树》一题,其中 \(k = 0\) 的部分分是求树 \(T\) 上的最长链。可怜的 temporaryDO 并不会做这道题,他在考场上抓猫耳挠猫腮都想不出一点思路。 这时,善良的板
通过观察样例我们可以得到这样的结论 先将所有和d相连的边删掉,得到一堆区间,然后旋转这些区间的顶点边,使它变得和d相连 重复上述流程直到我们得到了一堆长度为1的区间们 那么很容易的看出上面的操作流程构成了一颗树的结构,除了根节点度数不确定每个点的度数都是2 方案数也十分显然就
LOJ#3095. 「SNOI2019」字符串 如果两个串\(i,j\)比较\(i < j\),如果离\(a_{i}\)最近的不同的数是\(a_{k}\),如果\(j < k\)那么\(i\)排在\(j\)前面 否则的话如果\(a_{k} < a_{i}\),那么\(i\)排在\(j\)前 于是写个比较函数扔到sort里就可以了 #include <bits/stdc++.h> #define fi firs
LOJ#3092. 「BJOI2019」排兵布阵 这题就是个背包啊,感觉是\(nms\)的但是不到0.2s,发生了什么。。 就是设\(f[i]\)为选了\(i\)个人最大的代价,然后有用的人数只有\(s\)种 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair
LOJ#3087. 「GXOI / GZOI2019」旅行者 正着求一遍dij,反着求一遍,然后枚举每条边,从u到v,如果到u最近的点和v能到的最近的点不同,那么可以更新答案 没了 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_