zoukankan      html  css  js  c++  java
  • []記錄容易出錯的地方和一些知識

    //一个电脑美化资源网站:https://zhutix.com/

    //LaTeX用法:http://www.mohu.org/info/symbols/symbols.htm

    //作文素材:m.zwsc8.com

    //图论画图网站:https://csacademy.com/app/graph_editor/

    1.最大公约数和最小公倍数的乘积就是原两个数的积(別說我菜了)

    2.一个数被 11 整除的充要条件是:这个数奇数位上数字和 − 偶数位上数字和被 11 整除

    3.pipe是linux关键字

    4.if else嵌套一定要写else if

    5.语句不要写在break后面

    6.scanf("%c",&opt);會出錯,用scanf的話最好用opt[2]

    7.欧几里得距离:dis=sqrt( (x1*x2) + (y1*y2) )

    曼哈顿距离:dis=abs(x1-x2)+abs(y1-y2)

    切比雪夫距离:dis=max( abs(x1-x2) , abs(y1-y2) )

    切比雪夫距离和曼哈顿距离的转化:曼哈顿(x,y)<=>切比雪夫((x+y)/2,(x-y)/2)

    8.做乘法的時候可能需要轉long long

    9.dfs序:https://blog.csdn.net/qq_39670434/article/details/78425125

    10.组合数学求方案数時常常拿所有方案減去不可行方案

    11.康托展开公式:X=a[n]*(n-1)! +a[n-1]*(n-2)!+....+a[1] * 0!

    12.100023323 100021121两个质数

    13.组合数:C(n,m)=C(n,n-m)

          C(n,m)=C(n-1,m)+C(n-1,m-1) (杨辉三角)

          C(n,0)+C(n,1)+.......+C(n,n)=2^n

    14.prufer序列相关:https://blog.csdn.net/morejarphone/article/details/50677172

               http://www.cnblogs.com/dirge/p/5503289.html'

    17.凡是11111..... 22222..... 33333.....之类的序列都可用这个式子来表示:k*(10^x-1)/9

    18.乘法取模爆longlong要写快速乘

    19.对于点(a,b) (x,y)连成的线段而言(其中a>x,b>y), 在它们中间有gcd(a-x,b-x)-1个整点

    当选定(0,0)为起点时,和终点(i,j)所形成的向量上就会有gcd(i,j)个整数点

    20.盒子放小球问题:http://www.cnblogs.com/sdfzsyq/p/9838857.html

    21.从左下角走到n*m矩阵的右上角,方案数是C(n+m,n(或m)),把向上和向右看作一个序列,从中选择向上走m次/向右走n次的方案数

    22.位运算请加括号

    23.STL中sort原理:https://www.cnblogs.com/fengcc/p/5256337.html

    24.博弈论:https://www.cnblogs.com/nanjoqin/p/10211576.html

    25.手写栈:

    在竞赛中如果系统栈很小的话,过深的递归会让栈溢出,这个时候我们就要自己手写栈,将递归转化成手工栈。
    方法其实也很简单。
    基本思路上,我们就是用栈不断的pop,push。但是何时push,何时pop呢?
    在《算法导论》上对深度优先遍历树的讲解中,在深度遍历中,会对每个节点进行染色,白色为没有被访问过;灰色为被访问过,但是该节点的所有子树还没有完成访问;黑色,节点被访问过,而且该节点的所有子树都被完全的访问。
    所以,我们就通过颜色标记来进行判断了。
    整体的框架如下:

    memset(vis,0,sizeof(vis));
    stack S;
    S.push(root)
    while(!S.empty()){
        int u = S.top();
        if(vis[u] == 1)// if node is gray, then color black
        {
            vis[u] = 2;
            // do things after dfs children.
            S.pop();
        }
        else if(vis[u] == 0)// if node is white, then color gray
        {
            vis[u] = 1;
            // do things before dfs children.
            for all children v
                S.push(v);
        }
    }
    ---------------------
    原文:https://blog.csdn.net/u012139398/article/details/44300475
    26:绝对值可以去掉分类讨论

    27.二分写法

    1.最小值最大化

    复制代码
    int l = min_ans, r = max_ans;
    while (l < r) {
        int mid = (l + r + 1) / 2;   //+1避免 r == l + 1 时mid一直等于l,从而死循环
        if (ok(mid))    //符合条件返回True
            l = mid;
        else
            r = mid - 1;
    }
    复制代码

    2.最大值最小化

    1 int l = min_ans, r = max_ans;
    2 while (l < r) {
    3     int mid = (l + r) / 2;
    4     if (ok(mid))    //符合条件返回True
    5         r = mid;
    6     else
    7         l = mid + 1;
    8 }

    2019-10-6:

    各种题目要注意有没有无解情况注意判没有

    快速幂特判指数为0时返回1

    2019-10-11

    a|b - a&b 竟然是 a^b !!!

    2019-10-15

    最短路的必经边如何求?我们统计S到T的最短路条数,如果一条边cnt[S][u]*cnt[v][T]=cnt[S][T],那么这条边就是必经边。

    2019-10-31

    博弈论:后手消除先手影响

    multiset erase(迭代器)只删一个,erase(val)全部删并返回删的个数,count(val)有多少val

    2019-11-5

    不要const int inf=1e18

  • 相关阅读:
    正则 不匹配某个单词
    希赛 系统架构设计师教程 勘误
    QQ 快速登录中获取用户信息
    requests 配置tor代理后提示'Failed to establish a new connection: [Errno -2] Name or service not known'
    xadmin choice filter 多选
    kali linux 热点 无法获取IP
    windows10 输入法添加小鹤双拼
    del: recycle for linux
    安装WSL2
    cmake(转载)
  • 原文地址:https://www.cnblogs.com/superminivan/p/10500379.html
Copyright © 2011-2022 走看看