摘要: 终于来发题解啦! pdf版题解 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<queue> #include<climits> using namespace std; inlin 阅读全文
posted @ 2019-03-08 20:42 siruiyang_sry 阅读(159) 评论(0) 推荐(0) 编辑
摘要: link 一道简单题。 不用可持久化。 对于统计颜色个数,可以看与其颜色一样的前一个位置。 设$las(i)$表示其与$i$颜色相等的上一个位置。 则对于二元组$(l,r)$,其答案为$\sum_{i=l}^{r} las(i)<=l-1$。 可持久化强上即可。 若不用的话可以讲$(l,r)$拆成两 阅读全文
posted @ 2019-02-23 18:57 siruiyang_sry 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 2151: 种树 Description A城市有一个巨大的圆形广场,为了绿化环境和净化空气,市政府决定沿圆形广场外圈种一圈树。园林部门得到指令后,初步规划出n个种树的位置,顺时针编号1到n。并且每个位置都有一个美观度Ai,如果在这里种树就可以得到这Ai的美观度。但由于A城市土壤肥力欠佳,两棵树决不 阅读全文
posted @ 2019-01-05 10:38 siruiyang_sry 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 2144: 跳跳棋 Description 跳跳棋是在一条数轴上进行的。棋子只能摆在整点上。每个点不能摆超过一个棋子。我们用跳跳棋来做一个简单的 游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置。我们要通过最少的跳动把他们的位置移动成x,y,z。(棋 子是没有区别的)跳动的规则很简单,任意选一颗棋 阅读全文
posted @ 2019-01-05 10:21 siruiyang_sry 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 2243: [SDOI2011]染色 Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段), 如“112221”由3段组成:“11”、“222”和“1”。 请 阅读全文
posted @ 2019-01-04 21:10 siruiyang_sry 阅读(179) 评论(0) 推荐(0) 编辑
摘要: link 试题分析 一个十分裸的树套树板子(这也是一个板子),线段树中套平衡树($Treap$) 主要就有一个不是平凡操作的,就是处理第$2$个操作时,因为其他操作确保每次复杂度在$O(log^2 n)$,而$2$操作无法快速在$Treap$中找到,所以就可以去二分一个值,用$1$操作判断即可,单次 阅读全文
posted @ 2019-01-03 20:43 siruiyang_sry 阅读(179) 评论(0) 推荐(0) 编辑
摘要: link 题目大意 给$n!$个$n$的排列,按字典序从小到大连成一条序列,例如$3$的情况为:$[1,2,3, 1,3,2, 2,1,3 ,2,3,1 ,3,1,2 ,3,2,1]$,问其中长度为$n$,且和为$sum=n\times (n+1)/2$的序列有多少个? 试题分析 对于合理的序列有两 阅读全文
posted @ 2018-12-31 20:02 siruiyang_sry 阅读(629) 评论(2) 推荐(0) 编辑
摘要: 3224: Tyvj 1728 普通平衡树 Description 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3. 查询x数的排名(若有多个相同的数,因输出最小的排名)4. 查询排名为x的数5. 求x的前 阅读全文
posted @ 2018-12-28 13:44 siruiyang_sry 阅读(213) 评论(3) 推荐(0) 编辑
摘要: 倍增$ST$表 预处理复杂度 $O(n \log n)$ 单次查询复杂度 $O(\log n)$ $RMQ$倍增的思想。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> 阅读全文
posted @ 2018-12-27 22:40 siruiyang_sry 阅读(189) 评论(0) 推荐(0) 编辑
摘要: link 题目大意 有$n$个时间安排,可以安排到$2$个时间,问是否可以将时间错开,若能,输出一种方案。 试题分析 $O(n^2)$暴力判断两者是否能在同一个时间安排,若有两段时间$(u,v)$是不能安排在一起的,则连边$(u,v'),(v,u')$,然后就一个彻彻底底是一个板子了。 #inclu 阅读全文
posted @ 2018-12-27 18:50 siruiyang_sry 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 其实以前写过关于$2-SAT$的,但是那时的自己太懵懂了。 这是以前写过的文章link 关于$2-SAT$,其实就想说两件事情。 $2-SAT$边建立的逻辑 $2-SAT$边建立的逻辑是必须关系,若$(u,v)$连边的话,说明如果要选择$u$号节点就必须要选择v号节点。 举个例子,假设有$2$个团队 阅读全文
posted @ 2018-12-25 18:45 siruiyang_sry 阅读(281) 评论(0) 推荐(0) 编辑
摘要: link 试题分析 分两种情况考虑。 当此点不是割点是,答案是$2\times (n-1)$。 当是割点时,我们发现这个点把树分成了若干个联通块,只要两两相乘即可。 #include<iostream> #include<cstring> #include<cstdio> #include<algo 阅读全文
posted @ 2018-12-25 13:19 siruiyang_sry 阅读(153) 评论(0) 推荐(0) 编辑
摘要: link 题目大意 给你几个二进制运算的结果,求是否有解。 试题分析 $2-SAT$板子吧,其实主要就是在$2-SAT$中我们连边是对于选择$u$点后必须选择$v$点才连$(u,v)$。 然后就$tarjan$判断两点是否在一个强连通分量中。 #include<iostream> #include< 阅读全文
posted @ 2018-12-25 13:17 siruiyang_sry 阅读(209) 评论(0) 推荐(1) 编辑
摘要: link 题目大意 询问有多少个点不在奇环上。 试题分析 性质1 若两人若不在一个点双连通分量中,则无法一起出席。 证明 若两人一起出席,则肯定两点之间构成点双连通分量,但是两者不在一个点双中,不满足点双的极大性,则性质1正确。 性质2 若在点双中有奇环,则每个点都至少在一个奇环上。 证明 我们考虑 阅读全文
posted @ 2018-12-25 13:15 siruiyang_sry 阅读(145) 评论(0) 推荐(0) 编辑
摘要: link 题目大意 有$n$个点的前边权为$0$的树,你要加入$S$边权总量,可以为分数,使得当前树的直径最小。 题目分析 题目过于毒瘤,导致于最后$1$个小时一直在做此题,没想到真的只是一个结论一样的东西。 我们不要想十分复杂,我们发现数的直径两端都会在度数为$1$的点上,就是叶子节点。然后呢我们 阅读全文
posted @ 2018-12-24 12:38 siruiyang_sry 阅读(241) 评论(0) 推荐(0) 编辑
摘要: link 题目大意 有$n$个点的完全图,每条边有价值$c$与权值$w$,求$\frac{\sum c}{\sum r}$最小 试题分析 一道分数规划,我们二分$k$值,判断当每条边边权为$c-k\times w$时的最小生成树是否大于$0$,然后就会$T$掉,需要卡常,好像说正解是牛顿迭代法。 # 阅读全文
posted @ 2018-12-21 23:38 siruiyang_sry 阅读(129) 评论(0) 推荐(0) 编辑
摘要: link 题目大意 给出$m$个不等式关系,问可以从第几个开始确定所有之间的大小关系。若无解请输出是无法确定还是与已知矛盾。 试题分析 这题是真的是坑啊,尽然放在$floyd$传到闭包上面,还用二分,是真的强啊。 其实一下子就会知道其实这是一道拓扑排序的题,所以当我们每次输入问一条边时,我们就去拓扑 阅读全文
posted @ 2018-12-21 23:30 siruiyang_sry 阅读(184) 评论(0) 推荐(0) 编辑
摘要: link 题目大意 给你一个含有边权的无向图,问从$S$到$T$经过$N$条边的最小花费。 试题分析 我们可以很容易推导$dp$方程,$dp(k,i,j)$表示经过$k$条边从$i$到$j$的最小花费。则,$dp(k,i,j)=min(dp(k-1,i,p)+dp(1,p,j))$。 而$(i,p) 阅读全文
posted @ 2018-12-21 23:21 siruiyang_sry 阅读(129) 评论(0) 推荐(0) 编辑
摘要: link 试题分析 容易发现性质,选择的是一段区间,但是贪心无法去维护这件事情,所以考虑$dp$,且我们只要去设计关于$JOI$的选择。 设$dp(i,j)$为现在要在$[l,r]$区间内选择,然后就可以随便写了。 #include<iostream> #include<cstring> #incl 阅读全文
posted @ 2018-12-21 22:43 siruiyang_sry 阅读(251) 评论(0) 推荐(0) 编辑
摘要: link 试题分析 我们发现若是要选馒头的话则应该从馒头售价高的先装。 并且若要选择包装盒时应该选择装x个最小的时候。所以只需要贪心$+$背包即可。 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> u 阅读全文
posted @ 2018-12-21 22:29 siruiyang_sry 阅读(309) 评论(0) 推荐(0) 编辑