小记

  • 求某年第一天是星期几
int firstday(int year){     //求某一年第一天是星期几
     return ( (year-1)+(year-1)/4-(year-1)/100+(year-1)/400+1 )%7;
 }
  • 完全平方数性质

  若存在a=b^2,则a为完全平方数。完全平方数的任何一个质因子,都是偶次出现的--acwing3491

  • 异或运算交换两数(a,b的值可以相同,地址不能相同)

  a=a^b;

  b=a^b;

  a=a^b;

  • 求数字x的位数:log10(x)+1;以10为底
  • 提取某数二进制中最右边的1

  int rightOne=eor&(~eor+1);

  • 防止数据过大求a,b中点

  a + ( ( b - a ) >> 1 );

  // 二进制右移一位相当于除以二

  • heapInsert 是从下往上移动到合适位置.  父位置为 (i-1)/2;
  • 堆结构 比 堆排序  重要
  •  迭代器:for(set<int>::iterator i=all.begin();i!=all.end();i++)    cout<<*i<<endl;
  • vector,set,map,unordered_set,,unordered_map可以用迭代器    stack,queue不可以用迭代器,stack栈 只可以访问栈顶,queue只能访问队首,队尾.
  • std::ios::sync_with_stdio(false);     //可以取消cin于stdin的同步,加快其cin cout的速度,但之后避免使用scanf和printf
  • 哈希表 HashSet<Node> Node是自己定义的类型,那么将传递的时候,将是直接传递地址(HashSet.insert(NodeA)),而基础类型只是值传递   
  •  二叉搜索树定义:左树比根小,右树比根大  即(中序遍历的结果为从小到大有序的数组)
  • 比较器java

  //返回负数时,第一个传入的参数排在前面

  //返回正数时,第二个传入的参数排在前面

  //返回0时,谁在前面都无所谓

  例如:在自定义类型中

typedef struct Student{
    int point;
    string name;
}student;

int comparator(student s1,student s2)
{
    return s1.point-s2.point;  //即按point 由小到大排序
    //等价于
    /* if(s1.point>s2.point){
        return -1;
    }
        if(s2.point<s1.point){
            return 1;
        }
        return 0; //等于时 */
}
  • 重载运算符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值