d101e02848ecb71ffa2052fc1a679eef081a285546ec419740153c186cf2bb7f86f59de6091abd254ae54002f61604a00b739fd27583f3948b0dae3085ca14bd2e66350e94e43b25f1f4bb6ca528aabcd2ad51ed61734a6317781be9c2a8053b1e76a86fc956294af26a49e23cdc0ade6a3798bfd9a2e91754f89752f86549d174916aea3234104f42e9aade0f2f7ba68e72d65e70fd2eb75987446c1f5c415e2ce9c8fa42e4e59fc9978776640705b87af005e315578330cb883791a23f807cc22d8be5b4e06256550c842a1345c72d15877598f69180726cd8126a9ce70bb46e15068f169a478146d7d3a6f17775ed7b8eaf1dfff7d4626 ...
本博文转载自 黑马程序员 的开源资料,只是为了方便自己学习,并非盗用他人成果!C++提高编程
本阶段主要针对 C++==泛型编程==和==STL==技术做详细讲解,探讨 C++更深层的使用
1 模板1.1 模板的概念模板就是建立通用的模具,大大提高复用性
例如生活中的模板
一寸照片模板:
PPT 模板:
模板的特点:
模板不可以直接使用,它只是一个框架
模板的通用并不是万能的
1.2 函数模板
C++另一种编程思想称为 ==泛型编程== ,主要利用的技术就是模板
C++提供两种模板机制:函数模板和类模板
1.2.1 函数模板语法函数模板作用:
建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。
语法:
12template<typename T>函数声明或定义
解释:
template — 声明创建模板
typename — 表面其后面的符号是一种数据类型,可以用 class 代替
T — 通用的数据类 ...
本博文转载自 黑马程序员 的开源资料,只是为了方便自己学习,并非盗用他人成果!C++核心编程本阶段主要针对 C++==面向对象==编程技术做详细讲解,探讨 C++中的核心和精髓。
1 内存分区模型C++程序在执行时,将内存大方向划分为4 个区域
代码区:存放函数体的二进制代码,由操作系统进行管理的
全局区:存放全局变量和静态变量以及常量
栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等
堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收
内存四区意义:
不同区域存放的数据,赋予不同的生命周期, 给我们更大的灵活编程
1.1 程序运行前 在程序编译后,生成了 exe 可执行程序,未执行该程序前分为两个区域
代码区:
存放 CPU 执行的机器指令
代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可
代码区是只读的,使其只读的原因是防止程序意外地修改了它的指令
全局区:
全局变量和静态变量存放在此.
全局区还包含了常量区, 字符串常量和其他常量也存放在此.
...
本博文转载自 黑马程序员 的开源资料,只是为了方便自己学习,并非盗用他人成果!C++基础入门1 C++初识1.1 第一个 C++程序编写一个 C++程序总共分为 4 个步骤
创建项目
创建文件
编写代码
运行程序
1.1.1 创建项目 Visual Studio 是我们用来编写 C++程序的主要工具,我们先将它打开
1.1.2 创建文件右键源文件,选择添加->新建项
给 C++文件起个名称,然后点击添加即可。
1.1.3 编写代码1234567891011#include<iostream>using namespace std;int main() { cout << "Hello world" << endl; system("pause"); return 0;}
1.1.4 运行程序
1.2 注释作用:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码
两种格式
单行注释:// 描述信息
通常放在一行代码的上方,或者一条语句的末尾,= ...
三分法用来解决单峰单谷问题,经典二次函数型的变化时,可以使用三分优化当问题是解决一堆都是整数的问题时,较为简单,模板代码如下:1234567891011121314151617181920#include <iostream>using namespace std;//下面就是要寻找的二次函数型数组,目标是找到其中的最大值int a[10] = { 0, 3, 25, 21, 20, 14, 12, 7, 2, 1 };int main(){ int z = 0, y = 9; while (z <= y) { //三分,就是将区间尽量平均分成三份 int mid1 = z + (y - z) / 3; int mid2 = y - (y - z) / 3; //判断两者中的较大值,那么较小值的一方的元素都不可能是最大值,直接舍去 if (a[mid1] >= a[mid2]) y = mid2 - 1; else z = mid1 + 1; } //最终结果位置与二分类似 cout < ...
2025.6.5 补充!!!软件最新更新,无需使用任何外在浏览器(不用下载谷歌浏览器了),需要下载最新版软件,选择软件自带的内置浏览器即可正常使用!最新脚本软件:https://cdn.ocsjs.com/app/download/ocs-2.8.3-setup-win-x64.exe
2025.4.15 补充!!!这段时间按照下面操作仍无法使用解决方法,按照下面操作执行后运行页面后,页面右上角提示“脚本猫已关闭…”,点击管理扩展程序进入,将页面右上方开发者模式打开,并且将页面下方脚本猫的按钮也打开,然后关闭网页,重启软件即可恢复正常使用。
如果你要解决的软件不在下面这几个之中,请移步另一篇博文“自动刷题刷课”
必要说明1.网课脚本不要开倍速!有的会系统识别用时过短然后清理你的记录还要重新看!对于网课,脚本便利在于可以自动下集,也就是说可以开着挂一个晚上就刷好了。(当然有些水课没管就可以高倍速速通,可以自己试一下,一段时间后如果清零就老实不开倍速挂着)
2.题目练习脚本大多是依靠题库,而题库可能会出现有的题目没有,或者题库答案不准确,正确率无法保证!不同脚本正确率有的相差巨大,建议多试 ...
二分(手搓)一.找出第一个大于等于 x 的元素1234567891011121314151617181920212223#include <iostream>#include <algorithm>using namespace std;int a[200005];int main(){ int n, x; cin >> n >> x; for (int i = 1; i <= n; i++) cin >> a[i]; int z = 1, y = n; //核心代码 while (z <= y) { //这里其实mid = (z + y) / 2,而下面的写法是为了防止有时候爆int int mid = z + (y - z) / 2; //下面两个条件判断,哪个不取等,就输出哪个 if (a[mid] >= x) y = mid - 1; else z = mid + 1; } cout << z; //cout << y + 1 ...
六六表(自己瞎取的名字前言:之前好几次做到关于质数的构造题,在去年的新生菜鸟杯遇到,以及寒假集训也遇到很多次,没有方法,所以经常做不出,而且还要花很多时间。。。现在学到了六六表,一种打表方式,具体如下01 02 03 04 05 06
07 08 09 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
31 32 33 34 35 36
37 38 39 40 41 42
43 44 45 46 47 48
.................
上表的规律 2 的倍数:第二列和第四列 4 的倍数:第四列
3 的倍数:第三列和第六列 6 的倍数:第六列
所以所有的质数一定在第一列或者第五列中,也就是 6n+1 或者 6n-1
从中可以衍生互质问题例题
取余公式(a + b) % p = (a % p + b % p) % p
(a - b) % p = (a % p - b % p ) % p
(a * b) % p = (a % p * b % p) % p
快速幂利用倍增思想,当求解 a 的 b 次方时,代码如下
12345678910111213141516171819202122232425262728#include <iostream>using namespace std;using ll = long long;ll quik_pow(ll a, ll b){ //temp存放 a^1, a^2, a^3, a^4....... ll temp = a; ll ans = 1; while (b) { //判断b的二进制的最后一位是否为1,是1就算入总结果 if (b & 1) ans = ans * temp; //随着b的二进制右移逐渐递变 temp = temp * temp; //b的二进制右移(舍弃最后一位 b >>= 1; & ...
题目12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#include <iostream>#include <queue>using namespace std;struct ty{ int z, y;}a[500005];int vis[500005];void xian(int f){ cout << f << ' '; if (a[f].z) xian(a[f].z); if (a[f].y) xian(a[f].y); return ;}void zhong (int f){ if (a[f].z) zhong(a[f].z); cout << f << ' '; if ( ...

