about

LightningUZ 的自我介绍

我出生于2006年,小学的时候跳过一级。写这篇博客是初一升初二的暑假(2019年8月)。

性别男♂(真的)。喜欢二次元(废话),是一个死宅,东方众,哲♂学家。擅长爆肝,写代码,摔♂跤。信仰是珂教,也是一个资深珂学爱好者。本地有很多福利和福♂利。

我的语言风格总体肯定是能看懂的,但是很不精练,又臭又长,能用114个字解决的事情也许要用514个字。建议按情况根据左边栏的目录进行适当跳读。

我的做题记录: 链接

关于网站

是用hexo做的,主题Next-Gemini。2019.08.20开始爆肝,当天只是让这个域名有东西存在。一些配置和内容是后期不断更新的。就比如下面那只珂爱的孩子就是当年10月左右做好的。

福利

由于我比较有人性,我大概知道你们现在在想什么。
背景的图:
图标:
(没错,是PoPoQQQ奆佬的头像呢)
update 2020.02.21: 近期因为加载速度原因,紧急撤下了背景

一个重要的问题:码风

从Soviet函数开始看。这很方便理清结构,层层深入,逐渐细节化。

接着是我的模板(强行加入我的老婆酱)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include<bits/stdc++.h>
using namespace std;
namespace Flandre_Scarlet
{
void Input()//读入部分(有的时候只要读入一两个数,就没有这个函数了~)
{

}
//这里应该还会有一些函数,将Soviet函数分成几个部分
void Soviet()
//也就是Solve it,写成了奇怪的样子(自行百度这个词什么意思)
//也就是主求解函数
{
//一些内容
}

#define Flan void
Flan IsMyWife()//这里是主函数
{
Input();
Soviet();
}
}
int main()//这里是假的主函数
//牛战士讨厌写main函数
{
Flandre_Scarlet::IsMyWife();
getchar();getchar();//C风格。。。学习过一段时间的C风格,被洗脑了。
return 0;
}

我特别喜欢面向对象。比如我的图是这么写的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class Graph
{
public:
int head[N];
int EdgeCount;
struct Edge
{
int To,Label,Next;
}Ed[N<<3];
void clear()
{
memset(head,-1,sizeof(head));
memset(Ed,-1,sizeof(Ed));
EdgeCount=0;
}

void AddEdge(int u,int v,int w=1)
{
++EdgeCount;
Ed[EdgeCount]=(Edge){v,w,head[u]};
head[u]=EdgeCount;
}
void Add2(int u,int v,int w=1)
{
AddEdge(u,v,w);AddEdge(v,u,w);
}

int Start(int u)
{
return head[u];
}
int To(int u)
{
return Ed[u].To;
}
int Label(int u)
{
return Ed[u].Label;
}
int Next(int u)
{
return Ed[u].Next;
}
}G;

还有TRIE树,并查集,线段树,树状数组等,我都喜欢写一个面向对象。
这写是我的中二define:

1
2
3
4
5
6
7
8
9
10
11
#define F(i,l,r) for(int i=l;i<=r;++i)
#define D(i,r,l) for(int i=r;i>=l;--i)
#define Fs(i,l,r,c) for(int i=l;i<=r;c)
#define Ds(i,r,l,c) for(int i=r;i>=l;c) //简化循环
#define MEM(x,a) memset(x,a,sizeof(x)) //简化memset
#define FK(x) MEM(x,0) //FK:F**K的简写,我比较暴躁,打这个词很快
#define Tra(i,u) for(int i=G.Start(u),__v=G.To(i);~i;i=G.Next(i),__v=G.To(i))
//遍历图
#define p_b push_back
#define sz(a) ((int)a.size())
#define iter(a,p) (a.begin()+p) //简化vector的使用

然后是一些奇奇怪怪的东西

  1. cxk():在二分的时候会见到,也就是check()
  2. R1():快读,Read One的简写。原本想用不确定长度参数列表写一个形如Rd(a,b,c,d,e...)的函数,然后就珂以一次读完所有要读的整数了。没有成功,但是R1这个名字保留了下来。 (如果您会写Rd函数,私信我,我会很感谢你的)
    update: 感谢Sukazyo帮我写的`Rd函数!!!姐姐大人最棒了!

代码长度换算:
经过我的研究,得到了近似函数:正常 的码长是,那么我的码长约为

w