日常积累

1.堆和栈在内存中的生长方向是相反的

2.背包问题是先循环物品在循环体积最后循环决策

3.字母大小写互化

   char a;
    a ^= 32(大小写互化) 
    a |= 32;(都化为小写) 
    a &= ~32(都化为大写)

4.一个数列(不规则规则都行)中最长不下降子序列有多少个,相当于该数列中最长不上升子序列的长度
5.DFS在c++中最多搜索10万层(c++中系统会自动开一个大小为4M的)
6.对于一个大于5的素数一定在6的倍数两侧,同样的不在6的倍数两侧一定不是素数,但是6的倍数两侧的不一定是素数

bool ss(int a)
{
    if(a == 2|| a == 3 || a == 5) return true;
    if(a == 1|| a == 4||) return false;
    for(int i = 2; i * i <= a; i += 6)
        if(a % i == 0 || a % (i + 2) == 0) return false;
    return true;
}

7.听了学长讲二分,想了想整理上二分模板吧,(二分模板有两个分别适用两种情况)

int efmb(int l,int r)
{
    while(l < r)
    {
        int mid = r + l + 0ll/*(有时候需要加上这个)*/ >> 1;
        if(满足mid的某种关系) r = mid;
        else l = mid + 1;
}

这个是第二个

int efmb(int l,int r)
{
    while(l < r)
    {
        int mid = r + l + 1ll >> 1;/*(有时候需要加上这个0ll一般情况下加上也不错)*/
        if(满足mid的某种关系) l = mid;
        else r = mid - 1;
}

8.全局变量是定义到堆里的

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注