自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python爬虫的一些小技巧(持续更新中~)

爬虫时经常需要复制请求标头,而复制下来的键值对是没有单引号,也没有逗号的,当表头中的信息特别多时,我们一个一个手动添加是非常不方便的。这里的快捷键会和QQ中的锁定QQ快捷键冲突,退出QQ或修改QQ热键即可。爬取到的json格式数据看起来特别不方便。2.按如图所示顺序点击,即操作成功。1.使用pycharm的快捷键。如图,全都挤在一行里面了。(直接复制粘贴即可)

2023-03-21 11:11:35 829 1

原创 2021-10-24

1024,一切顺利

2021-10-24 01:01:47 560

原创 递归与递推——递归

目录递归实现指数型枚举递归实现排列型枚举递归实现组合型枚举递归实现指数型枚举#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>using namespace std;int n;const int N = 15;int st[N]; //状态:记录每个位置当前的状态,0表示还没有考虑,1表示选,2表示不选。void dfs(int u

2021-09-10 10:04:05 508

原创 高斯消元~

用途:高斯消元可以在n3时间复杂范围内,求解含n个方程,n个未知数的多元线性方程组。解的可能有三种:无解、无穷多组解、唯一解。做法:高斯消元可以通过初等行列变化把增广矩阵转换成阶梯型矩阵,进而求解 n 个线性方程组的解。初等行列变换:1.把某一行乘一个非0的数(方程左右两边同乘)2.交换某两行的位置3.把某一行的若干倍加到另一行上经过如上这三种操作,将原来的增广矩阵变成一个上三角的形式例线性方程组为:a11x1 + a12x2 + a13x3 + … + a1nxn = b1a21x1

2021-08-12 11:59:33 405

原创 数论(六)——扩展欧几里得算法

目录欧几里得算法裴蜀定理扩展欧几里得算法欧几里得算法欧几里得算法,即辗转相除法,是指用于计算两个非负整数a,b的最大公约数。应用领域有数学和计算机两个方面。计算公式gcd(a,b) = gcd(b,a mod b)。核心原理:gcd(a,b) = gcd(b,a mod b)一个基本的性质:d | a,d | b,d | (a+b),d | (ax + by)(d能整除a,d能整除b,那么d就能整除a+b,也能整除a的若干倍+b的若干倍)int gcd(int a,int b){ re

2021-08-02 11:44:40 367

原创 数论(五)—— 快速幂

快速幂用于快速求出 ak mod p 的结果(时间复杂度O(logk),其中 1 ≤ a,p,k ≤ 109)如果不用快速幂的话,就得循环做 a * a 共 k 次,如果 k = 1e9,那么就要乘109次,时间复杂度就太高了,所以我们要用快速幂解决此类问题。原理1)先预处理这些值:a20 mod p,a21 mod p,a22 mod p … … a2logk mod p2)组合出aK也就是把k拆成20,21…若干个2的次幂之和ak = a2x1·a2x2·… · a2xt = a2x1+2x2

2021-08-01 14:08:00 291

原创 数论(四)——欧拉函数

目录欧拉函数用公式求欧拉函数筛法求欧拉函数欧拉函数定义:在数论中,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目。注:1.φ(1)=12.互质是公约数只有1的两个整数,叫做互质整数。公式:n 分解质因数后:n=p1a1 × p2a2 × p3a3 … pkak,(其中 pi 为质数)那么 φ(n) = n × (1 - 1/p1) × (1 - 1/p2) ×… ×(1 - 1/pk)公式证明: 思路: 1.从1—n中去掉p1,p2…pk的的倍数;2.加上所有pi

2021-07-30 12:57:12 2022 1

原创 数论(三)——约数(约数个数,约数和,公约数)

目录试除法求约数求约数个数约数之和欧几里得算法试除法求约数试除法求一个数的所有约数,思路与判断质数的思路一样,优化的方法也是一样的,这里就不再赘述,没有看过我之前关于质数的博客可以点这里。从小到大枚举所有约数,但是我们只需要枚举每一对儿中较小的一个就可以了。时间复杂度:O(sqrt(n))vector<int> get_divisors(int n){ vector<int> res; //vector数组存储一个数的所有约数 for(int i =

2021-07-29 11:37:04 4250 4

原创 数论(二)——质数筛(埃式筛法、欧拉筛法)

目录埃式筛法(朴素筛法)埃式筛法(朴素筛法)思路:从2到x-1枚举,逐渐删去某个数的倍数。如图,用不同颜色的斜线表示每一轮删除操作从2开始,删除2的倍数;删除3的倍数;删除5的倍数;最后留下2,3,5,7,11均为质数。这样做的时间复杂度是O(nlogn)容易发现,我们可以对这个算法做出优化,我们并不需要重复地删每个数的倍数,我们只需要删除每个质数的倍数就行了。质数定理:1~n中有 n/ln(n) 个质数优化后的时间复杂度:O(nloglogn) <了解即可>直接写优化后

2021-07-28 17:48:16 339

原创 数论(一)—— 质数(判断质数、分解质因数)

目录质数质数的判定——试除法分解质因数——试除法质数定义:在大于1的整数中,如果只包含1和本身这两个约数,就倍称为质数或素数。质数的判定——试除法最暴力的写法:时间复杂度O(n)bool is_prime(int x){ if(x < 2) return false; for(int i = 2; i < x; i ++ ) if(x % i == 0) return false; return true;}从定义出发,首先看这个数是不是

2021-07-28 11:36:40 626 1

原创 二分图(染色法、匈牙利算法)

判别二分图——染色法深度优先遍历O(M+N)求二分图的最大匹配——匈牙利算法理论时间复杂度O(MN),实际运行时间一般远小于该值。理论时间复杂度高,但一般实际运行效果很好的算法还有很多,如:最大流算法。...

2021-07-26 13:43:42 560 4

原创 最小生成树典型算法总结~

最小生成树的分类????:最小生成树一般用于无向图,有向图几乎不会用到。方法选择:稠密图:用朴素版Prim算法稀疏图:用Kruskal算法堆优化版Prim一般不常用!朴素版Prim大体思路可以参考Dijkstra算法,并注意相同点和不同点思路1.将所有距离都初始化为+ ∞dist[1] = 0,dist[i] = + ∞ (dist数组表示起点到i点的距离)2.n次迭代for(i = 0; i < n; i ++ )①找到不在集合当中的距离最近的点(s表示当前已经在连通块中

2021-07-25 12:59:53 876 1

原创 数模学习笔记(二)——TOPSIS模型

目录模型介绍步骤基本过程第一步:将原始矩阵正向化极小型指标 → 极大型指标中间型指标 → 极大型指标区间型指标 → 极大型指标第二步:正向化矩阵标准化第三步:计算得分并归一化模型介绍TOPSIS法(Technique for Order Preference by Similarity to Ideal Solution)可翻译为逼近理想解排序法,国内常简称为优劣解距离法,TOPSIS 法是一种常用的综合评价方法,其能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。适用情况:(1)

2021-07-23 11:28:47 5155

原创 零基础入门Matlab(一篇两个小时就能学完的入门博客)

目录零基础入门matlab前言1.界面认识2.变量命名3.数据类型4.元胞数组和结构体5.矩阵操作6.程序结构7.基本绘图操作7.1.二维平面绘图7.2.三维立体绘图8.图形的保存与导出9.补充零基础入门matlab前言这篇文章很适合MATLAB的入门学习,这也是我在入门时学习的笔记。虽然说是”零基础“入门matlab,但是如果有其它编程语言基础的话,学起来自然会更轻松。特别鸣谢:B站UP主——爱研究的小阿楠1.界面认识2.变量命名注:Matlab中的注释%% 独占一行的注释(有上下横线

2021-07-22 14:16:37 406737 110

原创 LaTeX快速入门(超详细~)

LaTeX快速入门前言这是一篇LaTeX快速入门的学习笔记。编译环境:LaTeX + TeXstudio学习视频来源于:【1天玩转LaTeX】【写论文不怕格式出错啦!!!】【耿楠教授授权发布】_哔哩哔哩_bilibili特别鸣谢:耿楠老师的详细讲解1.LaTeX源文件的基本结构LaTex文件由导言区和==正文区(文稿区)==构成导言区:用于全局设置title:标题author:作者date:时间正文区:\maketitle:显示标题$内:数学模式$外:文本模式也可以用$$表示

2021-07-21 23:40:19 22769 2

原创 空间复杂度计算技巧

有些题目会对空间做一定的限制,如何计算空间复杂度?我们要了解以下常识1 byte(字节) = 8 bit (位)int 4byte / char 1byte / longlong 8byte / float 4byte / double 8 byte1MB 指 1M Byte= 1K= 1M...

2021-03-30 09:05:46 251

原创 Day-5 位运算

LeetCode 191.位1的个数会这个就OK了????位运算AcWing 85.不用加减乘除做加法用位运算的做法,思路类似于全加器。思路:不进位加法(算两个数的和,不管进位),其实与异或操作等价(xor)。(sum =num1 ^ num2) 1^1 = 0, 1 ^ 0 = 1进位怎么算? 当两个数都是1时,要向前进位,所以 carry(进位)= num1 & num2 << 1;那么两个数的和 = 不进位加法的结果 + 进位 (num1 +..

2021-03-23 09:09:49 137

原创 Day-4 旋转&矩阵置零

AcWing 3174. 旋转图片旋转是对图片最简单的处理方式之一,在本题中,你需要对图片顺时针旋转9090度。我们用一个n×mn×m的二维数组来表示一个图片,例如下面给出一个3×43×4的图片的例子:1 3 5 79 8 7 63 5 9 7这个图片顺时针旋转9090度后的图片如下:3 9 15 8 39 7 57 6 7给定初始图片,请计算旋转后的图片。输入格式输入的第一行包含两个整数nn和mm,分别表示行数和列数。...

2021-03-23 09:09:26 198

原创 Day - 3 表达式求值(栈)

AcWing 3302.表达式求值

2021-03-21 16:24:00 270

原创 Java浮点数如何保留小数???

点这里鸭!例:输入华氏温度f,计算并输出相应的摄氏温度c。c=5*(f-50)/9+10import java.util.Scanner;public class practice{ public static void main(String[] args) { //write your own codes Scanner input = new Scanner(System.in); float f = input.nextF

2021-03-20 15:34:47 587

原创 Day-2 小明上学&设计停车系统(模拟)

AcWing 3267.小明上学小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校。为了能尽可能充足地睡眠,他希望能够预计自己上学所需要的时间。他上学需要经过数段道路,相邻两段道路之间设有至多一盏红绿灯。京州市的红绿灯是这样工作的:每盏红绿灯有红、黄、绿三盏灯和一个能够显示倒计时的显示牌。假设红绿灯被设定为红灯rr秒,黄灯yy秒,绿灯gg秒,那么从00时刻起,[0,r)[0,r)秒内亮红灯,车辆不许通过;[r,r+g)[r,r+g)秒内亮绿灯,车...

2021-03-20 14:16:20 200

原创 Java的数据类型——一些奇怪的知识~~~

Java的数据类型——一些奇怪的知识~~~整数浮点数字符常见转义字符字符串布尔值整数进制:二进制0b、十进制、八进制0、十六进制0xpackage com.example;public class practice { public static void main(String[] args){ int i1 = 10; int i2 = 010; int i3 = 0x10; System.out.println(

2021-03-19 20:27:00 84

原创 Day-1 反转链表

AcWing 35.反转链表思路:1.指针反向2.维护相邻两个指针(a,b)a,b同时向后跳一位c = b - > next;b - > next = a;a = b, b = c;3.直到a走到结尾4.头结点next 指空迭代版本/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; *

2021-03-19 19:02:42 128

原创 Day - 27 ISBN号码(字符串处理)

AcWing 433.ISBN号码考点:字符串处理、模拟每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别

2021-02-15 11:13:02 146

原创 Day - 26 a^b (位运算、快速幂)

AcWing 89.a^b考点:位运算、快速幂#include <iostream>using namespace std;typedef long long LL;int qmi(int a,int b,int p){ int res = 1 % p; // p 是 1时,res 为0; while(b) //从最低为开始看b的每一位 { if(b & 1) res = (LL)res * a % p;

2021-02-15 10:47:07 95

原创 T Day - 5 数独简单版(dfs)

AcWing 1613.数独简单版考点:DFSDFS应用传送门之前做过的一个和数独相关的题目 ????数独检查数独是一种传统益智游戏,你需要把一个9×99×9的数独补充完整,使得图中每行、每列、每个3×33×3的九宫格内数字1∼91∼9均恰好出现一次。请编写一个程序填写数独。输入格式输入共99行,每行包含一个长度为99的字符串,用来表示数独矩阵。其中的每个字符都是1∼91∼9或..(表示尚未填充)。输出格式输出补全后的数独矩阵。数据保证有唯一解...

2021-02-03 15:41:39 174

原创 T Day - 4 K倍区间(前缀和)

AcWing 1230.K倍区间来源:第八届蓝桥杯省赛C++B组,第八届蓝桥杯省赛JAVAB组考点:巧用前缀和 (传送门)这道题数据范围很大,需要对前缀和模板进行优化,否则会TLE。优化后 时间复杂度 O(n)#include <iostream>using namespace std;const int N = 100010;int n,k;long long s[N];int cnt[N]; //cnt[i]存 s[i]/k 的余数是i的个数i.

2021-02-03 14:38:53 91

原创 Day - 25 献给阿尔吉侬的花束(BFS)

AcWing 1101.献给阿尔吉侬的花束考点:BFS阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。迷宫用一个R×CR×C的字符矩阵来表示。字符 S 表示阿尔吉侬所在的位置,字符 E 表示奶酪所在的位置,字符 # 表示墙壁,字符 . 表示可以通行。阿尔吉侬在 1 个单位时间内可以..

2021-02-03 12:05:33 246

原创 Day - 24 数独检查(模拟)

AcWing 703.数独检查考点:模拟数独是一种流行的单人游戏。目标是用数字填充9x9矩阵,使每列,每行和所有9个非重叠的3x3子矩阵包含从1到9的所有数字。每个9x9矩阵在游戏开始时都会有部分数字已经给出,通常有一个独特的解决方案。给定完成的N2∗N2N2∗N2数独矩阵,你的任务是确定它是否是有效的解决方案。有效的解决方案必须满足以下条件:每行包含从1到N2N2的每个数字,每个数字一次。 每列包含从1到N2N2的每个数字,每个数字一次。 将N2∗N2N2∗N2矩阵

2021-02-03 10:51:43 489

原创 T Day - 3 牛异或(前缀和、贪心、Trie)

AcWing 1414.牛????异或考点:前缀和、贪心、Trie

2021-02-02 15:32:16 106

原创 T Day-1 星空之夜

AcWing 1402.星空之夜考点:Flood Fill 、 哈希 、 BFS 、 DFS夜空深处,闪亮的星星以星群的形式出现在人们眼中,形态万千。一个星群是指一组非空的在水平,垂直或对角线方向相邻的星星的集合。一个星群不能是一个更大星群的一部分。星群可能是相似的。如果两个星群的形状、包含星星的数目相同,那么无论它们的朝向如何,都认为它们是相似的。通常星群可能有88种朝向,如下图所示:现在,我们用一个二维0101矩阵来表示夜空,如果一个位置上的数字是11,...

2021-02-01 12:25:24 124

原创 最强大脑——数字华容道(BFS)

AcWing 845.八数码在一个3×3的网格中,1~8这8个数字和一个“x”恰好不重不漏地分布在这3×3的网格中。例如:1 2 3x 4 67 5 8在游戏过程中,可以把“x”与其上、下、左、右四个方向之一的数字交换(如果存在)。我们的目的是通过交换,使得网格变为如下排列(称为正确排列):1 2 34 5 67 8 x例如,示例中图形就可以通过让“x”先后与右、下、右三个方向的数字交换成功得到正确排列。交换过程如下:1 2 3 1 2 3 1

2021-01-31 17:33:43 3669

原创 Day-22 最大的和(贪心)

AcWing 126.最大的和考点:贪心思路:暴力:四重循环,其中两个循环枚举起点坐标,两个循环枚举终点坐标,利用前缀和数组求和。 O(n^4)优化:一维:f(n)表示从第n个数向前扩展的最大和。假设要求fn,那么我们可以先看一下f(n - 1)是多少,如果f(n-1)大于0,那么f(n) = f(n-1) + n,反之如果f(n-1)小于0,那么f(n) = n;举个“栗子”我们可以用上面一维的思想来优化二维问题:枚举上下界(以行为上下界),把整个二维的矩阵看成是由一列.

2021-01-31 14:55:09 99

原创 Day-20 火星人(排列)

AcWing 420. 火星人人类终于登上了火星的土地并且见到了神秘的火星人。人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法。这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学家,科学家破解这个数字的含义后,再把一个很小的数字加到这个大数上面,把结果告诉火星人,作为人类的回答。火星人用一种非常简单的方式来表示数字——掰手指。火星人只有一只手,但这只手上有成千上万的手指,这些手指排成一列,分别编号为1,2,3……。火星人的任意两根手指都能随意

2021-01-31 12:09:58 121

原创 最短路问题(超详细~~)

文章目录最短路问题分类朴素Dijkstra算法最短路问题分类最短路算法知识结构图注:n为顶点数,m为边数每种不同的情况都有相应最适合的算法,但不用拘泥于一定要用某个算法。单源最短路:求一个点到其他所有点的最短距离多源汇最短路:源 指 起点,汇 指 终点。任意两点间的最短距离(起点、终点不确定)稠密图:m至少和n^2大致是一个级别 (稠密图用邻接矩阵存储)稀疏图:m至少和n大致是一个级别 (稀疏图用邻接表存储)重点:建图,如何把原问题抽象成一个最短路问题,如何定义点和边。朴素Di

2021-01-27 20:57:23 7262

原创 Day - 18 整数集合划分(贪心)

AcWing 1603.整数集合划分给定一个包含NN个正整数的集合,请你将它划分为两个集合A1A1和A2A2,其中A1A1包含n1n1个元素,A2A2包含n2n2个元素。集合中可以包含相同元素。用S1S1表示集合A1A1内所有元素之和,S2S2表示集合A2A2内所有元素之和。请你妥善划分,使得|n1−n2||n1−n2|尽可能小,并在此基础上|S1−S2||S1−S2|尽可能大。输入格式第一行包含整数NN。第二行包含NN个正整数...

2021-01-27 11:17:24 295

原创 Day-17 滑雪场设计(枚举、贪心)

AcWing 1353.滑雪场设计农夫约翰的农场上有 NN 个山丘,每座山的高度都是整数。在冬天,约翰经常在这些山上举办滑雪训练营。不幸的是,从明年开始,国家将实行一个关于滑雪场的新税法。如果滑雪场的最高峰与最低峰的高度差大于17,国家就要收税。为了避免纳税,约翰决定对这些山峰的高度进行修整。已知,增加或减少一座山峰 xx 单位的高度,需要花费 x2x2 的金钱。约翰只愿意改变整数单位的高度。请问,约翰最少需要花费多少钱,才能够使得最高峰与最低峰的高度差不大于17。输入格

2021-01-26 20:53:18 165 1

原创 Day - 16 阶乘(因式分解)

思路:显然把n!后面所有的0去掉,再模10,就可以得到最右边的非零数字。(n!/)% 10那么现在的问题就变成了如何求k。这里我们用到因式分解的方法,把10分解成2*5,那么n!=k = min(,) n!/ =#include <iostream>using namespace std;int n;int main(){ cin >> n; int x, res ...

2021-01-25 10:32:28 312

原创 Day 15 - 货币系统(dp)

考点:DP,背包问题二维写法:#include <iostream>using namespace std;const int N = 30,M = 10010;long long f[N][M];int main(){ int n,m; cin >> n >> m; f[0][0] = 1; for(int i = 1; i <= n; i ++ ) { int v;

2021-01-24 18:46:52 246

原创 拓扑排序

若一个由图中所有点构成的序列A满足:对于图中的每条边(x, y),x在A中都出现在y之前,则称A是该图的一个拓扑序列。有向无环图一定存在拓扑序列。故有向无环图也被称为拓扑图。思路:所有入度为0的点都可以作为起点。入度为0的点入队while(queue不空){ t = 队头; 枚举t的所有出边 t → j 删掉 t → j,d[ j ] -- ; if(d[ j ] == 0) j 入队}典例——A...

2021-01-24 17:19:59 113

空空如也

空空如也

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

TA关注的人

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