考试备忘录(有新的就会更的。。。)
标签:有用的东西~(≧▽≦)/~啦啦啦
阅读体验: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
",++T);
else{printf("WA!!!Case#%d
",++T);break;}
}return 0;
(Splay)记得随时Splay(now,0)
写(Rand())记得srand(time(NULL))
和#include<ctime>