考试备忘录(有新的就会更的。。。)
考试备忘录(有新的就会更的。。。)
标签:有用的东西(≧▽≦)/啦啦啦
阅读体验:https://zybuluo.com/Junlier/note/1312002
考场配置\((emacs)\)
是时候弄一发考场配置了。。。
很多东西可以在\(option\)里面弄好,您可以告诉笔者更多可以在\(option\)里面弄的东西!!!
- 主题色很重要:\(option\)里面最下面\(Customize\ Emacs\)点开有一个\(themes\),自己选
- \(C\)$c,C$\(v,C\)^\(x\)还是很重要的,直接在\(option\)里找这三个字符就\(ok\)
- 上面那一栏没有用的东西还是关掉比较好。。。\(option\)里面\(show/hide\)的\(tool\ bar\)给他\(none\)掉
- 光标总是闪是不是很烦躁:\(option\)里面\(Blink\ Cursor\)关掉就好
- 最关键的:别忘了\(save\ option\)保存一下(这些控制的代码会出现在\(.emacs\)里面)
最好是多按几次保险。。。(没开玩笑!)- 显示行号可以
Alt-x
输入\(linum\),但这个每一篇代码都要打
然后一些找不到的你就手打吧(或者你帮笔者在\(option\)里找到了告诉我一声呗。。。)
其实\(emacs\)的配置根据意思也还是比较好记的辣(PS:配置的注释是;;
,为了好看点我这里改成了//
)
(global-set-key (kbd "RET") 'newline-and-indent)
(setq c-default-style "awk") //自动换行缩进(长度为4)
(setq-default cursor-type 'bar) //光标形状(从一坨变成一条杠)
(global-linum-mode t) //显示行号(调试配置是否正确用(滑稽))
---下面的笔者考场不想用,你们看着办
//C^a全选
(global-set-key (kdb "C-a") 'mark-whole-buffer)
//把emacs弄得半透明。。。
(set-frame-parameter (selected-frame) 'alpha (list 85 80))
//<F9>一键编译(贼长啊。。。)
(global-set-key [f9] 'compile-file)
(defun compile-file ()
(interactive)
(global-set-key (kdb "<f9>") 'compile-file)
(global-set-key [f10] 'gud-gab)
(compile (format "g++ -o '%s' '%s' -g -lm -Wall" (file-name-sans-extension (buffer-name))(buffer-name))))
做题技巧(多看一看)
写题技巧
- 看到最大值最小别忘了二分答案
- 看到各种状态的关系可以往图论转换
- 看到相关状态仔细想\(dp\)
- 贪心题是最难判断的,但是什么题你都贪心写个不一定对的就可以了
- 永远不要主观臆断的刚题,哪怕你只差一个精度(
这个还是刚一下吧。。。) - 组合数可以转化成网格格路问题
- 序列上区间操作考虑序列分治
- 最大值最小值的询问可以考虑各种相关数据结构
- 需要处理一个元素两边的大于或小于它的值考虑单调栈
策略问题
-
永远不要主观臆断的杠题,哪怕你只差一个精度(
这个还是刚一下吧。。。) -
\(T1\)只能写到\(9:30\),\(T2\)看\(T3\)难度写到\(10:30\)之前,剩下时间写\(T3\)
可以适当的节约前面题目的时间来写后面题目的暴力,再去写正解
特别注意
- 当有读入数据位于\(long\ long\)范围时,不仅变量要改\(long\ long\),记得吧读入优化也改了
如果可以取膜的话,最好直接\(=read()\%MOD\)
代码备忘录
二分反正短就直接放上来
rgt le=0,ri=Inf,mid;
while(le<=ri)
{
mid=(le+ri)>>1;
if(check(mid))Ans=mid,ri=mid-1;
else le=mid+1;
}//最大值最小
\(Exgcd\)反正短就直接放上来
lst Exgcd(lst a,lst b,lst &x,lst &y)
{
if(!b){x=1,y=0;return a;}
lst ss=Exgcd(b,a%b,x,y),t;
t=x,x=y,y=t-a/b*y;return ss;
}
//直接背板子然后直接用,返回的值ss是a和b的GCD
//反正特解在x里面了就行了。。。一些题目也可以好好运用这个GCD。。。
\(Kmp\)不短但必须放上来
il void Get_Nxt()
{
for(rg int i=1,j=0;i<lent;++i)
{
while(T[j+1]!=T[i]&&j)j=Nxt[j];
if(T[j+1]==T[i])++j;Nxt[i]=j;
}
}//字符串下标从0开始
//匹配的话直接匹配,失配则暴跳Nxt[]
\(Pai\)必备啊
int T=0;
while(233)
{
system("./Rand");
system("./test");
system("./STD");
if(!system("diff test.out STD.out"))
printf("AC Case#%d\n",++T);
else{printf("WA!!!Case#%d\n",++T);break;}
}return 0;
\(Splay\)记得随时Splay(now,0)
写\(Rand()\)记得srand(time(NULL))
和#include<ctime>
哪怕人间是炼狱,梦想永远是天堂
继续走下去吧,理想永远都年轻,花儿一定会再次盛开