二维和一维坐标相互转换
123456789int id(int x,int y,int m){ //m列 return m*(x-1)+y;}pii rid(int u,int m){ int x=(u+m-1)/m;//m列 int y=u%m;if(y==0)y+=m; return make_pair(x,y);}
二维vector的使用
https://blog.csdn.net/m0_57298796/article/details/123952640 简单来说,必须给出具体行数,以及列的详细类型信息 123vector<vector<int>> a(r, vector<int>(c));int row = a.size(); //获取行数int column = a[0].size(); //获取列数
关于位运算的一些需要搞清楚的边界
最大的 int 型整数在二进制形式下表示为 0111 1111 1111 1111 1111 1111 1111 1111。这是一个 32 位的二进制数,其中最高位为符号位(0 表示正数),其余的位全部为 1。 这个二进制数对应的十进制值为 (2^{31} - 1),即 2,147,483,647。 所以只有31位,>>30就可以取到最高位(在正数int范围内)
关于char数组的字符串
在 C/C++ 中,'\0' 和 0 是等价的。它们都表示数值零。 '\0' 是一个字符常量,表示 ASCII 值为零的空字符(null character)。在字符串中,'\0' 用作字符串的结束标志。 而 0 是整数常量,表示数值零。在 C/C++ 中,字符类型可以看作是整数类型的一种特殊形式,因此 '\0' 可以被视为整数常量 0。 下面展示一个字符数组遍历的例子 123456789void insert(char *s){ int p=0; for(int i=0; s[i]; i ++){ int j=s[i]-'a';//字母映射 if(!ch[p][j])ch[p][j]=++idx; p=ch[p][j]; } cnt[p]++;//插入次数}
输入输出处理
1.io优化 1234const char endl = '\n'; //另外,请使用'\n'而不是 endl ,因为endl默认会增加刷新操作,而导致输出缓冲失效,降低效率。cin.tie(0);ios::sync_with_stdio(false); cin.tie(0) 和 ios::sync_with_stdio(false) 是 C++ 中用于优化输入输出的语句。 cin.tie(0) 的作用是取消 cin 与 cout 的绑定,默认情况下,当使用 cin 进行输入操作时,会先执行 cout 的缓冲输出。使用 cin.tie(0) 可以将 cin 和 cout 解绑,让它们可以独立地进行操作,从而提高输入输出的效率。 ios::sync_with_stdio(false) 则是取消 C++ 标准库输入输出流和 C 标准库输入输出流之间的同步。 默认情况下,C++ 标准库的输入输出流与 C 标准库的输入输出流是同步的,这就意味着在混合使用 C++ 的 cin/cout 和 C 的 scanf/printf...
输入输出处理(1)
1.io优化 1234const char endl = '\n'; //另外,请使用'\n'而不是 endl ,因为endl默认会增加刷新操作,而导致输出缓冲失效,降低效率。cin.tie(0);ios::sync_with_stdio(false); cin.tie(0) 和 ios::sync_with_stdio(false) 是 C++ 中用于优化输入输出的语句。 cin.tie(0) 的作用是取消 cin 与 cout 的绑定,默认情况下,当使用 cin 进行输入操作时,会先执行 cout 的缓冲输出。使用 cin.tie(0) 可以将 cin 和 cout 解绑,让它们可以独立地进行操作,从而提高输入输出的效率。 ios::sync_with_stdio(false) 则是取消 C++ 标准库输入输出流和 C 标准库输入输出流之间的同步。 默认情况下,C++ 标准库的输入输出流与 C 标准库的输入输出流是同步的,这就意味着在混合使用 C++ 的 cin/cout 和 C 的 scanf/printf...
一些常用到的有用知识
log(2,1000000)=19.931568569324174087221916576936341055188988358147483672328538374... 1MB = 1024KB 1KB = 1024B 1B(byte,字节)=8b(bit,比特). 1e6(1000000)(一百万)里有78498个质数
一些常用到的有用知识(1)
log21000000=19.931568569324174087221916576936341055188988358147483672328538374...\log_2 1000000=19.931568569324174087221916576936341055188988358147483672328538374... log21000000=19.931568569324174087221916576936341055188988358147483672328538374... 1MB = 1024KB 1KB = 1024B...
比赛环境配置及测试
比赛环境配置及机器测试 coderunnercoderunnercoderunner配置:注意打开:Run In Terminal设置,不然无法手动输入 123"cpp": "cd $dir && g++ $fileName -Wall -Wextra -fsanitize=undefined -DLOCAL -D_GLIBCXX_DEBUG -std=c++17 -g -O2 -o $fileNameWithoutExt && $dir/$fileNameWithoutExt" 编译命令可加参数: 12345-fdiagnostics-color=always //启用彩色诊断信息-pg// 启用性能分析 -Wno-sign-compare//禁用有符号和无符号比较的警告-Wl,--stack=1024102422//windows下调整栈大小976MB 其他配置:Settings zoom->Mouse Wheel Zoom Files: Auto...
常用数学库函数
对于c++对数函数的记录: C++函数__lg()和log2()都是用于计算以2为底的对数的函数,但它们有些地方是不同的。__lg()函数是一个非标准的函数,只在部分编译器中支持,它返回一个整数值,表示输入参数的二进制表示中最高位1的位置(从0开始计数)。例如,__lg(8)将返回3,因为8的二进制表示是1000,最高位1在第3位。log2()函数是C++11标准中提供的函数,它返回一个浮点数值,表示以2为底的对数。例如,log2(8)将返回3.0,因为8等于2的3次方。它们的返回值类型不同,前者返回整数,后者返回浮点数。另外,__lg()是非标准函数,只在部分编译器中支持,而log2()是C++11标准库中的函数,在大部分编译器中都可以使用。 作者:糖心伯虎 链接:https://www.zhihu.com/question/446219057/answer/2993917211 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 log函数包括两种函数 一种以e为低的log()函数 另一种为以10为底的log...
