考前总结小本本

学了两年OI,记一下容易犯错和忘记的地方:

1.数据特别大或者特别小都可以考虑预处理。(特别是多组数据,数据很多的情况)
2.注意不要把两个循环变量套一块(很容易忘记)
3.注意不要开错变量的类型
4.局部变量和全局变量不要一起开,同时出现并同时使用肯定会错
5.函数有返回1,但是不要忘记其他情况返回0
6.有些问题要转换成判定性问题,经常用二分
7.if之后的其他情况不要想当然就else不加if,有可能有漏掉的情况
8.局部变量必须设置初始值,尤其是Longlong类型
9.十万以上数字相乘要记得开longlong类型
10.long long类型绝对值要加std::abs()
11.如果写了邻接表,要检查邻接表是否出错,不要自以为是正确的就忽略了。
12.tarjan要注意在low[x]==dfn[x]之后出栈的时候要把instack[x]重新赋值为0回去。
13.写拓扑排序的时候,要注意用的是栈而不是队列。
14.graham凸包算法用的也是栈
15.注意线段树的区间翻转或者交换标记应该用异或
16.类似循环要注意例如(int j=1;j<=n;i++)不能用错变量
17.函数返回值类型必须注意,不论是开头定义的还是里面返回的。
18.如果有浮点数除以浮点数,其中的浮点数是由一个整数转换过来,注意这个整数之前除以某个数,这某个数一定得是个浮点数,否则会出现例如ans/=2,tmp=(double)(ans/dui),导致ans是奇数产生的精度误差。
19.手写max和手写min的话,不要想当然没写错,函数的类型有没有开错也很重要
20.如果可以特判掉,也要先读入完,避免多组数据的时候下面会读到上一组数据
21.半平面交弹出队尾和队头的时候一定要先弹右边的,这是半平面交坑点,不然会WA
22.要注意乘法的时候有无类型溢出,如果有溢出,一定要记得前面先打“1ll*”转换成long long
23.由于rand()是伪随机数,所以如果程序中有调用rand(),应该在主程序加入srand((unsigned) (time(NULL)))
24.rand()的随机范围是32767,如果要生成更大的数据,应该要记得做其他处理
25.位运算的时候一定要加括号,因为它们的优先级十分的烂
26.Linux下不要开到关键字的变量,windows下编译会过,但是Linux下不会
27.C++连等有坑点,比如x=fa[x]=0;里面,如果写成fa[x]=x=0,那么X会先赋值为0,然后fa[0]会变成0,所以要注意连等的先后顺序
28.如果发现打表的数据是递增的,那么可以运用差分打表(b[i]=a[i]-a[i-1]),如果是非递增的,差分打表可能会另文件大小更大。

29.注意inf的设置,要经过精确计算再设置。

时间: 2024-08-30 06:00:17

考前总结小本本的相关文章

Linux基本命令详解《一》(描述+举例!小白必看,小本本拿好,看过的90%都收藏了!)

对于linux新手来说,一般进入linux系统不知道自己该干些什么,今天给大家介绍一些linux中常用命令.我们这次是用xshell6做命令实验,为大家做命令图解. 一,首先当我们第一次用xshell6对Linux进行远程操控,登陆时会出现如下图所示的shell界面:root:表示当前系统登录用户localhost:表示主机名称~:表示当前所在位置--家目录. #:代表管理员用户.(若是$则表示为普通用户,如下图所示). 二,修改一个自己喜欢的主机名称:1.切换回管理员用户,在管理员模式下才能进

小本本

sam的线段树合并可直接这么写,和sa桶排求rk一个道理,只不过这个可以直接按照len合并. for (R int i = 1; i <= len; i++) ins(ss[i]), T.Modify(rt[i], 1, tot, i); for (R int i = 1; i <= tot; i++) c[t[i].len]++; for (R int i = 1; i <= tot; i++) c[i] += c[i - 1]; for (R int i = 1; i <= t

转:码农成长记:那些年,前台小芳教会我的一些事

我是大柱,大柱就是我,现在在一家创业公司负责IT,人称“江湖百晓生”,在职场是万金油一般的存在. 前几天,大老板说,咱们要装一个阿里云的云服务器,就那啥ECS,大柱,你就负责去搞定~ 没问题!响亮的答应了! 职业习惯而已(你懂的~), 其实我并不会装ECS,但咱不能被看低不是! 于是在一个月黑风高的晚上,趁大家都睡熟了,我爬起来,开始闭关研究怎么装ECS. 首先,我想到了内事问X娘,输入“阿里云服务器部署”,第一个弹出来的结果是介样: 点开一看,开头“菜鸟”二字深深的刺伤了我幼小的心灵,难道我已

python3开发进阶-Django框架学习前的小项目(一个简单的学员管理系统)

''' 自己独立写一个学员管理系统 表结构: 班级表: -id -grade_name 学生表: -id -student_name -grade 关联外键班级表 老师表: -id -teacher_name -grades (多对多 关联班级表) ''' 在写小项目之前我们先复习一下小知识: 1. form表单提交数据的注意事项: 是form不是from,必须要有method和action 所有获取用户输入的表单标签要放在form表单里面,表单标签必须要有name属性 form表单必须要有su

小程序开发中应注意的事项

独立负责的小程序项目即将收工!现在提前总结一下开发过程中遇到的问题以及如何解决问题,预防下次遇到相关问题时还是无法解决! 一.作为一个想要以成为高级程序员为目标的小白,在动手敲代码前认真分析客户的需求应为重中之重!并且及时和客户沟通,避免自己吧东西做出来后并不符合客户的需求!这无疑加大了自己的工作量,而客户还不满意!同时,重点来了!小本本随时准备记录开发过程中遇到的问题以及客户临时提出的需求! 二.当客户提出录制视频演示时,应准备项目,以及字正腔圆的介绍!用大方自信的方式向客户展示当前的项目,避

PKUWC2018划水记

半夜在宾馆里睡不着,被潜意识叫起来写作文. 至于为什么标题是划水呢?因为冰也是水的一种形态,而长沙正好又下雪,所以你懂的. Day -1(1.28) 考前疯狂复习模板,正好前一天晚上打了一发LCT维护最小生成树的裸题.MD这算法果然是小C的一生之敌,做了几次link和cut操作之后总有节点开始按捺不住欲望开始做一些有悖伦理的事情,在手画了N(N>10)棵平衡树之后,终于发现是寻找一棵splay中最左的节点的时候必须一路down下去.于是放弃了直接维护最左节点的想法,改了一发,果然A了. 看一眼时

【转载】COM 组件设计与应用(四)——简单调用组件

原文:http://vckbase.com/index.php/wv/1211.html 一.前言 同志们.朋友们.各位领导,大家好. VCKBASE 不得了, 网友众多文章好. 组件设计怎么学? 知识库里闷头找! 摘自---杨老师打油集录 在 VCKBASE 的顶力支持下,在各位网友回帖的鼓励下,我才能顺利完成系列论文的前三回.书到本回,我们终于开始写代码啦.写点啥那?恩,有了!咱们先从如何调用现成的简单的组件开始吧,同时也顺便介绍一些相关的知识. 二.组件的启动和释放 在第三回中,大家用“小

数学的奇妙世界(1)- 引言和线性代数

0. 背景 在这个学校里面遇到了本科是学习统计学的小猪,给我打开了数学的大门,前段时间想着自己机器学习和视觉上一直跌跌撞撞,除了因为去年闹眼病搞得今年有空就睡觉外,还有一点就是自己不想看到数学,前几天自己在京东趁着打折给自己买了一本<陶哲轩教你聪明解数学>,看完前言和第一章仿佛开了天眼, 15 岁天才对于数学的理解可以给我这个 15*2 的学沫启蒙,顺便前言中提到了<如何解题>,让我对另一本早已买来的懵懵懂懂的书籍有了新的认识. 跟着陶哲轩老师的思路自己"在老师后面&qu

RAM

1.     前记 我们知道,不同的计算机结构对RAM 的使用方式是有区别的,典型的计算机结构有两个,冯诺依曼结构和哈佛结构,而两大阵营的领军人物就是传说中的Intel X86系列的8086和51单片机系列的8051.请先对号入座,不理解的跳过去,继续往下看. 2.     What? 长啥样? 内存条,RAM中的一种,常见的应该是DDR SDRAM.相信各位都触摸过它,冷冰,无情,当然,你上电后它就变了样,暖暖的,无怨无悔的为我们干活. 嘿!别唬我,这个俺知道,51单片机.没错,51单片机里面