我的码风

我的码风

1. 头文件

缺省源里是 #include<cstdio>,用的时候缺啥补啥。不打万能头。

2. 输入输出

习惯用快读快写。

int re()
{
	int s=0,f=1;char ch=getchar();
	while(ch>'9'||ch<'0')
	{
		if(ch=='-')f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9')
		s=s*10+ch-48,ch=getchar();
	return s*f;
}
void wr(int s)
{
	if(s<0)putchar('-'),s=-s;
	if(s>9)wr(s/10);
	putchar(s%10+48);
}
int n=re();wr(n);

3. 大括号

典型的下派。

for(int i=fir[now];i;i=nex[i])
{
	int p=poi[i];
	...
	...
	...
}

较短语句不加括号。

for(int i=1;i<=n;i++)
	a[i]=re();

不过结构体、类和名字空间习惯右派,可能感觉右边空空的,不习惯。

srtuct Seg_Tree{
	int le,ri;
	int val,tag;
}T[inf<<2];

4. 函数

不是很喜欢写函数,一般只有递归和多次调用的时候写。

那种不被多次调用的(如 SPFA,kruskal,等)习惯直接写在主函数中。

不用 namespace,我是绝对不可能告诉你是因为我不会才不用的

5. 结构体

在结构体方面,我就是下派的叛徒。

会写 operator,感觉比较好看。

大多数时候不封装函数,少数情况指树套树,那时候会有结构体嵌套结构体。

struct Segment_Tree{
	//内层树
	struct Seg_Tree{
		int lc,rc,sum;
	}T[inf*300];
	//...
}xds;
struct Seg_Tree{
	//外层树
	int le,ri,gen;
}T[inf<<2];

6. 变量名

随心而欲,时长时短。

STL 序列式容器一律用 h,关联式容器一律用 T

除非变量名冲突。

其他方面,小函数中多用单变量名,大函数会根据意思设置变量名(但也只是拼音)。

7. 宏

说实话,用的不多。

  • define int long long 邪教,但我用习惯了。
  • define IT set<C_Tree>::iterator 不喜欢 auto,珂学家都懂。

好像还有,但我找不到了。

8. STL

虽然常数大,但是经常用,比较懒。

9. 压行

不严重的压行习惯,(压但不完全压)。

比如三行树状数组。

不过不习惯有空行存在。

贴几个比较长的代码吧,感觉有纪念意义的。

CYaRon!语

为了能看懂代码,变量名基本是汉语拼音的缩写。

二逼平衡树

来棵树套树吧,Fhq 短小精悍。

运输计划

一个靠着错误的二分和玄学的卡时暴力 A 掉的树剖。

顺便学了学 auto 怎么用。

序列

迭代器调到死的珂朵莉树。

Mishka and Interesting sum

莫队爆艹 1e6。

posted @ 2022-03-29 16:47  Zvelig1205  阅读(56)  评论(0编辑  收藏  举报