Wa的技巧展示 (非技术原因)

本文探讨了编程竞赛中常见的WA(Wrong Answer)原因,包括但不限于思考不足、数据范围敏感性缺失、空间开销估算不当、类型溢出及建边错误等,并提供了相应的优化策略,如倒序思考、数学转换技巧、合理利用数据类型以及正确构建数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Wa的技巧展示 (非技术原因)

  1. 思考不够多元化 (DP/网络流之争),很多题可以尝试着倒着想。

  2. 数学思维,画图,每种问题可能多种对应的解法,可以相互转换,比如乘法可以取对数,变为加法

  3. 看错了输入的顺序

  4. 常识性的错误,扑克牌中A代表的不是1,而是14

  5. 线段树+二分之类的操作可以写成树上二分

  6. 看到了奇怪的数据范围要有敏感性:例如30~42可以折半,12可以尝试n的三次方枚举

  7. 空间开小了
    a) 结果TLE 或者 RE
    b) 字典树 O(N∗len)O(N*len)O(Nlen)
    c) 主席树 O(40∗N)O(40*N)O(40N)
    d) 线段树 O(N∗4)O(N*4)O(N4)
    e) 用链式前向星为边权两倍 O(M∗2)​O(M*2)​O(M2)
    f ) 题目需要多个数组,不同数组所需要的空间不同

  8. 爆 long long
    a) 取模过大 (MOD>3∗109MOD > 3*10^9MOD>3109
    b) 计算过程中出现乘法的地方

  9. 爆 double 在运算过程中,如果直接与 1018+710^{18}+71018+7 比对的话,后面的 +7+7+7会忽略不计

  10. 建边的过程中,双向边建为了但单向边

  11. TLE
    在不需要 __int128的地方,加上了 __int128,使得时间花费*2

  12. 弗洛伊德算法中,枚举的顺序必须是 k,i,j

int long long __int128 时间测试

//int
1e8 10ms
1e9 62ms
1e10 694ms

//long long 
1e8 16ms
1e9 124ms
1e10 1523ms
    
//__int128
1e8	 20ms
1e9 166ms
1e10 2065ms
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Best KeyBoard

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值