。。。
追踪最近的用户名外显变动记录。
最近的文章、讨论、云剪贴板与社区记录
一眼题。 首先把 $n$ 页书排到一个 vector 里面。 考虑两个字符串的比较过程: 1. 逐位比较字符。如果相等,那么继续比较,否则按照字典的顺序排。 2. 如果一直比较到了其中一个字符串的结尾,那么短的字符串排在前面。 按照这样的方法,我们可以得出一些字符之间的大小关系。 考虑建图。假设字符 $x$ 比 $y$…
考虑二分答案。问题相当于求出 $\displaystyle\sum_{i=1}^x [\gcd(i,p)=1]$。 然后莫比乌斯反演。 $$\begin{aligned} \sum_{i=1}^x[\gcd(i,p)=1] &=\sum_{i=1}^x \sum_{d \mid i,d \mid p} \mu(d) \…
为什么题解区全部都是可以过 F2,F3 的做法啊?这里来一个只能过 F1 的做法。 我们提前把字符串两两之间的 $\operatorname{lcp}$ 求出来,然后直接暴力枚举子集。注意枚举时如果不是 $k$ 元子集直接跳过。 时间复杂度:$O(C_{n}^k k^2)$。可以通过本题。 ```cpp void so…
**温馨提示:本人的代码较长,思路较繁,请谨慎阅读。** 很明显的线段树维护最大子段和,先处理出每一个小数组的数据,在放到线段树上面合并即可,合并方式参见 [GSS1](https://www.luogu.com.cn/problem/SP1043)。 但是这题有一点比较坑,这题中选出来的最大子段不能为空,于是我们需要…
写了一个不需要打表的程序,以 $9843 \operatorname{ms}$ 获得了全球最劣解。 记号说明: 1. $f(i,j)$ 为第 $i$ 个与第 $j$ 个字符串拼接后的本质不同的子串个数。 D1 只需要随便打几个字符串就可以了。但 D2 就无法像这样直接随机。经过我的尝试,我的程序最多只能随机出 $n=2…
非常妙的好题。 首先容易发现 $[x,y]$ 满足要求的必要条件是:在 $[x,y]$ 中的数的个数比不在 $[x,y]$ 的数的个数至少多 $k$。(每个区间都至少多一个)。可以用二分找出最小的 $y-x$。下面我们都假定已经求出了 $x$ 和 $y$。 然后我们需要发现一个结论:这个必要条件同时也是充分条件。 证明…
非常简单的贪心题。 显然这个子序列肯定是这样的: 1. 先选大的数,再选小的数 2. 每一次会尽量把当前那个数选完 于是我们可以把 $a_i$ 离散化,并把 $a_i$ 出现的位置放在 vector 中。 然后把询问离线下来,按照 $k$ 的大小从小到大排序,方便我们一个一个加数来计算答案。令 $f_i$ 表示 $a_…
在讨论《【更新预告】新版题目界面》回复:
qpzc
简单前缀和优化 dp 题,写了 $20$ 分钟就过了。 首先肯定要预处理出每一行的前缀和。用 $sum_{i,j}$ 表示 $\displaystyle\sum_{i=1}^j a_{i,j}$。 接下来可以设计 dp。设 $dp_{i,j}$ 为当前在第 $i$ 行选了 $j$ 个数的最大值。那么 $$dp_{i,j…
```cpp #include #define int long long #define fi first #define se second #define pii pair #define endl '\n' #define pb push_back #define ls(p) ((p) 0?(x):(-(x))…
拓扑排序模板题。 用 $p_i$ 与 $p_j$ 的关系建图。如果 $g_{i,j}=1$,那么连 $i \to j$,否则连 $j \to i$。然后拓扑排序。答案即为排序后的顺序。 ```cpp void sol(){ int n; cin>>n; for (int i=1;i >c; a[i][j]=c-'0';…
纯纯搞笑题。 把每一次操作后剩下的矩阵存下来($x$ 左右端点,$y$ 左右端点),然后对每一个棋子计算它的贡献,显然可以二分出它最后出现在哪里,那么这个棋子就算当时删矩阵的那个人,即后面一个 ```cpp const int N=2e5+5; int x[N],y[N]; struct node{ int lx,rx…
在讨论《求助推式子》回复:
@[Prean](luogu://user/160839) thx.我最近推出来了。
赛时写了一个超级复杂的代码。 首先考虑直接暴力递归,但是这样的代码在最坏情况下是 $O(n)$ 的,所以我们可以考虑一下优化。 当我们递归时,我们需要分别计算左区间和右区间,但是我们其实可以只算出来其中的一个区间,然后推出另外一个区间。 下面分 $2$ 种情况考虑。 1. $2 \mid len$ 设当前递归到的区间为…
有史以来最水的 D。 首先考虑不操作时怎样能使 $P$ 最大,很明显是当 $a$ 和 $b$ 都升序排序的时候,由于 $b$ 可以任意顺序排列,所以相当于可以任意匹配 $a_i$ 和 $b_j$。 然后考虑修改后的情况。由于 $op=1$ 与 $op=2$ 的情况类似,所以下文只考虑 $op=1$ 时的情况。 我们设…
在讨论《LGR-212 赛时答疑帖》回复:
qp
在讨论《求助推式子》回复:
@[masterhuang](luogu://user/365021) thx.
这是蓝?????? 首先把 $v(l,r)$ 转化成 $(\sum_{i=l}^r s_i) \bmod 9$。然后前缀和预处理,后面可以 $O(1)$ 查询。 考虑到 $w$ 固定,所以把所有长度为 $w$ 的子串的 $v$ 值插入到一个 map 中。然后暴力枚举 $v(L_1,L_1+w-1)$ 和 $v(L_2,…
非常简单的 dp。 只需要暴力枚举每一个区间,然后判断合法后直接转移即可。 但是普通的判断合法会 TLE,需要预处理出每一个数在整个数组里的出现次数,然后把一个区间里的数全部插入到 set 中,遍历 set,如果在区间中出现次数等于整个数组中的出现次数,那么下次就不用判断,直接 erase,否则这个区间是不合法的。 另…
# 规则 在 vjudge 上举行的练习赛,rk1 +4,rk2 +2,rk3 +1,另外,每获得一个首杀,积分 +那场比赛人数。 # 成绩 ## 总分 |比赛名称|hjs|zhr|xzx| |:-:|:-:|:-:|:-:| |$R1$|$2+2 \times 2=6$|$4+2 \times 2=8$|$0+0=0…
愚蠢至极的题目。 对 $n$ 进行分类讨论。 1. $n=0$ 任意输出一组。 2. $n=1$ 设那个数为 $x=a_1$,且为最小的数。 再设 $a_2=x+b,a_3=x+c,a_4=x+d$,那么有: $$d=x+\frac{b+c}{2},b+c=d$$ 解得 $b=c=2x,d=3x$。代入输出即可。 3.…
搞笑推式子题。 下文用 $x$ 和 $y$ 来代替 $n$ 和 $m$。 不妨设 $x \le y$,根据 [小学奥数题](https://www.luogu.com.cn/problem/P2241) 的结论,正方形的个数为: $$xy+(x-1)(y-1)+(x-2)(y-2)+\cdots = x^2 y-\fr…
根号分治模板题。 对于这种题目,直接暴力显然是不行的。于是要用到根号分治。 根号分治的基本思路就是设一个阈值 $B$,然后根据询问的大小分 $2$ 种情况讨论: 1. $d \ge B$ 这种情况下直接暴力。 ```cpp if (d>=B){ int ans=0; for (int now=s,i=1;i<=k;no…
非常简单的贪心题目。 每一次找出最大的数,然后一直 $x \gets \lfloor \frac{x}{2}\rfloor$,直到集合中不存在 $x$,然后把 $x$ 插入到集合中。 当这样操作到 $x=0$ 时都无法插入,直接结束程序。 集合可以用 set 维护,时间复杂度:$O(n \log V)$,可以通过本题。…
简单题。 注意到答案与数根本没有关系,从而想到先把数从大到小排序。 接下来我们一个一个填数,由于字典序要最大,所以第一位肯定填最大的数。 注意到 $\gcd(x,y) \le \min(x,y)$,于是可以在此基础上构造。令 $ans_i=\text{比 } \displaystyle\max_{j \mid i,j…
在讨论《关于宏定义》回复:
@[Alex866](luogu://user/1180206) @[EasonLiang](luogu://user/392626) thx.
rt,如果我写出以下代码: ```cpp #define abs(x) ((x)>0?(x):(-(x))) cout<<abs(-114514)<<endl; ``` 那么 ```abs``` 调用的是宏定义还是 ```cmath``` 库里的 ```abs``` 函数?
在讨论《求助傻逼C2怎么做》回复:
我是直接枚举 $m/x-1000 \sim m/x+1000$ 的。
一道很有意思的题目。 结论:问 $1$,$11$,$10$ 的个数。 我们可以把连续的 $0$ 和 $1$ 都缩成 $1$ 个 $0$ 或 $1$。经过这样的操作后,整个字符串变成了 $0$ 和 $1$ 交替的样子。 于是可以想到计算出 $1$ 的段数。设 $x$ 为 $1$ 的个数,$xx$ 为 $11$ 的个数,容…