绕远的路,总有风景。
追踪最近的用户名外显变动记录。
最近的文章、讨论、云剪贴板与社区记录
数据生成器 ``` #include #define int long long using namespace std; int n,m,k; signed main() { ios::sync_with_stdio(false); cin.tie(0),cout.tie(0); srand(time(0)); fr…
在讨论《幽默MX,n^2过百万》回复:
这不是 $O(n^2 \log n)$ 的吗
我用如下的两段代码搜出了所有可能的二元状态。 ```cpp void dfs(int x,int y) { idx[{x,y}]=++cnt,to[cnt][0]=0,r[cnt]=y; int z=max(b[x],y+1); if(z =1;i--) { while(a[j-1]-a[i]>m) j--; b[i]…
在讨论《求正解》回复:
可以用连个对实现,一个存$f_j+t2 \times j \leq i \times k$的 $j$,$f_j+t2 \times j > i \times k$的 $j$,显然元素只可能从第二个堆进入第一个堆,然后从两个堆里选最小值即可。
在讨论《求正解》回复:
把 ```cpp max(f[j]+1ll*t2*j,1ll*i*k) ``` 拆开然后堆优化,可以 $O(n\log n)$ 实现
在讨论《关于这题加强版》回复:
赛时我真就往这个方向想了,把这题难了
在讨论《关于这题加强版》回复:
恰好那题我做过
在讨论《关于这题加强版》回复:
赛时没有用n/2的特殊性,打了100行左右,实现好麻烦,大样例最慢点0.8s,希望能过。
在讨论《看看我发的工单呗》回复:
@[chen_zhe](luogu://user/8457)
为什么 ```cpp cout #define int long long using namespace std; const int maxn=1e5+10; int n,m,k,s1,t1,s2,t2,sum; int d[maxn]; bool vis[maxn]; vector g[maxn]; queue…
在讨论《权值SGT不用离散化(》回复:
@[fairfriendZ](luogu://user/862865)可以动态开点
在文章《题解:P14148 错觉》发表评论:
「朝花」在耳畔飘落,我「残缺」的「错觉」告诉这道题非常「荒谬」。
在文章《AT_abc397_f 题解》发表评论:
@elpsconr 同理,从左到右,从右到左,各做一遍移动端点即可
在讨论《我奇妙的 CSP-J/S1》回复:
@[wuzebang2009](luogu://user/1501877) 我J 97,S 91
在文章《题解:CF2144E2 Looking at Towers (difficult version)》发表评论:
哇,跟我做法一样
在文章《题解:CF2144E2 Looking at Towers (difficult version)》发表评论:
我有个不用线段树的办法,等题解过审
我居然独立做出了 Div2E2,必须写波题解。而且感觉官解太麻烦了,给一个不用线段树的简单做法。 首先我们可以吧 $L$ 和 $R$ 序列弄出来。然后一眼 dp。定义 $dp1_i$ 表示 $i$ 是 $1$ 到 $i$ 该元素第一次出现位置的方案数,$dp2$ 就是反过来。这是从前往后做,从后往前做同理。 直接考虑…
和同学的AC代码没拍出问题,但68pts。 ``` #include #define int long long using namespace std; const int maxn=2e5+10; int n,pos,cnt,pp,cc,tot; int a[maxn],mx[maxn],ans[maxn]; si…
在讨论《数据过水?》回复:
两种都是对的吧,可以理解为把一个遍历顺序倒着走了
根据数据 $E=\sum\limits_{i=2}^{n} d(p_{i-1},p_i) \times w_i$应该为$E=\sum\limits_{i=2}^{n} d(p_{i-1},p_i) \times w_{p_i}$
在讨论《如果你30pts》回复:
前提是x的最低位是从0开始的