CSP/NOIP 复赛注意点

本文分享了参加CSP/NOIP复赛时应注意的编程细节,包括处理边权、避免读入优化、数组内存限制、变量范围判断、数据范围计算、代码审查、暴力解法的益处、文件操作以及输出类型匹配等关键点,旨在帮助参赛者避免常见错误。
摘要由CSDN通过智能技术生成
  1. 树上倍增时要注意先计算边权,再往上跳
for(int i=17;i>=0;--i)
	if(dep[f[x][i]]>=dep[y])
		s+=g[x][i],x=f[x][i];
		//注意不是 x=f[x][i],s+=g[x][i];
  1. 尽可能不打读入优化,如果真的要用一定要注意判负号
//读入优化(含负数)
inline void read(int &x)
{
	char ch=0;bool b=0;
	while(ch=getchar(),ch!='-'&&(ch<'0'||ch>'9'));
	if(ch=='-') b=1,ch=getchar();x=ch-48;
	while(ch=getchar(),ch>='0'&&ch<='9') x=x*10+ch-48;
	if(b) x=-x;
}
  1. 调试完之后记得把文件输入输出的注释去掉。
  2. 一定要注意数组会不会MLE(尤其是正解打挂后决定打部分分时),绝对不能再犯CSP-s 2019的错误了!!!
  3. 一定要在定义变量时仔细思考它的用途,以此推断出它的范围。不要开int开得太high了用int来存long long的值!此外,注意从大范围数据类型赋值到小范围数据类型时是否爆了范围。
  4. 有些题目的最大数据范围可能不在题目底部的部分分数据范围处,如gmoj 6828. 【2020.10.25提高组模拟】幂
    在这里插入图片描述
    还有的题目可能会更坑,最大数据范围还要自己算的,比如GDOI2018 Day1 T1 农场
    在这里插入图片描述
    注意,这里n最大是 1 0 6 ( n = ∑ i = 1 n a i min ⁡ a i ) 10^6\quad\left(n=\cfrac{\sum_{i=1}^n a_i}{\min_{a_i}}\right) 106(n=minaii=1nai),而不是 1 0 5 10^5 105
  5. 打完代码后不要急着测样例,先看一遍代码(最麻烦的就是第一次测就过了样例,殊不知代码里有一个巨大的锅)。
  6. 比赛开始先写暴力,这样一是可以检验对题意的理解是否正确,二是可以方便对拍,三是可以保证拿到部分分。
  7. 为了避免重蹈 C S P − s 2020   T 1 CSP-s2020\text{ } T1 CSPs2020 T1的覆辙,这里写一下在使用fc命令的方法:
  1. 在文件夹下点击Shift+鼠标右键,在弹出的菜单中选择“在此处打开 Powershell 窗口(S)”。
  2. 输入cmd,切换至cmd模式;
  3. 输入fc a.out b.out
  1. 无论暴力程序能否跑出结果,都要用极限数据检验代码,看看有没有负数之类的鬼畜输出;
  2. 注意取模的问题。
  3. 什么类型输出都要对应其类型,用%d输出long long或用%lld输出int都会没有分(RE),因此最好开启-Wall
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值