使用 bitset()可以快速输出某数二进制 cout<<bitset<8>(x); 马上输出x的八位二进制数
#define PI acos(-1.0); 求反函数用a加上函数类型就行了,而且结果是弧度制,double型;
scanf可以输入格式; 输入:UTC+8 char c; int x; scanf("UTC%c&d",&c,&x); c='+',x=8;
s.size()的返回值是unsigned类型,如果有用s.size()-x(x>s.size()),这个时候一定要注意类型转换; qwq还是直接把s.size()转成int或者long long在计算把; (qwq今天问了大佬这个问题,大佬说要自己多动手调试,这里一定要记下来,养成问别人的习惯就不好了,自己多动手!)
结构体排序完按输入的顺序输出,只需要在按输入顺序排序一下结构体就行了;
计算a到b中有多少个k的倍数:b/k-(a-1)/k;
https://blog.youkuaiyun.com/smf0504/article/details/51426750 C/C++中nth_element函数: 找到数组中第k小的数,时间复杂度为O(n); nth_element(first,kth,last) first和last表示部分排序的区间为[first,last)
指针kth表示完成后,这个位置的元素是第(kth-first+1)小的(注意first是第1小的)
priority_queue<ll>q; 优先队列默认按从小到大排列,也就是q.top()为最大值, priority_queue<ll,vector<ll>,greater<ll> > q; 重载后按从大到小排,也就是q.top()为最小值
数列 1 3 5 7 9的和为n*n
next_permutation(a,a+n) 全排列函数,返回下一个排列,没有下一个则返回false while(next_permutation(a,a+n)){} prev_permutation(a,a+n):同上,返回上一个排列;
钩子公式:n!除以(每个格子的钩子长度+1的乘积),钩子长度指的是格子右边和上边的格子数(数值递增的两边),钩子公式算的是固定形状的杨氏矩阵的个数;杨氏矩阵指的是每个格子上边的格子和右边的格子都递增的矩阵;
组合数: c(n,m)=c(n-1,m)+c(n-1,m-1); (原来人家是有规律的,这么多年一直没发现,嘤,笨比报道) 打表的时候记得要给c(i,0)赋值1,然后直接公式遍历就好了