noip2018 考前提醒!

it2025-03-18  16

适应Noilinux

1.终端操作 打开终端 \(Ctrl+Alt+T\) 打开文件夹 \(cd\) +名称 新建文件夹 \(mkdir\) +名称 打开 \(vim\) 配置 \(vim ~/.vimrc\) 打开 \(vim\) 文件 \(vim\) + 文件名

2.强大的\(Vim\)配置

set nu set mouse=a set tabstop=4 set shiftwidth=4 set autoindent set smartindent inoremap ( ()<ESC>i inoremap [ []<ESC>i inoremap { {}<ESC>i inoremap " ""<ESC>i inoremap ' ''<ESC>i color desert map <F9> <Esc>:w<CR>: !g++ % -o %< && ./%< <CR> imap <F9> <Esc>:w<CR>: !g++ % -o %< && ./%< <CR>

3.\(Vim\) 操作 复制 \(n + yy\) 粘贴 \(p\) 删除 \(n+dd\) 撤销 \(u\) 退出死循环 \(Ctrl+c\) 放大字号 \(Ctrl+shift+'='\) 缩小字号 \(Ctrl+'-'\) 保存 \(:w\) 退出 \(:q\) 进入插入模式 \(i\) 退出插入模式 \(Esc\)

4.对拍

system("./data > data.in"); system("./1 < data.in > try1.out"); system("./2 <data.in > try2.out"); if(sytsem("diff try1.out try2.out")) printf("WA\n"); else printf("AC\n");

5.千万不要闲的用鼠标滑轮!会意外退出! 6.写 \(Vim\) 时刻注意保存! 7.\(Noilinux\) 密码 123456


易犯错误

1.头文件 别忘了 #include<cmath> 和 #include<cstring> 对拍测时间 #include<ctime> (\(clock()\)

2.\(using\) \(namespace\) \(std;\) 别忘写!

3.数组大小 无向图边 \(m \times 2\) ,注意边数与点数 不同数组大小不同时一定要区分!for(int i=0;i<MAXN;i++) 注意取不到等!

4.数组名称不要搞混 变量(\(i\),\(j\))别写反

5.取模运算 出现减法时 \((\%P+P)\%P\) 需要取模的变量,在任何操作后都要去取模!不要漏!

6.溢出 判断 \(int\) 是否需要转 \(long long\) 运算中间量要不要转

7.\(double\) 问题 判断相等时 \(fabs(r-l)<eps\)

8.位运算 注意优先级,疯狂加括号 不要轻易取反(符号也会变)

9.做题细节 看题不要看漏!题目最细小的地方!! 考虑特殊情况,不要漏!

10.想题时 多举反例,想出一些思路是先别急着高兴,往后想 限时想题,及时放置 动态规划时间复杂度=状态数 \(\times\) 转移时间!转移时间别漏了!

11.输入大于 \(10^5\) 加读入优化

12.代码实现细节 树链剖分: 求重子时别忘了 size[u]+=size[v] 根节点不要 \(dfs\) 两遍;在 \(dfs\) 前赋值

倍增: 数组下标问题,别越界

线段树: 下放 \(lazy\) 的同时正确更新 \(sum\) 结构体名别写错

强连通分量:\(vis\) 表示进栈情况:0--未进过,1--在栈中,2--已出栈

字符串哈希: 想好是否真的可用 加1减1的事情想清楚,多对拍

并查集: 路径压缩 int getfa(int x) { return x==fa[x] ? x : fa[x]=getfa(fa[x]); } 初始化 \(fa[i]=i\)

\(Dijkstra\): 堆优化,\(pair\) 注意第一关键字为 \(dis\)

\(SPFA\):\(dfs\) 版的 \(vis\) 表示是否正在遍历 判负环可将 \(dis\) 都设成0

差分约束系统: 大于等于还是小于等于

欧拉回路: 注意在访问完一个节点后,将其加入倒叙的 \(ans\)

平衡树: 更新 \(size\) 等时别忘了加上自己的


常见思想

1.求某某最值 -> 转化为二分+判定(前提有单调性) 2.问题分解 3.将问题等价转换 4.有时多求一些东西,包含了答案 5.图论与数据结构相结合,动态规划、数论与图论结合(分层图)

猜结论,找规律——数论大胆推&发现;图论谨慎证明;动规小心陷阱 情况考虑周全——多举反例&特殊例子;眼光放开 不要想麻烦——排除干扰,简化题意;从简单算法(二分、数组)想起


小技巧

1.预处理,前缀和… 2.枚举子集时 for(int i=t;i;i=(i-1)&t) 3.用 \(stl\) 中的 \(set\)

转载于:https://www.cnblogs.com/lindalee/p/9932400.html

相关资源:数据结构—成绩单生成器
最新回复(0)