03 2018 档案

摘要:题面 "传送门" Sol 走到一个点的前提是所有的影响它的点都走到,并且它的时间为那些点的时间$max$与自己的最短路的$max$ 考虑$Dijkstra$ 每次松弛时候,把它影响到的点的防护罩减$1$ 如果某个点没有后继影响它的节点就丢到大根堆内 然后这个继续松弛 cpp include defi 阅读全文
posted @ 2018-03-31 22:09 Cyhlnj 阅读(162) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 显然是求这样一个东西 绿色的线为分割线,左上海拔为$0$,右下为$1$ 分隔线经过的边就是贡献的答案 那么这就是平面图最小割,转成对偶图求最短路就好了 $SPFA$真心慢,以后还是跑$Dijstra$ cpp include define RG register defin 阅读全文
posted @ 2018-03-31 20:26 Cyhlnj 阅读(160) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol ~~以下多数东西都是复制题解的~~ 外省体验赛这题顺利获得了$10$分的好成绩。。。 显然是$Access$操作,已知每个点$Access$的次数,确定一种顺序,问轻重链切换次数的最大值 考虑$i$处的切换次数,如果连续两次$Access$在同一子树或者都是它自己,那么显然 阅读全文
posted @ 2018-03-31 08:04 Cyhlnj 阅读(343) 评论(3) 推荐(0)
摘要:Sol 考场上: 这不是送$50$吗,$Q^2$递推就好了 然后,怎么又送$20$分??? $woc$,只有半个小时了,顺利没调出来只有$50$分 考后: 神$TM$一个大于号写成小于号。。。 $20$分没了 $TAT$ 正解的一种 $n$棵线段树维护每一行的前$m 1$列 再开一棵维护最后一列的情 阅读全文
posted @ 2018-03-30 14:39 Cyhlnj 阅读(161) 评论(0) 推荐(0)
摘要:Sol 发现$NOIP2017$还没$AK$??? 赶紧改 考场上明明打出了$DP$,没时间了,没判环,重点是没初始化数组,爆$0$ $TAT$ 先最短路,然后$f[i][j]$表示到$i$时,比最短路大$j$的方案 大力记搜就好了 判环就记录一下当前转移的是否在栈中就没了 明明这么简单,可我就是与 阅读全文
posted @ 2018-03-29 20:25 Cyhlnj 阅读(165) 评论(2) 推荐(1)
摘要:题意 给定三个数$k$,$pa$,$pb$ 每次有$\frac{pa}{pa+pb}$ 的概率往后面添加一个'$a$' 每次有$\frac{pb}{pa+pb}$的概率往后面添加一个'$b$' 当出现了$k$个形如$ab$的子序列(不用连续)时停止 求最后的$ab$序列的期望数 答案对$10^9+7 阅读全文
posted @ 2018-03-29 19:45 Cyhlnj 阅读(187) 评论(0) 推荐(0)
摘要:题面 "传送门" 题意 $m$面的骰子 求连续出现$n$个相同面的期望次数 或者 求连续出现$n$个不同面的期望次数 Sol 设$f[i]$表示已经出现了$i$~$n$这些面相同的期望次数 $g[i]$指$i$~$n$这些面不同的期望次数 那么显然有 $$f[i]=\frac{1}{m}f[i+1] 阅读全文
posted @ 2018-03-29 14:32 Cyhlnj 阅读(184) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 方法一 直接状压就好了 cpp include define RG register define IL inline define Fill(a, b) memset(a, b, sizeof(a)) using namespace std; typedef long l 阅读全文
posted @ 2018-03-29 13:55 Cyhlnj 阅读(810) 评论(4) 推荐(3)
摘要:Sol 然而我的代码在$UOJ$上被$hack$$\ TLE$了 但思路是没问题的$TAT$ 如果没有$x$,就是个$2 SAT$ 我们爆搜$x$的地图是$a$还是$b$就好了 不用枚举它是$c$,枚举$a$,$b$就能保证正好选$ABC$三种车 我也不知道我的输出方案哪里学的 拓扑排序+染色$QA 阅读全文
posted @ 2018-03-28 22:10 Cyhlnj 阅读(198) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol $sto \ \ $ $fdf$ $sto \ \ $ $fateice$ 显然,如果一个区间包含了另一个区间,那么它的最小值不会有贡献,直接去掉 考虑枚举最大值$k$ 求出所有区间满足最小值小于等于$k$的概率,设为$P[k]$ 那么$k$的贡献就是$(P[k] P[k 阅读全文
posted @ 2018-03-28 17:29 Cyhlnj 阅读(152) 评论(0) 推荐(0)
摘要:概念 欧拉路径指一条所有边都经过且只有一次的路径 如果起点和终点相同就是欧拉回路 判定 有向图:所有点连通,且入度都等于出度,则有欧拉回路 无向图:所有点连通,且度数为偶数,则有欧拉回路 显然欧拉回路删掉一条边就是欧拉路径 那么欧拉路径中有且只有两个不符合欧拉回路要求的点,并且相连后就满足了 算法 阅读全文
posted @ 2018-03-28 14:20 Cyhlnj 阅读(314) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 巧妙的建图+$Dijkstra$ 考虑把边看成点,那么显然暴力建图的边数是$m^2$的 考虑优化 把$max(a, b)$变成$a+max(b a,0)$ 把每个点连出的边按权值从小到大排序 每个边向后面的边连$b a$, 后面向前面连$0$ 连向它的边向连出去的边连$a$ 阅读全文
posted @ 2018-03-28 13:48 Cyhlnj 阅读(182) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 假如我们知道所有的前缀和数组,差分以下就得到了答案 对于一组区间$[l, r]$ 我们就知道了$S[r] S[l 1]$的值,$S$即前缀和 那么如果把这看成一条边$(l 1,r)$,那么最后只需要所有的点联通就可以求出所有点对之间的关系 那不就是最小生成树了 直接$n^2 阅读全文
posted @ 2018-03-28 13:26 Cyhlnj 阅读(147) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 分别按$X$轴,$Y$轴从小到大排序,相邻两个点建边权为$\Delta x$或$\Delta y$的边 然后跑$Dijkstra$ cpp include define RG register define IL inline define Fill(a, b) memse 阅读全文
posted @ 2018-03-28 13:20 Cyhlnj 阅读(162) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 容斥原理+背包 处理出所有金币无限制条件凑成$j$元的方案数 考虑计算 $c$只有$4$种,可以容斥一波 就是无限制的总方案 $1$个硬币超出限制的方案+$2$个的 $3$个的+$4$个的 阅读全文
posted @ 2018-03-27 20:42 Cyhlnj 阅读(152) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 算出每个点从子树内使它没电的概率和子树外使它没电的概率即可 注意算子树外使它没电的概率时,父亲转移来要除掉它的贡献,直接除可能有$0$的情况 可以把每个点的儿子排成一列,求一遍前后缀的积来计算 cpp include define RG register define IL 阅读全文
posted @ 2018-03-27 19:43 Cyhlnj 阅读(154) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 也是拿出一些数,使剩下的异或起来不为$0$ 而线性基内的数异或不出$0$ 那么从大到小加到线性基内 然后中途为$0$了,就取走它 这样我们使最大的在线性基内,剩下的是小的,那么这样贪心是对的 然后怎么可能无解,随便剩下一个就是一种方案 cpp include define 阅读全文
posted @ 2018-03-27 17:32 Cyhlnj 阅读(145) 评论(0) 推荐(0)
摘要:Sol 这做法我是想不到$TAT$ 每个筐子拆成三个相互连边 球向三个筐子连边 然后跑一般图最大匹配 这三个筐子间最多有一个匹配 那么显然每个球一定会放在一个筐子里,一定有一个匹配 如果筐子间有匹配,则有一个半空的筐子,因为它一定只匹配了小于等于$1$个球 答案为匹配数$ n$ 使答案最大即匹配数最 阅读全文
posted @ 2018-03-27 17:17 Cyhlnj 阅读(145) 评论(0) 推荐(0)
摘要:前置技能 匈牙利算法 增广路 从一个未匹配点到另一个未匹配点,中间经过的匹配边和未匹配边交替出现的一条路径 从上面的性质来看 每次找到一条增广路,增广路一定有奇数条边,而且未匹配边一定比匹配边多一 那么把匹配和未匹配做一遍类似异或的操作就能使答案$+1$ 如果找不到增广路那么就是最大匹配了 然后这就 阅读全文
posted @ 2018-03-27 13:33 Cyhlnj 阅读(273) 评论(0) 推荐(0)
摘要:题意 一棵树,每个点初始有个点权和颜色 $0 \ u$ :询问所有$u,v$ 路径上的最大点权,要满足$u,v$ 路径上所有点的颜色都相同 $1 \ u $:反转$u$ 的颜色 $2 \ u \ w$ :把$u$ 的点权改成$w$ $color_i∈[0,1],w_i∈[−10^9,10^9],n, 阅读全文
posted @ 2018-03-26 19:32 Cyhlnj 阅读(163) 评论(0) 推荐(0)
摘要:题意 给你一棵$n$个点的树,编号$1$~$n$。每个点可以是黑色,可以是白色。初始时所有点都是黑色。有两种操作 $0\ u$:询问有多少个节点$v$满足路径$u$到$v$上所有节点(包括)都拥有相同的颜色 $1\ u$:翻转$u$的颜色 Sol $LCT$做法: 黑白开两个$LCT$ 然后有一个很 阅读全文
posted @ 2018-03-25 17:23 Cyhlnj 阅读(198) 评论(0) 推荐(0)
摘要:牛顿迭代 若 $$G(F_0(x))\equiv 0(mod\ x^{2^t})$$ 牛顿迭代 $$F(x)\equiv F_0(x) \frac{G(F_0(x))}{G'(F_0(x))}(mod\ x^{2^{t+1}})$$ 以下多数都可以牛顿迭代公式一步得到 多项式求逆 给定$A(x)$求 阅读全文
posted @ 2018-03-25 08:02 Cyhlnj 阅读(952) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-03-24 17:00 Cyhlnj 阅读(24) 评论(0) 推荐(0)
摘要:LCT: 类似于树链剖分吧~~我是这么认为的~~ 要学会LCT首先你要先学会Splay及其 区间翻转操作 基础 辅助树: ①Splay以深度为为关键字,维护每条链的信息( 每条链一个splay ) ②其根的父亲指向这条链的链顶的父亲 ③记住每次splay时要先 从上往下 下放lazy 操作 判断是否 阅读全文
posted @ 2018-03-24 15:22 Cyhlnj 阅读(199) 评论(0) 推荐(0)
摘要:Sol $LCT$动态维护树重心 方法一 因为只有加边,所以可以暴力启发式合并,维护重心 维护子树信息,子树大小不超过一半 复杂度两只$log$ 方法二 扣出两个重心的链,链上二分找 每次$Splay$重心,应该是一只$log$的吧。。。 cpp include define RG register 阅读全文
posted @ 2018-03-24 14:14 Cyhlnj 阅读(217) 评论(0) 推荐(0)
摘要:题意 一棵$n$个点的树,点从$1$到$n$编号。每个点可能有两种颜色:黑或白。 我们定义$dist(a,b)$为点$a$至点$b$路径上的边个数。 一开始所有的点都是黑色的。 要求作以下操作: $0 i$ 将点$i$的颜色反转(黑变白,白变黑) $1 v$ 询问$dist(u,v)$的最小值,$u 阅读全文
posted @ 2018-03-24 11:02 Cyhlnj 阅读(244) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-03-23 21:54 Cyhlnj 阅读(17) 评论(0) 推荐(0)
摘要:题面 "luogu" Sol 好久没写$LCT$ 然而写跪了$TAT$ 把边从小到大加入森林 如果形成环,就替换最小的边 如果已经是树,更新答案 $LCT$维护 cpp include define RG register define IL inline define Fill(a, b) mem 阅读全文
posted @ 2018-03-22 17:22 Cyhlnj 阅读(157) 评论(0) 推荐(0)
摘要:题目 "传送门" Sol 离线+分治+$djikstra$ 每次把网格图分成两部分 如果起点和终点分隔两边,那么它一定会经过中轴线 枚举中轴线上的点跑$dijkstra$ 然后处理询问,递归处理起点终点在一起的询问 cpp include define RG register define IL i 阅读全文
posted @ 2018-03-22 13:59 Cyhlnj 阅读(170) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 线段树,维护一个长度为$20$的数组,每次合并时就是左右儿子做个卷积 区间加法 二项式展开 用$len$表示区间长度,加的$x$的贡献组合数算一下就好了 看代码就知道了 cpp include define RG register define IL inline defi 阅读全文
posted @ 2018-03-21 21:43 Cyhlnj 阅读(161) 评论(0) 推荐(0)
摘要:Sol 设$f[i][j]$表示钦定$i$建基站,建了$j$个基站的最小代价 $f[i][j]=max(f[l][j 1]+\Sigma_{t=l+1}^{i 1}$不能影响到的村庄的$w[t])+c[i]$ 二分处理出每个村庄$p$左右能影响到它的最远的基站设为$L[p], R[p]$ $l,i$ 阅读全文
posted @ 2018-03-21 21:38 Cyhlnj 阅读(194) 评论(0) 推荐(0)
摘要:题目 "传送门" Sol 线段树,维护斜率单增的最高点和长度 更新,以下的都是指斜率 当前点的左儿子更新上来,右儿子递归 如果右儿子的左儿子的最大值大于左儿子的 加上算出右儿子的右儿子的贡献(右儿子贡献减去右儿子的左儿子的贡献),递归右儿子的左儿子 否则,递归右儿子的右儿子 cpp include 阅读全文
posted @ 2018-03-21 21:23 Cyhlnj 阅读(160) 评论(0) 推荐(0)
摘要:Day0 上午考试。。。~~又爆零了~~ 下午讲完题后放假 然后就滚回去收拾行李准备去$ZJ$ Day1 衢州?我怎么从来没听过这个地方。。~~肯定是我见识少~~ 下午 上高铁出发,$3个小时$,看了一下电影,颓了一会儿红警,聊了聊$QQ$,然后就到了 一下车发现一堆$HN$选手来参赛,怎么也有$5 阅读全文
posted @ 2018-03-21 21:12 Cyhlnj 阅读(514) 评论(4) 推荐(0)
摘要:题面 一张图分为两部分,左右都有$n$个节点, $A_i A_{i+1}$连边,$B_{i} B_{i+1}$连边,容量给出 有$m$对$A_i B_j$有边,容量给出 两种操作 1.修改某条$A_i A_{i+1}$的边的容量 2.询问从$A_1$到$B_n$的最大流 $n,mA_{i+1}$的边 阅读全文
posted @ 2018-03-17 17:19 Cyhlnj 阅读(145) 评论(0) 推荐(0)
摘要:题意 将一个长度为$n$的序列分为$k$段 使得总价值最大 一段区间的价值表示为区间内不同数字的个数 $n define RG register define IL inline define Fill(a, b) memset(a, b, sizeof(a)) using namespace st 阅读全文
posted @ 2018-03-17 14:43 Cyhlnj 阅读(679) 评论(0) 推荐(1)
摘要:题面 "传送门" Sol $Manacher$,开桶记录相同半径的有多少 后缀和后乘法原理 cpp include define RG register define IL inline define Fill(a, b) memset(a, b, sizeof(a)) using namespac 阅读全文
posted @ 2018-03-16 22:38 Cyhlnj 阅读(191) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 裸的线性基 当然是选择$log^3$的$st$表+树剖辣 cpp include define RG register define IL inline define Fill(a, b) memset(a, b, sizeof(a)) using namespace st 阅读全文
posted @ 2018-03-16 22:14 Cyhlnj 阅读(191) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 就是选出一些石头,最大化价值,使得这些石头的任意非空子集的标号异或和不为$0$ 而它的线性基任意非空子集的异或和的值域和它是一样的 那么我们按价值从大到小加入线性基,判断是否存在就好了 cpp include define IL inline define RG regis 阅读全文
posted @ 2018-03-16 22:11 Cyhlnj 阅读(136) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 线性基辣 肯定是一条路径然后上面走了若干个环的形式 把每个环丢到线性基里去 询问任意一条$1$到$n$的异或和求解 cpp include define IL inline define RG register define Fill(a, b) memset(a, b, 阅读全文
posted @ 2018-03-16 21:56 Cyhlnj 阅读(135) 评论(0) 推荐(0)
摘要:线性基 有趣的东西 在某次考试时人人都切了一道题时才发现我没学过线性基。。。 是什么 我感觉它就是一个类似于向量基底的东西 线性基中的元素任选几个异或起来是可以表达出原数组中的所有的值的,并且不能搞出其它的数 性质 线性基无论怎么选集合,只要是非空的,异或起来一定不是$0$ 线性基二进制最高位互不相 阅读全文
posted @ 2018-03-16 20:45 Cyhlnj 阅读(312) 评论(2) 推荐(0)
摘要:题面 "UOJ" Sol 玄学,不会势能分析 所以 维护区间最大最小值 把开根变成区间减法 如果最大值开根后的变化量和最小值的相等,就直接打个减法$lazy$ 阅读全文
posted @ 2018-03-16 15:57 Cyhlnj 阅读(216) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 线段树维护区间$DP$ 差分,你会发现就是选一些区间,第一个值可以不一样 那么我们维护原数组左右端点是否选的情况,一共四种 注意差分数组只有$n 1$的长度,并且每个数维护的是两个相邻的原数组的数 cpp include define RG register define 阅读全文
posted @ 2018-03-15 21:50 Cyhlnj 阅读(289) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-03-14 22:29 Cyhlnj 阅读(47) 评论(1) 推荐(2)
摘要:题目 "Bzoj" Sol 神题! 二分所有的白边减去一个值,这样做$kruskal$就会多选一些白边 就这样 二分范围为$[ 101, 101]$!!! 阅读全文
posted @ 2018-03-14 15:37 Cyhlnj 阅读(138) 评论(0) 推荐(0)
摘要:题面 "题目传送门" 在$Bytemountains$有$N$座山峰,每座山峰有他的高度$h_i$ 有些山峰之间有双向道路相连,共$M$条路径,每条路径有一个困难值,这个值越大表示越难走 现在有$Q$组询问 每组询问询问从点$v$开始只经过困难值小于等于$x$的路径所能到达的山峰中第$k$高的山峰, 阅读全文
posted @ 2018-03-13 17:44 Cyhlnj 阅读(126) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 丽洁姐的题目还是棒棒的 考虑二分答案 $Check?$ 把小于它的设为$ 1$,大于等于它的设为$1$ $[a, b]$求一个最大后缀子段和 $[c, d]$求一个最大前缀子段和 $[b+1, c 1]$求一个和 加起来如果大于等于$0$,那么满足要求,这个数还可以变大,否 阅读全文
posted @ 2018-03-12 20:39 Cyhlnj 阅读(153) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-03-12 17:31 Cyhlnj 阅读(12) 评论(0) 推荐(0)
摘要:题意 $n$个数$a[i] ,q$次询问,$n,a[i],q define RG register define IL inline define Fill(a, b) memset(a, b, sizeof(a)) using namespace std; typedef long long ll 阅读全文
posted @ 2018-03-11 22:12 Cyhlnj 阅读(882) 评论(1) 推荐(0)
摘要:题意 给定一个长度为n的数列,有m次询问,询问形如l r k 要你在区间[l,r]内选一个长度为k的区间,求区间最小数的最大值 Sol 二分答案 怎么判定,每种数字开一棵线段树 某个位置上的数大于等于它为1 那么就是求区间最大的1的序列长度大于k 二分的最优答案一定在这个区间内,否则不优 排序后就是 阅读全文
posted @ 2018-03-01 17:52 Cyhlnj 阅读(158) 评论(0) 推荐(0)