随笔分类 - 题解篇
摘要:https://www.acwing.com/problem/content/description/2070/: 首先我们考虑两个数拼接:a[i] + a[j] 实际上就是$a[i] * 10^{length(a[j])} + a[j]$ 即有:$a[i] * 10^{length(a[j])}
阅读全文
摘要:预估难度: 签到题:学长的温馨提示,maomeng的mimi和miaomiao,maomeng简易版消消看。 简单题:A君的音乐游戏,集训队预备队点名,学不会了,levil的三角形问题,1 ~ n的二进制表示中1的个数 较难题:A-B Problem,levil的叠数游戏,levil的外挂,levi
阅读全文
摘要:看了一眼题,内行OS:不就是一个线段树板子题吗,随便过。 仔细读题:好像不太对劲。 分析了一段时间,可以主席树维护i的时间线,然后维护i + a[i]的最远距离就行了。 // Author: levil #include<bits/stdc++.h> using namespace std; typ
阅读全文
摘要:这题非常好。 dp[i][j][3] - 以i为根的子树保护了j个点的方案数,0 - 未放置自己,且没被子节点保护,1 - 未放置自己,被子节点保护,2 - 放置了自己. 这里的转移从所有子节点的状态转移过来来想比较好。 这里主要有一点就是会存在增加新节点的情况。 1:自己没有放置,但是被子节点覆盖
阅读全文
摘要:无语,调试的煎熬.. 数列分块入门 9 求区间的最小的出现最多次数的数。 这里很显然先处理出块与块之间的最小众数,然后两边的残余块暴力就行。 如何高效找两边的,这里就用到了二分,首先要对数离散化,然后值的容器里存位置,然后直接用查询的区间去二分,这样就能找到给定的区间里有多少个了。 PS:预处理写错
阅读全文
摘要:1: #include<algorithm> #include<stdio.h> #include<iostream> using namespace std; const int maxn = 3e5+6; int x[maxn],y[maxn]; int w[maxn]; int flag[ma
阅读全文
摘要:B: #include<bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<double,int> pii; const int N = 1e6+5; const int M = 1e6+5; const LL
阅读全文
摘要:C题: 比赛的时候已经想到了统计最底层的每个序列的出现次数,但是一开始想的是建图之后dfs处理,但是发现很难处理出来。 其实正确的思路是拓扑排序去处理次数。 我们在最后建图完成之后,倒着从n回去拓扑即可。 但是这里有个坑点,就是一开始统计入度可能是不正确的。 例如:3(1 , 2), 4 (1 ,2
阅读全文
摘要:查询回文子串个数: #include<bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<double,int> pii; const int N = 3e5+5; const int M = 1e6+5; c
阅读全文
摘要:求区间的素数个数。 可以构造一个积性函数f(i) = 1. 然后Min25筛统计质数和即可。 这里习惯性把F(x)写成了prime[i],其实应该是1. 对Min25的理解又加深了很多~ #include<bits/stdc++.h> using namespace std; typedef lon
阅读全文
摘要:这题就是Min25筛素数和。 但是一直TLE,然后调试了很久,发现如果在计算素数和的过程中取模,就会导致超时。(离谱) 给出解决思路:n = 1e11,里面的素数和不会爆longlong,所以对在求解素数和的时候,不需要去取模,最后对答案取模就行。 至于求解素数和:可以看成求解f[i] = i的质数
阅读全文
摘要:列车调度 (25分): 这题被之前做过的一个列车的题误导了,一直以为是栈的运用,就一直在思考栈的方向,最后挂了.. 思路: 因为是递减出去,所以肯定是大的列车先出去,所以,对于每个车,要开辟新的位置来存放它,就是后面有比他大的。 因为如果比他大的插入在某个位置后面,那个大的值显然不是队首,不能先出去
阅读全文
摘要:sleep函数: 其实这题想考察的是欧拉函数的性质。但是后面发现,其实光看也能明白了。 对于一个质数,在[1,x)里的所有数肯定和他互质即y = x-1,那么他的sleep函数值肯定是x - (x-1) = 1。 对于一个非质数的数,他的y肯定<x-1。那么这个题就转变为求区间内的最大质数。 没有怎
阅读全文
摘要:Fluctuation Limit 寻找可行域的问题。 我们需要做的就是不断去缩小这个区间,来使得最后可以满足正向区间和反向区间。 首先,对于i位置为[L,r]。那么i+1肯定要满足[L-k,r+k]。之外就无解。 对于i+1为[L,r],i肯定要满足[L-k,r+k],所以我们正向查找一次,反向查
阅读全文
摘要:Increasing and Decreasing 显然是一个构造的题,对于下降序列,我们用最后y的数来组成拼在后面。 对于x的上升序列。 我们要用剩下的数来拼凑成x-1个块(因为最后下降的块肯定比前面大)。 每个块里的元素都是下降序列即可。 为了最小化字典序,我们尽量让起前面的块尽可能小,注意的是
阅读全文
摘要:Path: 题意:用最少的代价,删除一些边,使得最短路变长。 思路: https://blog.csdn.net/jerry99s/article/details/96907292(大佬讲得非常好) 我们将所有最短路上的边,建立一张新的图。 以1为源点,n为汇点。求最小割。 这时的最小割即为最小花费
阅读全文
摘要:前言:高处不胜寒,但贵在坚守。 Divisibility 题解上都是从结论出发去证明的。但我觉得一开始不可能都知道结论。所以稍微从思考角度出发 可以发现$y = c1* b^{n-1} + c2 * b^{n-2} + ... + cn * b^{0}$ 那么对于无限的f(y)操作,可以发现每次都是
阅读全文

浙公网安备 33010602011771号