一键生成带有丰富文本的题解的Markdown文件,让你爱上写题解!
脚本访问codeforces会403,由于本人很少打,修正可能是很久以后也可能不会,欢迎pr,不过atcoder和nowcoder仍可以使用。
一个好的题解,应该不仅包含题目的做法,还应该包含题目链接、题号检索、题目大意、AC代码,这样不仅方便别人阅读,更方便自己以后重温题目、归档代码。
但是复制粘贴题目链接、题号、AC代码非常繁琐,特别是一场有13道题的区域赛,其复制粘贴往往非常繁琐,容易消磨写题解的精力,因此本脚本可以帮助你省去这些繁琐的操作,让你专注于题目大意和解题思路的记录!
输入比赛的url(支持atcoder,codeforces,nowcoder),该脚本可以一键生成关于该比赛的所有题目的题解模板,包含题目名字、题目链接、自己编写的代码。
需要自己填写的用<++>标识。这样可以更专注于题目大意和解题思路的编写,省去了其余的繁琐操作。
生成文件预览(预览样式与采用的渲染引擎有关)
如果使用vim编写,可以在.vimrc里添加以下代码
" Press space twice to jump to the next '<++>' and edit it
noremap <SPACE><SPACE> <Esc>/<++><CR>:nohlsearch<CR>c4l连续敲两次空格后,光标会自动查找并替换下一个<++>,这样可以无间断的书写题目大意和解题思路部分。
git clone https://github.com/Lanly109/Solution-Markdown-Template-For-Algorithm-Contest.git
cd Solution-Markdown-Template-For-Algorithm-Contest
pip3 install -r requirements.txt修改parser/atcoder.py,codeforces.py,nowcoder.py的code_path函数返回值为自己代码的根目录。
代码存放结构参考cf-tool
对于atcoder.py,其代码存放格式为
.
├── abc171
│ ├── a
│ │ └── a.cpp
│ └── f
│ └── f.cpp
├── abc172
│ ├── e
│ │ └── e.cpp
│ └── f
│ └── f.cpp
└── arc155
└── a
└── a.cpp对于codeforces.py,其代码存放格式为
.
├── contest
│ ├── 1054
│ │ ├── a
│ │ │ └── a.cpp
│ │ ├── b
│ │ │ └── b.cpp
│ └── 1060
│ ├── b
│ │ └── b.cpp
│ ├── d
│ │ └── d.cpp
│ └── e
│ └── e.cpp
└── gym
├── 100405
│ ├── a
│ │ └── a.cpp
│ ├── c
│ │ └── c.cpp
│ └── f
│ └── f.cpp
├── 100851
│ ├── a
│ │ └── a.cpp
│ └── l
│ └── l.cpp
└── 101173
├── a
│ └── a.cpp
├── h
│ └── h.cpp
└── k
└── k.cpp对于nowcoder.py,其代码存放格式为
.
├── 33911
│ ├── a
│ │ └── a.cpp
│ ├── e
│ │ └── e.cpp
│ └── g
│ └── g.cpp
└── 48458
├── a
│ └── a.cpp
├── c
│ └── c.cpp
└── d
└── d.cpp
然后于终端运行
python3 ./main.py <url>其中url可以是atcoder,codeforces,nowcoder之间的一个,比如
python3 ./main.py https://atcoder.jp/contests/abc306/tasks
python3 ./main.py https://codeforces.com/contest/1834
python3 ./main.py https://codeforces.com/gym/104010
python3 ./main.py https://ac.nowcoder.com/acm/contest/5157当然,如果你不喜欢命令行输入url,可以修改main.py,在代码里写入url,然后直接运行。
python3 ./main.py如有需要,可自行更改./parser/base.py里的header和template函数,适应自己的hexo博客或个性化博文样式。
- 新增示例代码文件夹
- 新增【省流版】内容
- 重构代码,发布


