OI基础知识

本文主要用于回顾知识

一、数字的二进制表示:

  1. 正数:原码。原码的表示比较简单,见下图。
  2. 负数:先将数字的二进制各位除符号位之外翻转(反码),再加一(补码)。例如:x=(0...1111),-x=(1...0001).

二、文件的输入与输出

  • freopen("in.in","r",stdin); //输入重定向,输入数据将从in.in文件中读取 
    freopen("out.out","w",stdout); //输出重定向,输出数据将保存out.out文件中

三、pair<int,int>的排序

  • 第一、二关键字分别为first和second.

四、二分(std)

  • 方法:int k=lower_bound(a+1,a+n+1,value)-a.
  • (获取value的位置)

五、去重

  • 方法:n=unique(a+1,a+n+1)-(a+1).
  • (n:序列内去重后的数字数量 a:存储序列的数组)
  • (使用前需要sort)

六、离散化

  • sort并去重后,使用二分直接获取值,即能获取离散化后的值.
原文地址:https://www.cnblogs.com/zbsy-wwx/p/11680667.html