• 【学习笔记】 $learn from failure ? ( 雾$


    (1.)变量名不要用 (next) ,在某些编译器里可能是关键词,可以用 (nxt) 代替
    (\)
    (2.)在判断某些条件时应该写成

    flag = 条件 ? 1 : flag;
    

    而不是

    flag = 条件 ? 1 : 0;
    

    (\)
    (3.) (c++) 自带的 log2 函数貌似会很慢,可以先预处理

    for(int i = 1; i <= n; ++ i) log_2[i] = (i & (i - 1)) ? log_2[i - 1] : log_2[i - 1] + 1;
    

    (\)
    (4.)位运算尽量带括号,(因为太菜了,运算优先级搞不清

    (\)
    (5.)要是要用到 (long long) 乘法加法尽量把所有变量都设为 (long long),保不齐哪里就是几个 (int) 相乘又忘记强制改类型了就 (GG)

    (\)
    (6.)快速乘(在这之前我居然一直写的是 (O(log n)) 的龟速乘哈哈哈哈哈哈哈哈哈哈)

    inline ll mul(ll x, ll y, ll p)
    {
    	ll res = (ld) x / p * y + 0.5; 
    	res = (ull) x * y - (ull)res * p; 
    	return res < 0 ? res + p : res; 
    }
    

    (\)
    (7.)输出注意是否换行,是否空格

    (\)
    (8.) 清空数组少用 (memset) ,可以直接循环需要清空的范围

    (\)
    (9.)在处理很多数据的时候一定要想想相等的情况,或者重边之类的

    (\)
    (10.)数组下标不要从函数传到函数

    (\)
    (11.) 遍历字符串的时候用一个变量提前存字符串长度,否则是 (O(n^2))

    (eg:)

    F(i, 0, strlen(s) - 1) //O(n^2)
    
    int len = strlen(s);
    F(i, 0, len - 1) //O(n)
    

    (\)
    (12.) 手动o2
    #pragma GCC optimize(2)

  • 相关阅读:
    调用系统地图进行导航
    ShareSDK使用简介
    FMDB
    关于uitableView的Group模式滑动偏移问题
    iOS GCD详解
    通知中心传值
    开源 iOS 项目分类索引大全
    iOS10隐私设置及相应问题
    支付
    OC中如何把字典中的数据拼接成url字符串
  • 原文地址:https://www.cnblogs.com/Bn_ff/p/12725797.html
Copyright © 2020-2023  润新知