Gravatar
┭┮﹏┭┮
积分:4451
提交:907 / 1937

一道好题。


这是一个树形结构,我们可以先拍成 $dfn$ 序,然后对于每个星球,本质上就是在其子树内区间再 删去一些小子树 所构成的一些区间,因为最多 $n$ 个操作,所以区间最多 $\mathcal{O}(n)$ 个,线段树分治,把这些区间插入,然后我们考虑如何求答案。


$y,z$ 是没用的,最终答案即为 $(x_0 - x)^2 + c$,拆开得 $- 2x_0x + {x_0}^2 + x^2 + c$。


我们考虑斜率优化,在看这个式子 $s = - 2x_0x + {x_0}^2 + x^2 + c$,移项得 $x^2 + c = 2x_0x - {x_0}^2 + s$,即点 $(x,x^2 + c)$ 斜率为 $2x_0$,维护下凸包即可,若二分则复杂度是 $\mathcal{O}(n\log^2{n})$,只需将 $x$ 与斜率 $x_0$ 都从小到大排序,我们可以利用单调栈达成 $\mathcal{O}(n\log{n})$ 的复杂度。



题目2305  [CTSC 2016]时空旅行 AAAAAAAAAAAAAAAAAAAA      5      评论
2025-08-11 18:37:14    
Gravatar
aaa
积分:13
提交:5 / 31
×

提示!

该题解未通过审核,建议分享者本着启发他人,照亮自己的初衷以图文并茂形式完善之,请勿粘贴代码。

#include <bits/stdc++.h>

using namespace std;

int main()

{
........................................................................

该题解等待再次审核

........................................................................(剩余 548 个中英字符)

题目4049  [CSP 2024 J]扑克牌 AAAAAAAAAA
2025-08-04 11:28:32    
Gravatar
会放牛的鸵鸟
积分:43
提交:42 / 103
×

提示!

该题解未通过审核,建议分享者本着启发他人,照亮自己的初衷以图文并茂形式完善之,请勿粘贴代码。

include <bits/stdc++.h>

using namespace std;

int gcd(int a,int b) {

   if(b==0) return a;

   else return gcd(b,a%b);

}

int T,M;

int a,b,c,delta;

int k;

int t;

int main() {

freopen("uqe.in", "r", stdin);

   freopen("uqe.out", "w", stdout);

   cin>>T>>

........................................................................

该题解等待再次审核

........................................................................(剩余 2349 个中英字符)

Gravatar
6b6b6b6
积分:78
提交:53 / 64
×

提示!

该题解未通过审核,建议分享者本着启发他人,照亮自己的初衷以图文并茂形式完善之,请勿粘贴代码。

#include<bits/stdc++.h>

using namespace std; <

........................................................................

该题解等待再次审核

........................................................................(剩余 354 个中英字符)

题目3777  [CSP 2022J]乘方
2025-07-18 19:51:28    
Gravatar
会放牛的鸵鸟
积分:43
提交:42 / 103
×

提示!

该题解未通过审核,建议分享者本着启发他人,照亮自己的初衷以图文并茂形式完善之,请勿粘贴代码。

#include<iostream>

using namespace std;


int main()

{

freopen("explore.in","r",stdin);

freopen("explore.out","w",stdout);

int nn;

cin>>nn;

for(int yy=1;yy<=

........................................................................

该题解等待再次审核

........................................................................(剩余 1454 个中英字符)

题目4050  [CSP 2024 J]地图探险
2025-07-13 20:28:33    
Gravatar
会放牛的鸵鸟
积分:43
提交:42 / 103
×

提示!

该题解未通过审核,建议分享者本着启发他人,照亮自己的初衷以图文并茂形式完善之,请勿粘贴代码。

【题目描述】小 A 打算前往一片丛林去探险。丛林的地理环境十分复杂,为了防止迷路,他先派遣了一个机器人前去探路。

丛林的地图可以用一个 n 行 m 列的字符表来表示。我们将第 i 行第 j 列的位置的坐标记作 (i,j)(1≤i≤n,1≤j≤m)。如果这个位置的字符为 x,即代表这个位置上有障碍,不可通过。反之,若这个位置的字符为 .,即代表这个位置是一片空地,可以通过。


........................................................................

该题解等待再次审核

........................................................................(剩余 1074 个中英字符)

题目4050  [CSP 2024 J]地图探险
2025-07-13 19:58:11