阶段工作提示 Day244 · 书写总结

先进书写方式总结

        1.字符串从1开始读入:scanf("%s", str + 1);
加上&或者括号都会导致异常
        2.递归 DFS 回溯 本质上都是相通的,不用分的太死
        3.对于char 从1开始读入的,strlen依然可以用,只是下标要改成strlen(a+1)
        4.关于三目判断语句的返回值在精简书写中的运用  -ACWING-最短编辑距离
f[i][j] = min(f[i][j], f[i - 1][j - 1] + (a[i] != b[j]));
 //如果不同就会返回1,然后+1
//如果相同就会返回0,就没有然后了
        5.#include <limits.h>头文件后,对最小值最大值可以通过INT_MIN赋值
平时多采用(1<<31)表示最小值-1最大值;如果没有头文件,部署INT32_MIN亦可
        6.关于浮点误差的论述    ACWING-基础-高斯消元
//不能直接判断相等,而是判断对减之后的绝对值是否落在这个误差范围之内
//相减的时候或会出现-0.00的情况
//修正方式:绝对值在浮点误差范围内的都认为是0
printf("%.2lf\n", fabs(a[i][n]) < pd ? 0.00 : a[i][n]);

        7.关于&& 和…& 的区别

#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
    int a = -1, b = -1;
    int c = 0;
    if (a > 0 && b++ > 0) //短路与,第一条件不成立会自动中断
        c++;
    printf("%d %d\n", a, b);
    if (a > 0 & b++ > 0) //非短路与,俩条件都会执行
        c++;
    printf("%d %d\n", a, b);
    return 0;
}

特别的思想

        1.ULL unsigned long long 溢出,相当于自动取mod,在哈希映射中就不要使用%
         2.memset(b, -1, sizeof(b));   这玩意要启用string头文件
并且只有赋值0、-1、0x3f是 给到【原始数值】,其他赋值都会出现异常
0x3f赋值结果与0x3f3f3f3f一致,具体原理尚未知晓
        3.list map中的迭代器,可以视作指针使用;即 通过自适应迭代器访问元素 即*a
        4.auto x:a   与auto x=a.begin();x!=a.end();x++写法相比
第一个是将a中的int数据赋值给了x,【x是int】x直接判断是否=目标值k即可
第二个是运用迭代器赋值,【x是iterator】,通过*x访问int型元素
        但是在list STL结构实践中,似乎没有发现直接替换元素的方法,暂且搁置研究

特别注意

        1.int型计算中由于舍弃小数缘故,要特别警惕在运算式中确保分子大于分母,否则会导致意想不到的错误
        例题 ACWING-算法基础-数论-欧拉函数

        2.应对超大型数据,取得mod一定要及时,否则可能会爆炸爆成负数

        3.超大型数据给到int,在运算过程中可能需要强制转换成LL计算,最后再赋值回来(计算过程视作long long 最后赋值返回也是Longlong,如果最后数据范围在int范围内,会被视作int赋值)

        4.题目中出现除法时候要特别注意,分母不能为0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

影月丶暮风

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

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

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

打赏作者

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

抵扣说明:

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

余额充值