实用小tip(自用)

向上取整

要求一个\(a / b\) 的向上取整,做法是

(a + b - 1) / b;

memset节省初始化时间

memset是按字节线性初始化的,如果已经知道了要用的空间即可用以下写法

memset(a,0,sizeof (类型) * (num + 1));

fill函数初始化数组

memset()是按字节初始化,不能初始化某些特殊值
用fill初始化

fill(a,a + n,1);

max_element()

找寻容器中最大值第一次出现的位置,返回迭代器,加 * 解引用

int * pos = max_element(a,a + n);
cout <<  * pos << endl;

未知size的二维数组

vector<vector<type>> g(n,vector<type> (m));

取模后的答案不要进行操作

除法会很慢

在一个二维矩阵中的一个点顺时针旋转\(90^。\)的坐标变换

\((x,y) -> (y,n - x + 1)\)

树上任意一点的最远点一定是树的直径的两个端点之一

long long 类型 定义无穷大 1e18可能不够用 用0x3f3f3f3f3f3f3f3f

cout 输出浮点数会输出科学计数法

去重函数unque使用前要求数组sort过

posted @ 2022-05-05 10:46  notyour_young  阅读(51)  评论(0编辑  收藏  举报