自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 Python爬虫

网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。

2024-08-02 16:41:42 3942

原创 MySQL进阶

存储引擎就是存储数据,建立索引,更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可以被称为表类型。-- 默认存储引擎:InnoDB-- 查询建表语句,以account为例-- 查询存储引擎-- 创建表 my_myisam,并指定MyISAM存储引擎id int;

2024-08-17 16:06:18 155

原创 MySQL基础

这时会显示emp*dept 条数据(笛卡尔积)消除笛卡尔积。

2024-08-09 09:50:51 1078

原创 C++小白鼠排队

N(1≤N≤100)只小白鼠,每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色用“red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。下面有N行,每行是一只白鼠的信息。一个为不大于100的正整数,表示白鼠的重量,和一个字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。多组测试数据,每组测试数据的输入第一行为一个整数N,表示小白鼠的数目。每个案例按照白鼠的重量从大到小的顺序输出白鼠的帽子颜色。

2024-08-03 16:54:28 225

原创 Python笔记(4)

【代码】Python笔记(4)

2024-07-22 18:01:40 561

原创 Python笔记(3)

【代码】Python笔记(3)

2024-07-21 20:08:30 607

原创 Python笔记(2)

【代码】Python笔记(2)

2024-07-20 22:01:51 176

原创 deque学习笔记

【代码】deque学习笔记。

2024-07-19 11:21:41 630

原创 Vector容器笔记

/vector容器中存放自定义的数据类型public:int m_age;//遍历it!= v.end();it++) {cout

2024-07-18 11:00:25 521

原创 C++ 士兵队列训练

某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数。num 变量用来计数,每次 num % k == 0 时表示报数到k,需要将当前位置的人移除,使用 q.erase(it) 删除元素并返回下一个元素的迭代器。共有N行,分别对应输入的新兵人数,每行输出剩下的新兵最初的编号,编号之间有一个空格。

2024-07-17 16:09:27 348

原创 残月之肃-C++

3、任意时刻,月男会同时持有2把武器,其中一把在手上(Main Hand) 负责攻击,此时另一把在背后(Off Hand) 等待切换(由规则1可知,初始会从武器队列中将AB两把武器发给月男,其中,A在手上,B在背后)。1、月男一共有5把武器,为了简单起见,我们用 A、B、C、D、E 来表示。6、当月男手上的枪子弹数大于0但小于10时,可以使用技能,使用技能后与规则4中,子弹打光的效果相同,没有额外的判断。w: 月男切换手上和背后的武器(即,原本位于手上的武器将置于背后,背后的武器切换到手上),不消耗子弹。

2024-07-16 15:49:39 457

原创 Python学习笔记

【代码】Python学习笔记。

2024-07-15 19:34:13 645

原创 Ring与环形文本问题

当我们需要在环形文本中查找模式时,例如文本 s = “abcabc” 和模式 p = “abc”,如果只是简单地从头开始匹配,可能会错过环形结构的特性。因此,使用 ss 是为了在解决环形文本中模式匹配问题时,能够简单而有效地处理文本的环形性质,以确保能够找到所有可能的模式 p 出现位置。这样,我们就可以从 ss 的任何位置开始,都能找到环形文本 s 中的所有可能的起始位置,从而保证不会错过任何模式 p 的出现。在解决环形文本中模式匹配的问题时,需要将文本 s 连接成 ss 的主要原因是处理环形性质。

2024-07-15 11:02:03 532

原创 C++查找最大元素与s.find()和s.insert()

std::string::insert() 是 C++ 标准库中 std::string 类提供的成员函数,用于在字符串中插入其他字符串、字符或者字符序列。在上述示例中,我们展示了如何使用不同版本的 std::string::insert() 函数,在字符串中指定位置插入新的内容。std::string::find() 函数是 C++ 标准库中 std::string 类提供的一个成员函数,用于在字符串中查找特定子串或字符的位置。std::string&:返回修改后的字符串的引用,允许对结果进行链式调用。

2024-07-14 09:18:22 857

原创 ACM/ICPC算法基础训练教程(4)

也就是说,贪心策略并不是从整体上考虑问题,它所做出的选择只是在某种意义上的局部最优解,而许多问题自身的特性决定了该题运用贪心策略可以得到最优解或较优解例如:在n行m列的正整数矩阵中,要求从每一行中选一个数,使得选出的n个数的和最大。理由是:若n=3,m=6,则6个作业的时间分别是 11、7、5、5、4、7,用贪心策略(每次将作业加到最先空闲的机器上)时间为 15,而用搜索策略最优时间应是 14,但是贪心策略提供了一个线索,那就是每台处理上的时间不超过 15,为搜索提供了方便。,和m个作业j,j,…

2024-07-13 19:34:39 817

原创 ACM/ICPC算法基础训练教程(3)

根据前序遍历的第一个字符可以确定这棵树的根,从中序遍历找到这个字符就可以把这棵树的左子树和右子树区分开来,从而递归调用这个函数解决每个子树。在竟赛中,递归的思想有着重要的应用。例如,一些树形的数据结构、搜索问题、树和图的很多算法,以及数学上递归定义的函数,等等。有多组输入样例,每组样例包含两行,第一行为二叉树的前序遍历,第二行为二叉树的中序遍历,每组样例输出一行表示该二叉树的后序遍历。给出一棵二叉树的前序遍历和中序遍历,找出这棵二叉树的后序遍历,题目保证这棵二叉树各个结点的值不重复。

2024-07-12 16:25:11 838

原创 Reversing Numbers C++

在默认情况下,C++的输入输出流(比如 cin, cout)与C标准库的输入输出流是同步的,这意味着在使用C++的输入输出流时,可能会因为需要与C标准库的同步而导致性能略有损失。在 C++ 中,默认情况下,cin 和 cout 是绑定在一起的,意味着在输入时,输出可能需要等待输入完成才会进行,这样可能会造成一些性能上的损失,特别是在需要频繁输入输出的场景下。需要注意的是,在取消同步后,应确保不要混合使用C++的输入输出和C标准库的输入输出,因为这可能会导致未定义的行为。

2024-07-11 16:52:05 413

原创 C++ 1. 进位2.{A}+{B}

题目描述在计算两个数相加时,难免会产生进位。求出两个数相加产生了多少次进位。输入描述第一行输入一个整数T表示样例个数。每个输入样例占一行,包含两个长度不超过1000的数。输入的数字可能包含前导0,即输入可能为"0123"。输出描述对于每个样例,输出一个数表示产生的进位数。样例输入 1299 1样例输出 1220代码countCarries 函数:接受两个参数 num1 和 num2,它们分别是要相加的两个大数的字符串表示。

2024-07-11 15:06:00 364

原创 画布与印章C++

创建了一个二维向量 canvas,大小为 n 行 m 列,每个元素初始化为 ’ ',即空格字符。现在Jim要在画布上按好几次印章,印章图案可以重叠,印章中的空格代表该单位为空,也就意味着印章在空格的地方印不上颜色。if (x + i < n && y + j < m):检查印章是否超出了画布的边界。

2024-07-10 20:18:18 598

原创 《算法基础》——链表(1)

下面的章节中将会介绍,在处理链表中某个单元格的时候,如果有一个指向该单元格。下面的算法展示了如何遍历链表中的单元格,并使用某种方法对单元格中的值进行处理。如果在链表中的第一个单元格中就包含目标值,但在它之前却没有单元格,因此该算法不能返回它。top变量可以是一个单元格类的变量,也可以是一个指向链表第一个单元的指针。如果要使用一个链表,就需要一系列算法来遍历链表、将项添加到链表中、查找链表中的项、删除链表中的项。该算法将检查链表的每一个单元格,因此如果该列表包含N个单元格,它的运行时间为 O(N)。

2024-07-09 17:14:20 736

原创 ACM/ICPC算法基础训练教程(2)

在接下来的N行中,每行三个整数A、B、C。gameboy猜这个4位数A,然后计算机回答猜对了B个数字,其中C个在正确的位置上。在某些问题中,问题的解被限制在一个有限的范围内,此类问题只需要按照题目的限定,逐一判断这些可能的解是否符合题目的要求,这种方法称为枚举。另一方面,等价地表示问题对解的要求对于一个元素,如果它是问题的解则判断程序给出“是”的回答,如果判断程序给出“是”的回答则它是问题的解.一方面,不重、不漏地描述用来限定问题的解的范围,重复了必定会降低效率遗漏了则表示不全面,有可能会找不到问题的解;

2024-07-08 17:24:17 681

原创 [C++]求一个正整数的素数因子

所以我们采用另一种方法,还是int i = 2 ,因为质数最小为2,然后如果i是num的最小因子,那么 i 一定是一个质数,然后num = num/i;此时就从num中提取出了一个质数因子,num变成了一个新的num并重新开始遍历i,如果i不是num的因子,那么i++;想求出一个正整数的所有素数因子,我首先想到的是先遍历它的所有因子,然后将因子中不是质数的转换为质数,但是这样耗费的时间较长而且代码冗长。这是目前想到的比较简单代码,如果各位大神还有个好的想法,可以留言讨论。

2024-07-06 16:18:00 217

原创 C++中Vector的使用

vector表示对象的集合,是一个表示可变大小数组的序列容器。就像数组一样,vector也采用连续储存空间来储存元素,也就是可以采用下标访问vector容器中的元素。但是它和数组不同的是它的大小是可以动态改变的。从本质上来讲,vector使用动态分配数组来储存它的元素。每当插入一个新元素时,vector都会重新分配一个新的数组,然后将全部元素复制到这个新数组中,但是这将耗费很多空间和时间。

2024-07-05 22:05:34 546

原创 大O符号与时间复杂度

遵循着阶乘算法,在第一个城市有N种可能的选择。2)如果一个算法对于函数f执行了一个需要O(f(N))步的操作,然后对于函数g执行了第二个需要O(g(N))步的操作,这个算法的整体复杂度是O(f(N) + g(N))。3)如果一个算法的复杂度是 O(f(N)+g(N)),并且对于足够大的N,函数f(N)远大于 g(N),这个算法的性能可以被简化为 O(f(N))。4)如果一个算法执行了一个需要O(f(N)步的操作,对于操作中的每一步执行了另外O(g(N))步,这个算法的总体复杂度是O(f(N)Xg(N))。

2024-07-04 22:25:01 1013

原创 ACM/ICPC算法基础训练教程(1)

对于题目较长的模拟题,建议阅读题目的时候把关键的语句标注出来,以免编写代码的时候有疏忽遗漏的地方,当对某个细节感到模糊的时候,最好的方法是再次仔细阅读题目描述,而不是把自己的看法作为题目的规则,更不能妄加揣测、无中生有。牌的花色有 C(clubs)、D(diamonds)、H(Hearts)、S(spades)4种,面值有 2、3、4、5、67、8、9、T、J、Q、KA共13种。(1)题目描述较长,主要是为了清晰地描述题目定义的规则(也有的题目因使用公认的规则而描述较短,如大数的四则运算等)。

2024-07-04 20:22:23 754

原创 如何用C++实现求两个整数的最大公约数和最小公倍数

最大公约数(Greatest Common Divisor, GCD)是指两个整数共有的约数中最大的一个,最简单的办法就是求出两个整数的所有因数,然后找到它们共有的因数中最大的。假设g是A和B的最大公约数,那么g是B的约数,那么g也是m×B的约数,又因为g是A的约数,那么g也是m × B + R的约数,所以g是R的约数。欧几里得算法的一个事实是GCD(A,B)=GCD(B,A mod B),也就是A和B的最大公约数与B和余数的最大公约数相等。

2024-07-02 20:38:17 283

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除