Hello World !
你好,博客园!——2022.11.6
I AM NOT A ROBOT
常用 ID:caijianhong, yukimianyan(luogu only)
洛谷博客:新的,旧的,共 300 篇 blog,以后可能不会再更新洛谷博客。一些老旧的内容,为了完整性还是全部搬了。搬运的文章,都以“posted on 202y-mm-dd hh:mm:ss | under xx | source”起手,是它们的原发布时间和来源(部分已不可见)。看到疑似两个甚至三个不同的人写的东西,这是正常的,一个是入门组选手写的,一个是普及组选手写的,问题不大。注意到这并没有版权问题,因为是同一个人写的。
洛谷个人主页转移
旧 ftp://172.16.22.172/ noi2022 akioi
新 ftp://172.16.3.91/ ssoi2023 akioi
- 2021.10.4 你好,GDSY
- 2022.7.15 你好,ZROI (C)
- 2022.10.4 SS 集训
- 2022.11.26 NOIP 大寄
- 2023.1.5 寒假开始了,WC2023
- 2023.2.5 新的学期
- 2023.3.23 省选集训
- 2023.7.15 你好,ZROI (B)
- 2023.9.4 就开始集训了???
- 2023.10.24 继续 😃
- 2023.11.18 NOIP 没寄,但是文化课,各位再见
- 2023.12.9 北京集训
- 2023.12.23 又是文化课
- 2024.1.29 NOIWC2024
About Password
一些校内集训资源需要被隐藏(要不然为什么搬到这里?)
密码为某知名培训机构的某知名名言。好像有人猜出密码了,只能说到这里了。不是这个密码的可以问我,我去改。
密码是那位老师的名言。
About URL
简记一下命名规则:
- 注意到,URL 不区分大小写。
- 题解带有 solution- 前缀。
- 模板带有 template- 前缀。
- 模拟赛日志或游记归入 contests,URL slug 写 contests in 20yymm 或者 traval in xxxx(是不是语法错误了?)
- ZROI:ZROIxxx 或者 CPOJ 题号
- CPOJ 联测:搬原题的写原题题号,否则 CPOJ 题号,或者 CPOJ::master 的不写
- Luogu:标题写 LGP/LGU/LGT 分别是 P/U/T,但是 URL 为了保持一致不写 LG
- CF:CF1713F
- ATC:ABC261H
其实与 Luogu 博客比较接近,例如
- https://www.luogu.com.cn/blog/yukimianyan/solution-p8820
- https://www.cnblogs.com/caijianhong/p/solution-p8820.html
可以精准转换,我没有刻意的粘贴链接。
About Code
请注意:题解粘贴的代码都是用来对拍 / 对照用的,一些非法用途我管不着,我已经尽我努力隐藏了。
缺省源(vim register "t):
#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
#define debug(...) fprintf(stderr, __VA_ARGS__)
#else
#define endl "\n"
#define debug(...) void(0)
#endif
using LL = long long;
int main() {
#ifndef LOCAL
cin.tie(nullptr)->sync_with_stdio(false);
#endif
return 0;
}
STL debug macro:
#define _GLIBCXX_DEBUG
python 缺省源(vim register "p):
#!/bin/env python3
from random import randint as rnd
makefile 缺省源(vim register "m):
main: $(shell basename $$PWD).cpp
g++ $< -o $@ -O2 -DNF -g -fsanitize=undefined,address -DLOCAL
%: %.cpp
g++ $< -o $@ -O2 -DNF -g -Wall -Wconversion -Wshadow -Wextra
.bashrc 需要额外加入的 alias:
alias cls=clear
alias python=/usr/bin/python3
alias rm='rm -i'
其实 ctrl-l 也可以清屏。
考场 .vimrc 模板:
so $VIMRUNTIME/vimrc_example.vim
set nu ts=2 sw=2 sts=2 et fdm=marker sm cin
map <C-K> <C-V>
nnoremap j gj
nnoremap k gk
vim command line :options
可以直接看每个选项是否开启。
sm 是 showmatch,显示匹配的括号,不是默认开启的。
简易 selfeval.sh:
#!/bin/bash
p=`basename $PWD`
make $p || exit 1
ulimit -s 1048576
ulimit -v 1048576
for f in `find . -name '*.in'`; do
\time ./$p < $f | diff - ${f%.*}.ans -sqBZ
done
noi linux 使用技巧
vim 选手需要注意剪贴板问题:终端粘贴到 vim 使用 ctrl-shift-v 粘贴;vim 复制到终端没有方法,只能使用 gedit 打开,迅速的按下 ctrl-a, ctrl-v, ctrl-q。
noi linux 如果是虚拟机,可以打开设置,将配置调为 3 核 CPU 和 3G 内存甚至能多,卡顿明显减少。
.vimrc 配置(旧版)
若不慎丢失 the example for a vimrc file
" An example for a vimrc file.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2019 Dec 17
"
" To use it, copy it to
" for Unix: ~/.vimrc
" for Amiga: s:.vimrc
" for MS-Windows: $VIM\_vimrc
" for Haiku: ~/config/settings/vim/vimrc
" for OpenVMS: sys$login:.vimrc
" When started as "evim", evim.vim will already have done these settings, bail
" out.
if v:progname =~? "evim"
finish
endif
" Get the defaults that most users want.
source $VIMRUNTIME/defaults.vim
if has("vms")
set nobackup " do not keep a backup file, use versions instead
else
set backup " keep a backup file (restore to previous version)
if has('persistent_undo')
set undofile " keep an undo file (undo changes after closing)
endif
endif
if &t_Co > 2 || has("gui_running")
" Switch on highlighting the last used search pattern.
set hlsearch
endif
" Put these in an autocmd group, so that we can delete them easily.
augroup vimrcEx
au!
" For all text files set 'textwidth' to 78 characters.
autocmd FileType text setlocal textwidth=78
augroup END
" Add optional packages.
"
" The matchit plugin makes the % command work better, but it is not backwards
" compatible.
" The ! means the package won't be loaded right away but when plugins are
" loaded during initialization.
if has('syntax') && has('eval')
packadd! matchit
endif
以下是 ~/.vimrc 或者说 ~/_vimrc 文件。
" basic
syntax on
set mouse=a
set backup " mind "cp" covering
set guifont=Consolas:h15
set encoding=utf-8
" about tab & space
set cindent
set softtabstop=4
set tabstop=4
set shiftwidth=4
set expandtab
" about showing
set number
set ruler
set hlsearch
set showmatch
set showcmd
set showmode
" set cursorline " not so good
" Dev-C++ style complie & run
" nmap <F5> :w <CR> :!g++ % -std=c++14 -o %< -O2 <ESC>
" nmap <F6> :!time ./%< <ESC>
" nmap <F7> :w <CR> :!g++ % -std=c++14 -o %< -O2 && time ./%< <ESC>
" nmap <F8> :vsp %<.in <ESC>
" nmap <F9> :vsp %<.out <ESC>
" Windows.wsl yank support
let s:clip = '/mnt/c/Windows/System32/clip.exe' " change this path according to your mount point
if executable(s:clip)
augroup WSLYank
autocmd!
autocmd TextYankPost * if v:event.operator ==# 'y' | call system(s:clip, @0) | endif
augroup END
endif
" Windows.wsl ctrl+v fix
map <C-K> <C-V>
" Windows 7 backspace fix
" set backspace=indent,eol,start
vim 和终端的语法:
- Windows.wsl:
vim a.cpp
可以编辑,然后:wq
退出,g++
编译,注意粘贴是 ctrl+v,复制需要高科技或者 gedit - Windows 7:
gvim a.cpp
打在寻址栏可以在当前路径下创建文件。- 打开 powershell:
:rightbelow vert term powershell
打开一个 powershell,或者:vert term powershell
然后 Ctrl-W + r(<C-W>r
)交换分屏(默认在左边) - 切换:连按两次 Ctrl-W 即
<C-W><C-W>
- 粘贴:Ctrl-W + 剪贴板编号,如
<C-W>"+
是系统剪贴板,匿名剪贴板是<C-W>""
- 复制:
<C-W>N
(ctrl-w 然后 shift-n)进入终端 normal 模式,使用 vim 快捷键,可以正常复制,此时无法修改终端内容,插入的 i 或 a 回到插入模式 - 关闭:powershell 先 exit,然后 vim 中
<C-W>c
- 大小:
<C-W>10>
就可以调整,可以是大于或者小于
- 打开 powershell:
powershell mode 300
可以全屏,可以快乐 vim
本文来自博客园,作者:caijianhong,转载请注明原文链接:https://www.cnblogs.com/caijianhong/p/hello-world.html