【犀首】 个人题解编写标准
一、架构标准
应至少包括标题、题目描述、算法分析、代码四个部分,必要时可以加入参考文献部分。
二、内容标准
1.标题
- 居中,一级标题,与正文之间空一行
- 由 “题源” + “题号” +“题目”组成。
题源与题号之间无空格,题号后插入小数点,小数点和题目之间插入空格。
题源是网站的直接用网站名,题源是比赛的,加上中括号,但中括号内不加空格
AcWing1097. 池塘计数
[NOIP1998普及组T1]. 三连击
洛谷1251. 餐巾计划问题
[NOI2011]. 智能车比赛
[CodeforcesRound#732(Div.1)]A. AquaMoon and Strange Sort
[USACO3.2]. 魔板 Magic Squares
2.题目描述
-
两端对齐
-
必须包含基本描述、输入格式、输出格式、数据范围、输入样例和输出样例,必要时应给出说明和提示
除基本描述外,都应给出对应的小标题,用四级标题表示。输入样例和输出样例应以无高亮的代码块表示 -
对于图论等的题目描述,必要时应插入图片
农夫约翰有一片 N∗M 的矩形土地。
最近,由于降雨的原因,部分土地被水淹没了。
现在用一个字符矩阵来表示他的土地。
每个单元格内,如果包含雨水,则用"W"表示,如果不含雨水,则用"."表示。
现在,约翰想知道他的土地中形成了多少片池塘。
每组相连的积水单元格集合可以看作是一片池塘。
每个单元格视为与其上、下、左、右、左上、右上、左下、右下八个邻近单元格相连。
请你输出共有多少片池塘,即矩阵中共有多少片相连的”W”块。
输入格式
第一行包含两个整数 N 和 M.
接下来 N 行,每行包含 M 个字符,字符为 “W” 或 “.”, 用以表示矩形土地的积水状况,字符之间没有空格。
输出格式
输出一个整数,表示池塘数目。
数据范围
1≤N,M≤1000
输入样例:
10 12
W........WW.
.WWW.....WWW
....WW...WW.
.........WW.
.........W..
..W......W..
.W.W.....WW.
W.W.W.....W.
.W.W......W.
..W.......W.
输出样例:
3
三、算法分析
- 两端对齐
- 应条分缕析,比如分为建模、状态分析
- 算法分析中的变量如 st[i][j]st[i][j]st[i][j] 必须与代码中的变量一致。若算法分析中采用了 α\alphaα 等希腊字母则应在代码中用alpha对应。
1. flood fill 模型
从某个状态点开始进行向各边扩展,直到扩展到各边都没有路可走的时候结束,是 bfs 的一个子模型。
2.拓展状态
题目的拓展信息:遇到水洼停止。
bfs 的拓展信息:不能搜索已搜过的点,因此用 st[i][j]st[i][j]st[i][j] 表示。
3.统计信息
水洼块数,用 cntcntcnt 表示。
四、代码
- 必须有语言高亮。
- 应对关键技术点、重要变量、重要函数、易错点、存疑点及其它有必要注释的地方进行注释。
- 能不注释的地方,不进行注释。
- 变量的注释位置为其所在行右侧,采用行注释形式。函数的注释位置为其函数名下部,采用段注释形式。
三、格式标准
1.中文
- 应在大多数地方使用中文,能使用中文的尽可能用中文表示。
- 禁止对中文非标题部分加粗,禁止对中文加斜体。
- 禁止在描述性文字中加问号和感叹号,而应用注释和引号代替。
- 禁止模糊性的语言,比如 “这段”,“这里”等。
错误示范:
/*这段非常容易错,记住这段!!*/
void build(int u,int l,int r){
if(l==r) tr[u]={l,r,w[r],0};
else{
tr[u]={l,r};
int mid=l+r>>1;
build(u<<1,l,mid),build(u<<1|1,mid+1,r); //这里为什么错了?
pushup(u);
}
}
正确示范:
void build(int u,int l,int r){
/*易错函数*/
if(l==r) tr[u]={l,r,w[r],0};
else{
tr[u]={l,r};
int mid=l+r>>1;
build(u<<1,l,mid),build(u<<1|1,mid+1,r); //存疑
pushup(u);
}
}
2.外文
- 在题目描述等的地方,应尽量使用中文,只有诸如使用英文俚语和典故的地方及其它不得不使用英文的情况下使用英文,对俚语应做标注并适当给出翻译。
- 英文专有名词斜体表示。
bfs 的拓展信息
flood fill 模型
- 英文变量名斜体表示。
第一行包含两个整数 N 和 M.
- 建模时的英文变量用 latex 公式表示。
不能搜索已搜过的点,因此用 st[i][j]st[i][j]st[i][j] 表示。
- 希腊字母不应作为变量名,只在建模和公式中使用,用 latex 公式表示。
- 英文的逗号,句号后不管接中文还是英文,都应用英文符号,然后插入一个空格
hello world, 你好世界。
hello, world
- 英文或数字等结尾的句子,用英文句号作为句号,中文结尾的句子,用中文句号作为句号。
- 作为字符的英文,用英文双引号引起来。
字符为 “W” 或 “.”, 用以表示矩形土地的积水状况。
3.空格
- 中文和英文或公式之间应插入空格。中文和英文标点符号之间也应插入空格。但中文和中文标点之间禁止插入空格。
接下来 N 行,每行包含 M 个字符,字符为 “W” 或 “.”, 用以表示矩形土地的积水状况,字符之间没有空格。