A. 小P的2048 模拟.....又没啥可说的,以后要认真打打模拟题了... B. 小P的单调数列 考场$n^2log(n)$的SB思路有人听吗 正解当然不是这样, 事实上我们每次选取的只有一段区间,或是两段区间 假设三段区间$a,b,c$,假设$(a+b)/2>(a+b+c)/3$得出$(a+b)/2>c$ 假设$c>(a+b+c)/3$得出$c>(a+b)/2$,也就是说我们我们不如选一个或两个区间优 其实自己想想也发现我们选多个区间不如选其中最大的一两段值更大 然后就很简单…
题意:给你n个数字,每个数字可以加减任何数字,付出变化差值的代价,求最后整个序列是严格单调递增的最小的代价. 首先我们要将这个题目进行转化,因为严格单调下是无法用下面这个dp的方法的,因此我们转化成非严格的,对严格下而言,a[j]-a[i]>=j-i,那么得到a[i]-i<=a[j]-j.这样,我们令a'[i] = a[i] - i,就可以得到a'[i]<=a'[j].这样我们就把问题转化成求这样一个非严格单调的序列了. 将整个序列排序后构成一个新的数组b[i],用dp[i][j]来表示…
博客大概咕了很久了......... T1 A 大概推下式子就好了,考试时数据点分治DFS前30点T了,然后后70分因为两数相乘爆long long然后本来可以A掉,就WA零了....... 式子推出来肯定能化成S*B^n+A*B^x+A*B^y......... 我们可以看出划出这样的式子,那么首先肯定要乘n次,即S乘的B的系数,然后加的操作就是剩下式子的系数和 当然n是大于x,y.....因为S是肯定要被乘最多次的 然后在求系数时考虑求lca的那种打法 如果确定T-S*B^n可以整除A那么肯…
A. Dove 打扑克 考场思考半天线段树树状数组,没有什么想法 打完暴力后突然想到此题用链表实现会很快. 因为只有$n$堆,所以设最多有$x$个不同的堆数,那么$x\times (x-1)/2==n$, 所以链表中最多有$\sqrt{n}$个元素, 所以可以用一个$set$维护当前的出现元素,每次$upper\_bound$找到合适位置插入链表, 因为当前元素有序所以可以统计链表后缀来求答案 知识点: 不要在T1花太长时间,数据结构题可能只用到一些简单数据结构 B. Cicada 与排序 很好…
我又被虐了... A. 最长不下降子序列 考场打的错解,成功调了两个半小时还是没A, 事实上和正解的思路很近了,只是没有想到直接将前$D$个及后$D$个直接提出来 确实当时思路有些紊乱,打的时候只是将前两个及后两个循环节提出来, 因为该题中$D$的范围很小,因此最长公共子序列中最多只有$D$个不同的数 所以我们可以想到中间的一段相同的数一定是可以移成中间的一段数,本质是一样的 B. 完全背包问题 没想到是到图论题啊啊 考虑到$w$的范围很大,然而$v$的范围很小,于是我们开始转化原来的$DP$方…
A. 梦境 没啥可说的原题.... 贪心题的常见套路我们坐标以左端点为第一关键字,右端点为第二关键字 然后对于每个转折点,我们现在将梦境中左端点比他小的区间放进$multiset$里 然后找最近的右端点, 然后没了...... 思路总结: 1.贪心套路,坐标排序,最优性选择 2.再有原题一定要赶紧打 B. 玩具 大神题,我考场再也不敢肝期望了kukuku 定义三个数组 $dp_{i,j}$表示当前森林中有$i$个点,然后有$j$个点在第一棵子树的概率 $f_{i,j}$表示当前树有$i$个点,深…
菜鸡wwb因为想不出口胡题所以来写题解了 A. chess 昨天晚上考试,有点困 开考先花五分钟扫了一边题,好开始肝$T1$ 看了一眼$m$的范围很大,第一反应矩阵快速幂?? $n$很小,那么可以打$n^4$的DP, $10min$过去了,好像就是一个$DP$啊,随便乘个组合数就好了, 最后距离考试$20min$时,因为瞎取模,把自己的$AC$覆盖了kukukuku 正解的话,首先对于第一列而言,第$1+n$列的放的$C$的个数与他相同 但是因为只知道数目我们乘上组合数就好 $f_{ij}$表示…
A. Simple 本来以为很难,考场瞎推了推好像会了...... 想起小凯的诱惑,迷?? 首先$n$,$m$,$q$同除$gcd(n,m)$,显然$q$以内的数假如不是$gcd$的倍数,那么一定不能被表示 然后在求新的$q$以内不能被表示的数 因为现在$n$,$m$互质,所以$n\times m$至q的数一定能被表示,我们就把范围缩小到$min(n*m,q)$以内 因为在$n\times m$以内,所以取不同$n$,$m$系数时结果不同 所以就因为$m$很小,直接枚举$m$的系数,最多枚举$n…
好久没碰到这么友好乱搞的题了.... A. 数列 考察的是exgcd的相关知识,最后的答案直接O(1)求即可 B. 数对 本来以为是原题,然后仔细看了看发现不是,发现不会只好乱搞骗分了 事实上直接按$a+b$为第一关键字,然后就是原题了..... C. 最小距离 事实上这道题的思路还是不错的,考场上联想树上直径问题于是想到了 观察数据范围,我们好像只能跑一遍最短路 那么如何在一遍中求出$p$个点的距离,可以记录一个$pre_{i},dis_{i}$分别表示i节点到任意源点的最短距离,和源点是谁…
A. 毛一琛 考虑到直接枚举的话时间复杂度很高,我们运用$meet\ in\ the\ middle$的思想 一般这种思想看似主要用在搜索这类算法中 发现直接枚举时间复杂度过高考虑枚举一半另一半通过其他算法统计,保证两边互不影响 今天的题我们考虑枚举先枚举左半部分,然后每个物品有三种取值情况 选入A集合,选入B集合,不选,系数不同 考虑完左半部分再去考虑右半部分,那么我们可以用哈系表先从将左半部分的答案统计出来 然后右半部分查询他的相反数注意去重 也可以用将两边状态都用结构体存下来 注意去重 思…