临时随笔:大脑宕机低级大错误合集

news/2025/3/18 11:41:28/文章来源:https://www.cnblogs.com/ChillLee/p/18503388

大脑宕机低级大错误合集

  • ceil 的精度问题:
int a, b;
ceil(a/b);//错误的
ceil(1.0*a/b);//正确的
  • memset 的顺序:
memset(vis, 0, sizeof(vis);

后两项打反时编译器不会报错。

  • while(L--)判否后仍然会执行一次 L--

  • lower_bound 正确使用:
    2

  • 邻接矩阵遍历图时,严格注意强制类型转换!

	for(int i=0; i < (int) ve[u].size(); i++){int v=ve[u][i];if(v == fa) continue;dfs(v,u);size[u]+= size[v];f[u] = max(f[u], size[v]);}
  • P6492 [COCI2010-2011#6] STEP

线段树维护区间最大连续字符相异长度,附单点修改。
错因: 左右子树下标移位
错解:

int ls= u<<2;
int rs =u<<2|1;

正解:

int ls= u<<1 ;
int rs= u<<1|1 ;
  • [GLFLS 6φ] 去他的物理实验

double 下的二分(二分实现某点导数间接实现三分)时,两个 double check() 直接进行比较即可,不用思考什么差值 epseps 只是用于两个 double 判断是否相等,例如 if( fabs(x-y) <= eps )

正解:

if(judge(mid+eps,nowansb) <= judge(mid-eps,nowansb) ) le=mid;
else rt=mid;

错解:

if(judge(mid+eps,__b) - judge(mid-eps,__b) <= eps ) le=mid;
else rt=mid;
  • P4513 小白逛公园

如果数组开小了爆栈也可能 RE
正解
const int maxn=5e5+5;
错解
const int maxn=500000;

  • P1253 扶苏的问题

线段树维护区间最大最小值,如果outofrange()true ,应该返回 INF-INF,而非 0
正解:

ll qjcx(int u,int l,int r,int L,int R){if(inrange(l,r,L,R))return w[u];else if(outofrange(l,r,L,R))return -INF;else {int mid=(l+r)>>1;pushdown(u,l,r);return max( qjcx(u*2,l,mid,L,R) , qjcx(u*2+1,mid+1,r,L,R) );}
}

错解:

ll qjcx(int u,int l,int r,int L,int R){if(inrange(l,r,L,R))return w[u];else if(outofrange(l,r,L,R))return 0;else {int mid=(l+r)>>1;pushdown(u,l,r);return max( qjcx(u*2,l,mid,L,R) , qjcx(u*2+1,mid+1,r,L,R) );}   
}
  • P3870 [TJOI2009] 开关

维护单点异或,区间查询。注意有 lzy[u] 才进行 maketag(u,len,lzy[u]) ,如果 lzy[u] 不存在时进行了异或操作标记下传,会导致错误的单点异或,因为他把 lzy[u] == 0 的异或下传了。
正解:

void pushdown(int u,int l,int r){int mid=(l+r)>>1;if(!lzy[u]) return ;maketag(u*2,mid-l+1,lzy[u]);maketag(u*2+1,r-mid,lzy[u]);lzy[u]=0;
}

错解:

void pushdown(int u,int l,int r){int mid=(l+r)>>1;maketag(u*2,mid-l+1,lzy[u]);maketag(u*2+1,r-mid,lzy[u]);lzy[u]=0;
}

oier作死技巧

1.赋值运算符与判等不分

/使用-Wall编译选项会出现警告
if(n=1)puts("Yes");//此处应为n==1
else puts("No");

2.多重循环中i,j,k使用分布不清

for(int i=1;i<=n;i++)for(int j=1;j<=n;i++)//显然应该是j++//do somethingfor(int i=1;i<=n;i++)for(int j=n;j>=1;j++)//显然应该是j--//do something

3.运算符优先级(多用括号)

int a=num<<2+1;//这里会被解读为num<<(2+1)
a=(num<<2)+1;int a,b,c;
cin>>a>>b;
c=a+b%10;//此处会识别成a+(b%10)

4.多组数据要初始化变量,局部变量要赋初值

特别是ans,sum不赋值等。

//比较好的习惯是将变量定义在循环内,从而求解每组数据时都能初始化变量
#include <stdio.h>
int sum;
int main()
{int T;scanf("%d",&T);while(T--){//int sum=0;//像上面这样定义变量就不会出事了int n;scanf("%d",&n);for(int i=1;i<=n;i++){int num;scanf("%d",&num);sum+=num;}printf("%d\n",sum);}return 0;
}

5.局部变量与全局变量冲突

建议全局变量多采取非常用的手误名称,如i,j,k,x,y,z是重灾区。

6.边界判断&&特判

for(int i=0;<;)
for(int i=1;<=;)
//注意循环边界范围,特别是数组是从0还是1开始记录的
### 9.是否使用了正确的文件io
```cpp
freopen("t1.in","r",stdin);
freopen("t1.out","w",stdout);

10.是否有正确的头文件和return

非void函数一定要有return,主函数要有return 0;

11.数据大小判断 是否可能爆int。以及int数据范围

int:256mb=6.7kwint;

int: 2e9;

12.不要使用x1,x2会卡变量名

13.检查文件名字!!

turn不等于trun

14.-o2看一下有什么不同的变化

15.注意使用的输入输出格式中会不会有空白

getchar会读入空行和空格
scanf:%c会读入空白,“ %c”是可行的%s,&s[i]+1;//等同于cin>>s[i]+1;

16.while(scanf("[t++]")!=EOF) 天坑!t会多一个

17."no"是字母O不是零0

18.函数命名和调用,封装名称一致,数据类型一致

19.科学计数法1e9是一个浮点数

20.读题要仔细

子串是连续的;
子序列是不连续的,但是有先后之分;
子集既不连续,也无先后之分

21.sort是左闭右开区间

sort(a,a+n);//sort a[0]->a[n-1]
sort(a+1,a+1+n);//sort a[1]->a[n];

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/821942.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html添加图片的代码是什么

在现代网页设计和开发中,图片是不可或缺的元素之一。它们可以增加视觉吸引力,传达信息,或者仅仅为了装饰效果。本文将详细解释如何在HTML文档中添加图片,包括基础的<img>标签用法,图片格式的选择,以及高级功能如图片响应式设计和懒加载等。对于初学者和中级网页开发…

战术性胜利和战略性胜利区别在哪

战术性胜利和战略性胜利是军事学和商业战略中常用的两个术语,两者主要的区别包括:1.定义和范围;2.时间维度;3.实施层面;4.影响深度;5.资源分配;6.决策过程。其中,最核心的区别在于战术性胜利注重短期、局部的优势,而战略性胜利关注长期、全局的胜出。1.定义和范围 战术…

手机有HiFi与无HiFi有什么区别

手机音频领域的HiFi(高保真)技术日益受到关注,但很多用户对HiFi的理解仍有疑虑。本文将深入探讨手机有HiFi与无HiFi的区别,包括:1.HiFi技术原理;2.音质感知;3.设备需求;4.音频源的选择。1. HiFi技术原理 手机有HiFi和无HiFi的关键差异在于音频处理技术。有HiFi的手机采…

OOP实验二

任务1 源码:1 #pragma once2 3 #include <string>4 5 // 类T: 声明6 class T {7 // 对象属性、方法8 public:9 T(int x = 0, int y = 0); // 普通构造函数 10 T(const T &t); // 复制构造函数 11 T(T &&t); // 移动构造函数 12 ~T…

有哪些比较好的图像标注工具_1

比较好的图像标注工具有:1. Labelbox;2. VGG Image Annotator (VIA);3. RectLabel;4. Supervisely;5. RectLabel;6. VoTT (Visual Object Tagging Tool)。Labelbox是一款强大的图像标注工具,旨在帮助机器学习团队进行大规模的图像标注和数据管理。1. Labelbox Labelbox是…

java三次大作业的全面总结

一:前言知识点总结:数据结构:题目涉及到了字典或哈希表用于存储题目信息、试卷信息和学生信息;列表用于存储多个题目、试卷和学生的集合;对象用于封装题目、试卷、学生和答案的具体属性。 字符串解析:题目要求解析输入的字符串,从中提取出题目信息、试卷信息、学生信息和答…

第十五期 04.ControlNet原理

一:ControlNet模型的概念 ControlNet 是一个控制预训练图像扩散模型(例如 Stable Diffusion)的神经网络。它允许输入调节图像,然后使用该调节图像来操控图像生成。原始SD模型的输入:prompt、source image ControlNet模型的输入:canny边缘、语义分割图、关键点、涂鸦等(一…

java的gc为什么要分代

Java的垃圾回收机制(GC)采用了分代策略,其背后的原因有:1.不同对象的生命周期;2.优化内存管理效率;3.降低GC暂停时间;4.更精细的资源分配;5.适应不同应用的需求。这种分代机制充分利用了大多数对象都会很快变得无用的“弱代假说”,从而提高了内存使用和回收的效率。1.…

GDB 奇技淫巧

GDB 奇技淫巧 本文面向读者为使用 NOI Linux 的 OIer,因此只介绍 OIer 可能会使用到的功能,对于工程上的功能不会讲述。今天是 \(\text{CSP-S 2024 Day 0}\),不知道有没有人因为平时依赖 vscode,担心考场上没有合适的调试器呢。 笔者就是这样一个 Joker,但是没有关系,NOI…

py网络工具编程

从各项网络协议开始了解 分析其用途以及攻击价值 通过py构造数据包自动化的实现攻击过程 scapy模块: 该模块非常强大 可以构造绝大部分数据包:上图构造了一个tcp的数据包 其分片为零 协议为tcp再次构造一个数据包 通过调用show()查看默认构造数据包结构如何对数据包的属性值进…

半导体测试行业的相关术语

ATE = Automatic Test Equipment. 是自动化测试设的缩写,于半导体产业意指集成电路(IC)自动测试机, 用于检测集成电路功能之完整性, 为集成电路生产制造之最后流程, 以确保集成电路生产制造之品质。DUT = Device Under Test. 待测设备,半导体行业一般是电子元器件/芯片。P…

Go 实现 LRU 和 LFU

0. 前言 缓存是一个非常大的 topic。常用的缓存算法有 LRU(Latest Recently Used)最近最少使用和 LFU(Latest Frenquency Used)最不经常最少使用算法。 本文会介绍这两种算法,并且给出缓存使用的一些介绍。 1. LRU 首先,LRU 是最近最少使用算法,根据时间的顺序淘汰最久没…