The first one.
by liuyi0905 @ 2024-04-17 07:16:31
@[wwqwq](/user/669919) 第二个
by DFs_YYDS @ 2024-04-17 07:35:38
第一个
第二个是我曾经的马蜂,但是这样的话括号就还要专门换行,我觉得浪费时间。
但是马蜂这个事情你自己看着顺眼就好了,OI 又不考你的马蜂。
by Igallta @ 2024-04-17 07:48:33
@[wwqwq](/user/669919) 1
by __ycx2010__ @ 2024-04-17 08:09:41
2
但是没必要,自己喜欢就好
by starback24 @ 2024-04-17 08:16:34
都不好看,这样好看
```cpp
#include<bits/stdc++.h>
using namespace std;
int main(){int a,b;cin>>a>>b;cout<<a+b;}
```
不要杠为什么不压成一行两行,压行不是为了压行本身,而是为了方便和可读性
by hgckythgcfhk @ 2024-04-17 10:18:34
@[hgckythgcfhk](/user/692274)
所以这个压法可读性真的很强吗qwq
by _qingshu_ @ 2024-04-17 11:01:30
@[_qingshu_](/user/602803) 这是我保存的[一个比较好看的程序](https://www.luogu.com.cn/paste/i02gjs6w),压行压得不是很重,但是好看,所以这说明未必压得越短越好看
by hgckythgcfhk @ 2024-04-17 11:14:45
@[hgckythgcfhk](/user/692274)
[没有压行,如何呢](https://www.luogu.com.cn/paste/dykip08r)
by _qingshu_ @ 2024-04-17 11:27:20
@[wwqwq](/user/669919) 建议学这个(
```cpp
#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 5, LOG = 25;
int n, m, s, tot;
int f[N][LOG];
int d[N];
int head[N];
struct node {
int to;
int nxt;
} e[N << 2];
void addedge (int u, int v) {
e[++ tot].nxt = head[u];
e[tot].to = v;
head[u] = tot;
}
int LCA (int x, int y) {
if (x == y) { // 特判
return x;
}
// 找到深度大的结点
if (d[x] < d[y]) {
swap (x, y);
}
// 第一阶段,让 x 往上跳
int dep = d[x] - d[y];
for (int k = 20; k >= 0; -- k) {
if (dep >= (1 << k)) {
dep -= (1 << k);
x = f[x][k];
}
}
if (x == y) { // 特判 x=y 的时候,直接返回
return x;
}
// 第二阶段,让 x,y 一起跳
for (int k = 20; k >= 0; -- k) {
if (f[x][k] != f[y][k]) {
x = f[x][k];
y = f[y][k];
}
}
// 返回父亲
return f[x][0];
}
void dfs (int cur, int father) {
f[cur][0] = father;
d[cur] = d[father] + 1;
for (int i = head[cur]; i; i = e[i].nxt) {
if (e[i].to != father) {
dfs (e[i].to, cur);
}
}
}
int main () {
scanf ("%d %d %d", &n, &m, &s);
for (int i = 1; i < n; ++ i) {
int x, y;
scanf ("%d %d", &x, &y);
addedge (x, y);
addedge (y, x);
}
dfs (s, 0);
for (int j = 1; j <= 20; ++ j) {
for (int i = 1; i <= n; ++ i) {
f[i][j] = f[f[i][j - 1]][j - 1];
}
}
while (m --) {
int x, y;
scanf ("%d %d", &x, &y);
printf ("%d \n", LCA (x, y));
}
return 0;
}
```
by WydnksqhbD_3 @ 2024-04-17 11:52:45