蒟蒻の笔记
STL二分查找函数
int N = 10, a[] = {1, 1, 2, 4, 5, 5, 7, 7, 9, 9}, x = 5;
int i = lower_bound(a, a + N, x) - a, j = upper_bound(a, a + N, x) - a;
a[0] ~ a[i - 1] 为小于x的元素, a[i] ~ a[j - 1] 为等于x的元素,
a[j] ~ a[N - 1] 为大于x的元素
vector//超详解
v.push_back( )在数组的最后添加一个数据
v.pop_back( )去掉数组的最后一个数据
v.at(3)得到编号为3位置的数据
v.begin( )得到数组头的指针
v.end( )得到数组的最后一个单元+1的指针
v.front( )得到数组头的引用
v.back( )得到数组的最后一个单元的引用
v.max_size( )得到vector最大可以是多大
v.size( )当前使用数据的大小
v.resize( )改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
v.reserve( )改变当前vecotr所分配空间的大小
v.erase( )删除指针指向的数据项
v.clear( )清空当前的vector
v.empty( )判断vector是否为空
v.swap( )与另一个vector交换数据
__int128//大整数(10的18次方)
#include<iostream> using namespace std; inline __int128 read() { __int128 x = 0, f = 1; char ch = getchar(); while (ch < '0' || ch>'9') { if (ch == '-') f = -1; ch = getchar(); } while (ch >= '0' && ch <= '9') { x = (x << 1) + (x << 3) + (ch - '0'); ch = getchar(); } return x * f; } void print(__int128 x) { if (x < 0) { putchar('-'); x = -x; } if (x > 9) print(x / 10); putchar(x % 10 + '0'); } int main() { __int128 x = read(); print(x); return 0; }
zeller公式

c-->年份前两位
y-->年份后六位
m-->月份
d-->日
[ ]代表取整,即只要整数部分
注意!!!1,2月要当成上一年的13,14月计算
即2010年2月2日-->2009年14月2日
该博客主要用于辅助本人自己的OI学习
有任何误导虚心请求各位神犇赐教

浙公网安备 33010602011771号