08 2019 档案
摘要:一、题目 Turing Tree 二、分析 这题主要还是在区间的处理上。 为了保证区间内的数没有重复的,那么可以对区间按右端点从小到大排序,这样对原数组处理时,尽量保证不重复的元素靠右(可以假设右端点固定考虑),就可以保证区间求出来的值是不重复的,对于重复的就把前面位置出现的这个数减掉(即赋值为0)
阅读全文
摘要:一、题目 Gcd & Lcm game 二、分析 非常好的一题。 首先考虑比较暴力的做法,肯定要按区间进行处理,对于$lcm$和$gcd$可以用标准的公式进行求,但是求$lcm$的时候是肯定会爆$long long$的。 考虑用素数分解,将所有的数分解后,发现素因子的个数有限,且每个因子的幂也有限,
阅读全文
摘要:一、题目 Buy Tickets 二、分析 首先可以明确的是每个人的位置都是定的,那么如果从输入数据从后往前看,最后面的人进来的时候,他前面的人数肯定是定的。 那么可以考虑,当从后往前推时,这个人插入的位置就是他前面有多少空位,假设他的位置比空位数少,那显然是不可以的,如果他的位置比空位多,那么后面
阅读全文
摘要:一、题目 Huge Mission 二、分析 区间更新,用线段树的懒标记即可。需要注意的时,由于是在最后才查询的,没有必要每次更新都对$sum$进行求和。还有一点就是初始化的问题,一定记得线段树上每个点都需要初始化。 三、AC代码
阅读全文
摘要:一、题目 Sticks Problem 二、分析 对于$i$和$j$,并没有很好的方法能同时将他们两找到最优值,所以考虑固定左端点$i$。 固定左端点后,根据题意,$a[i]$是最小值,那么现在的问题就转化成了求以$a[i]$为左端点最小值的范围内,找到一个最大值$a[j]$的$j$,然后相减就是以
阅读全文
摘要:一、题目 Common Subsequence 二、分析 比较基础的求最长升序子序列。 $DP[i][j]$表示的是字符串$S1[1...i]$与$S2[1...j]$的最长公共子序列长度。 状态转移:$$if s1[i] == s2[j] DP[i][j] = DP[i-1][j-1] + 1$$
阅读全文
摘要:一、题目 The Triangle 二、分析 动态规划入门题。 状态转移方程$$DP[i][j] = A[i][j] + max(DP[i-1][j], DP[i][j])$$ 三、AC代码
阅读全文
摘要:一、题目 【XR-3】核心城市 二、分析 题意就是在树中确定$K$个点,满足剩下的$N-K$个点中到这$K$个点的最大距离尽可能小。 理解上肯定是确定一个根,这个根是这个图的中心。 可以通过根据结点的高度,从树的外层一层一层往里面剥,那么每次剥的结点一定是队列里比较靠外的,且加进去的点要么和他同层,
阅读全文
摘要:一、题目 Code 二、分析 题目描述了一大堆东西,就是想问二维空间里,能不能确定$d w_1 w_2$使得函数满足$f(x_1,x_2) = y$,并且$sign(x)$函数是一个信号函数,只取3种值。 那么将函数拆开其实就是$d + w_{1}x_{i_1} + w_{2}x_{i_2} = y
阅读全文
摘要:一、题目 Welcome Party 二、分析 最开始的时候分析错了,认为只要找两个类型中的最小差值就可以了,忽略了是求两个类型中最大值的最小差值。 那么可以对第一个类型进行从大到小排序,枚举这个类型的最大值,那么,枚举过的这个类型的人就不再选这个类型的值,而是选第二类型。 考虑对第二个类型处理,枚
阅读全文
摘要:一、题目 Valentine's Day 二、分析 假设$ s_0 $代表不开心的概率,$ s_1 $代表开心一次的概率。 那么随便取一个物品,那么它的开心概率为$ p _i $,可以推导加入之后使女朋友不开心和开心一次的概率为$$ s_0 = s_0(1-p_i) $$ $$ s_1 = s_1
阅读全文
摘要:一、题目 albus就是要第一个出场 二、分析 非常有助于理解线性基的一题。 构造线性基$B$后,如果$|A| > |B|$,那么就意味着有些数可以由$B$中的数异或出来,而多的数可以取或者不取,相当于每多一个数,那么线性基能生成的数的子集的种类就可以乘以$2$,最终就是乘以$2^{|A|-|B|}
阅读全文
摘要:一、题目 [Wc2011] Xor 二、分析 比较有意思的一题,这里也学到一个结论:$1$到$N$的任意一条路径异或和,可以是一个任意一条$1$到$N$的异或和与图中一些环的异或和组合得到。因为一个数异或自己等于$0$。 对于这题,需要把所有的简单环先全部求出来,可以用$DFS$,然后用任意一条$1
阅读全文
摘要:一、题目 XOR 二、分析 给定$N$个数,问它的任意子集异或产生的数进行排列,求第K小的数。 构造出线性基$B$后,如果$|B| < N$,那么代表N个数中有一个数是可以由线性基中的其他数异或出来的,那么相当于可以异或出$0$。也就是说这种情况下会多一个0作为最小数。 然后对于第$K$大,可以直接
阅读全文
摘要:一、题目 SETI 二、分析 给定一个模数,一串字符串,字符串长度为N,相当于是N个方程的答案,而这N个方程中有N个未知数,要求的就是这N个未知数的值,很显然的高斯消元,遇到模数和除法,用逆元就好。 三、AC代码
阅读全文
摘要:一、题目 Kind of a Blur 二、分析 题目读起来挺费劲的。 主要就是要求一个矩阵,其中每个点及其于这个的曼哈顿距离小于D的点的值总和的平均值就是新生成的矩阵。 给定新生成的矩阵,求初始矩阵。 相当于就是一个点的值与多个点的值相关联,那么列一个(WH)列,(WH)个未知数的方程组,然后解方
阅读全文
摘要:一、题目 A + B = C 二、分析 比较考验码力的题。 对于$c$,因为首位肯定不为0,那么$a$或者$b$至少有一个最高位是和$c$平齐的,或者少一位(相当于$a$+$b$进位得到)。 那么这里,我们可以分四种情况 1 让$a$与$c$变为等长$A$和$C$ 等长后判断$R = C - A$是
阅读全文
摘要:一、题目 Final Exam 二、分析 题目说的比较绕,总之一定要记住,$n$个题目都可以做,至少作对$k$到,但是做题目的人不知道每道题对应的分数。 作为出题人,如果他是田忌,肯定不会去在做题目的人可能会做对的$k-1$道题目上去放分,这样的话出题目的人可以使剩下的$n-k+1$道题的分尽可能大
阅读全文
摘要:一、题目 Kejin Player H 二、分析 因为在当前等级$i$,如果升级失败可能会退回到原来的某一等级$x$,相当于就是失败的期望就是$E + (Sum[i-1] - Sum[x-1]) + a$,所以可以推导出当前期望的公式$$E = {a}\times{p} + {[E + (Sum[i
阅读全文
摘要:一、题目 P1962 斐波那契数列 二、分析 比较基础的递推式转换为矩阵递推,这里因为$n$会超出$int$类型,所以需要用矩阵快速幂加快递推。 三、AC代码
阅读全文
摘要:一、题目 D. Yet Another Subarray Problem 二、分析 公式的推导时参考的洛谷聚聚们的推导 重点是公式的推导,推导出公式后,分块是很容易想的。但是很容易写炸。 1 有些地方容易溢出,这和设置的无穷大的值的大小也有关。 2 如果每次确定了边界$r$,那么在枚举$m$的余数的
阅读全文
摘要:一、题目 OpenStreetMap 二、分析 对于二维空间找区间最小值,那么一维的很多好用的都无法用了,这里可以用单调队列进行查找。 先固定一个坐标,然后进行一维的单调队列操作,维护一个区间长度为$b$的最小值,可以确定一个数组$ans$。 对于新数组,进行另一个维度的单调队列操作,找到$a*b$
阅读全文
摘要:一、题目 Path 二、分析 首先肯定要求最短路,然后如何确定所有的最短路其实有多种方法。 1 根据最短路,那么最短路上的边肯定是可以满足$dist[from] + e.cost = dist[to]$。所以可以求一遍后根据这个公式再向网络图中的加边即可。 2 可以从源点和汇点分别求最短路,然后根据
阅读全文
摘要:一、题面 Drainage Ditches 二、分析 网络流的裸题。 1 Edmonds-Karp算法 求解网络流其实就是一个不断找增广路,然后每次找到一条增广路后更新残余网络的一个过程。 EK算法主要就是用bfs去找增广路,然后不断更新残余网络得到最终答案。 2 Dinic算法 对于Ford-Fu
阅读全文
摘要:一、题目 TDL 二、分析 题意就是找一个$n$满足题目中的公式,找不到就输出$-1$。 对于$${( f (n,m) - n )} \oplus {n} =k$$ 可以转换一下变成$( f (n,m) - n ) = {k} \oplus {n}$,而对于$f (n,m) - n$可以打表看一下,
阅读全文