摘要: 先说线段数做法 发现一个区间连续有一个性质:这个区间\([l,r]\)存在相邻两个数的对数是\(r-l\) 考虑离线下来,线段数维护每个区间存在相邻数的对数,当前是\(i\),每次扫描新的一个\(a[i]\)进来,因为我扫描线是钦定了以\(i\)位右端点,所以若\(a[i]-1\)的位置在\(a[i 阅读全文
posted @ 2024-07-03 14:06 dolphina 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 咕了2天才写的题解 还是比较经典的题目,分治处理网格图最短路 离线下来,利用分治的思想,用一条线把网格图平均劈成两半,每次只考虑询问在两块的一对点,所有的线必须经过直线上的一个点,于是我把线上所有点都在规定范围内跑一次dijkstra,最后直接算答案,显然我想让最短路跑的次数最小,每次选较短的边作为 阅读全文
posted @ 2024-07-03 09:33 dolphina 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 牛逼套路 看inf眼都不会,看眼题解就会了(bushi 题目让我们求一堆点按某种顺序排列后相邻点曼哈顿距离总和小于等于\(2.5\times10^9\) 然后很牛的东西:把坐标\((x,y)\)当作区间\((l,r)\),那欲求式就等于每一个区间的\((l_1,r_1)\)移到另一个相邻区间的\(( 阅读全文
posted @ 2024-07-02 20:26 dolphina 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 牛逼贪心题 假设都是将总和正的变成负的,所以如果总和是负的,val取相反数 对于二进制操作,我们一位一位考虑,想让其二进制下1的个数最好变成奇数,只能选一个数保留哪些1,所以我们保留一个1就能乘上-1,改变了奇偶性。贪心满足无后效性,最优子结构,局部最优解为全局最优解,我们尝试将一个数二进制下最高位 阅读全文
posted @ 2024-07-01 08:03 dolphina 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 搞了很久,题解区有线段树爆改pushup高妙做法 说下cdq分治 先将点都按横坐标从小到大排序,cdq分治,那我们现在只需要考虑分治过程中\([l,mid]\)和\([mid+1,r]\)互相形成的合法点对,显然左边的横坐标都小于右边的横坐标。能够发现,如果右边有一个点插在一对本来合法的点之间,那么 阅读全文
posted @ 2024-06-30 21:18 dolphina 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 不会写绿题 对于循环移位有种重要的性质,就是每个数的相对位置不会改变,也就是它前面那个数不会变,第一个数前面就是最后一个数 那么我在一个混乱的数列中想找到排列\(p\)的循环移位,那就是从一个数开始往后跳,寻找在p中前一个数,然后跳n-1次就可以了,所以直接倍增,开个ST表记录能往后跳的,尽可能往右 阅读全文
posted @ 2024-06-29 16:58 dolphina 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 根号分治一波,小于根号n的暴力多重背包然后同余下标前缀和优化 大于根号\(n\)的是本题亮点,无论是你单调队列还是二进制拆分都多个\(log\)过不了,所以利用题目的性质,发现他们的体积都连续且小于\(n\),,然后这里有个新颖的牛逼东西——一个连续的数列总是能通过如下方式生成: 加入第\(i\)个 阅读全文
posted @ 2024-06-29 15:38 dolphina 阅读(1) 评论(0) 推荐(0) 编辑
摘要: !!! 普通的树形背包 for(int v:nbr[u]){ ... for(int i=0;i<=siz[u]) for(int j=0;j<=siz[v]) ... siz[u]+=siz[v]; } \(O(n^2)\) 然后还有这个: for(int v:nbr[u]){ ... for(i 阅读全文
posted @ 2024-06-28 15:23 dolphina 阅读(0) 评论(0) 推荐(0) 编辑
摘要: \(dp[i]\)表示前\(i\)个数的答案,直接列出DP,拆开,有\(dp[i]=\sum\limits_{j=1}^{i-1}{dp[j]}\times\max\limits_{k=j+1}^{i}{a[k]}-\sum\limits_{j=1}^{i-1}dp[j]\times\min\lim 阅读全文
posted @ 2024-06-28 08:46 dolphina 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 能够发现我每次把最大的放两边会比较好,但是不知道放哪边,因为放不同的边给后续带来的影响不同 只能DP,能够发现一堆数假设放最右边都比较优秀,那显然这堆数在最右边怎么摆放,所带来的距离都是相等的,但是由题目可知,距离前乘上\(a[i]\)这个量,显然我让大的\(a[i]\)前面乘以的距离多会更优秀 那 阅读全文
posted @ 2024-06-27 20:26 dolphina 阅读(2) 评论(0) 推荐(0) 编辑