自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二维数组的前缀和

【代码】二维数组的前缀和。

2023-05-30 19:48:00 135

原创 高精度减法

高精度减法模板

2023-05-16 20:59:40 155

原创 高精度加法

首先是a[0]+b[0]=3+2+temp=3+2+0;并将结果放入temp中即temp=a[0]+b[0]=3+2+temp=3+2+0;首先是a[1]+b[1]=2+1+temp=2+1+0;并将结果放入temp中即temp=a[1]+b[1]=2+1+temp=2+1+0;然后用结果数组c接收结果的个位c[0]=temp%10,十位向上传递即temp=temp/10;然后用结果数组c接收结果的个位c[0]=temp%10,十位向上传递即temp=temp/10;重复直到每位数都进行了计算;

2023-05-16 20:10:17 138

原创 二分查找(2)-右边界

假设目标值在闭区间[l, r]中, 每次将区间长度缩小一半,当l = r时,我们就找到了目标值。和左边界情况类似,为了当mid等于目标值时保留mid右边的数组,因为右边界不可能在mid左边。因为mid指向目标所以L依旧不动,因此L,R的位置永远不会改变,陷入死循环。当mid=(L+R+1)/2=1时就不会陷入死循环。初始时,L=0,R=1,mid=(L+R)/2=0;如下图情况,数组为A,目标值为0。

2023-05-15 19:32:42 372

原创 二分查找(1)-左边界

因为我们找的是左边界,如果等于放在小于时。如下图的边界就在【mid, R】直接查找(错误)因此只能R=mid。因为目标值可能是多个,我们目的是判断边界不是查找值,A[mid]和目标值相等时mid不一定指向左边界。第一次判断如果mid的值大于等于目标值则R=mid,否则L=mid+1;其次二分查找利用有序性质排除不符合数组的一半然后不断逼近正确数组。首先二分查找主要用于有序的数组当中。

2023-05-12 21:40:01 534

原创 对于Django使用mysql数据库时候的jango.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.

报错提示django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.Did you install mysqlclient?原因1 在django使用的MySQLdb来连接mysql,但是这个只支持pyhton22. pyhton3中需要使用pymsql这个模块,因此需要自己下载3解决方法1.安装pymysqlpip install pymysql2.在项目同名目录中的__init__.py文件中添

2021-04-20 13:16:27 408

原创 理解OAuth 2.0

理解OAuth 2.0OAuth 2.0的作用用于第三方的安全认证。(第三方登入像QQ登入王者)大厂大多都有OAuth 2.0的接口,具体查看相应的开发平台OAuth 2.0 的名词(以微信登入百度举例)(1) Third-party application(百度):第三方应用程序,本文中又称"客户端"(client),即上一节例子中的"云冲印"。(2)HTTP service:HTTP服务提供商,本文中简称"服务提供商"。(3)Resource Owner(客户:一个人):资源所有者,本

2021-04-14 20:33:33 163

原创 AcWing - Dijkstra求最短路 II(堆优化Dijkstra&邻接表)

AcWing - Dijkstra求最短路 II(堆优化Dijkstra&邻接表)ityanger 2019-08-16 08:45:28 2250 收藏分类专栏: # 数据结构 # 最短路 ACM题解版权题目链接:https://www.acwing.com/problem/content/852/时/空限制:1s / 64MB题目描述给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为正值。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1

2020-08-27 23:21:20 289

原创 最短路Dijkstra算法

给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为正值。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式输出一个整数,表示1号点到n号点的最短距离。如果路径不存在,则输出-1。数据范围1≤n≤500,1≤m≤105,图中涉及边长均不超过10000。输入样例:3 31 2 22 3 11 3 4输出样例:3/

2020-08-27 08:29:33 894

原创 AcWing 841. 字符串哈希

AcWing 841. 字符串哈希Bryan要加油 2020-08-12 22:19:56 27 收藏分类专栏: AcWing算法基础版权给定一个长度为n的字符串,再给定m个询问,每个询问包含四个整数l1,r1,l2,r2,请你判断[l1,r1]和[l2,r2]这两个区间所包含的字符串子串是否完全相同。字符串中只包含大小写英文字母和数字。输入格式第一行包含整数n和m,表示字符串长度和询问次数。第二行包含一个长度为n的字符串,字符串中只包含大小写英文字母和数字。接下来m行,每行包含四个整

2020-08-21 21:30:38 184

原创 acwingHASH开放寻址法

维护一个集合,支持如下几种操作:“I x”,插入一个数x;“Q x”,询问数x是否在集合中出现过;现在要进行N次操作,对于每个询问操作输出对应的结果。输入格式第一行包含整数N,表示操作数量。接下来N行,每行包含一个操作指令,操作指令为”I x”,”Q x”中的一种。输出格式对于每个询问指令“Q x”,输出一个询问结果,如果x在集合中出现过,则输出“Yes”,否则输出“No”。每个结果占一行。数据范围1≤N≤105−109≤x≤109输入样例:5I 1I 2I 3Q 2Q

2020-08-21 20:46:30 157

原创 hash ACwing 840 - 模拟散列表(Hash)

维护一个集合,支持如下几种操作:“I x”,插入一个数x;“Q x”,询问数x是否在集合中出现过;现在要进行N次操作,对于每个询问操作输出对应的结果。输入格式第一行包含整数N,表示操作数量。接下来N行,每行包含一个操作指令,操作指令为”I x”,”Q x”中的一种。输出格式对于每个询问指令“Q x”,输出一个询问结果,如果x在集合中出现过,则输出“Yes”,否则输出“No”。每个结果占一行。数据范围1≤N≤105−109≤x≤109输入样例:5I 1I 2I 3Q 2Q

2020-08-20 23:34:20 147

原创 取反的数和原来的数的关系

背景在内存中数字并不是用源码来储存的而是补码而补码的由来 具体详情点这里补码的计算公式(按位取反)+000000001=它相反数的补码(11111111 - 一个数的补码)+00000001=它相反数的补码所以一个数的取反等于其相反数减一...

2020-08-09 21:23:46 485

原创 下标从1和0开始的kmp算法模板

acwingkmp题目描述给定一个模式串S,以及一个模板串P,所有字符串中只包含大小写英文字母以及阿拉伯数字。模板串P在模式串S中多次作为子串出现。求出模板串P在模式串S中所有出现的位置的起始下标。输入格式第一行输入整数N,表示字符串P的长度。第二行输入字符串P。第三行输入整数M,表示字符串S的长度。第四行输入字符串M。输出格式共一行,输出所有出现位置的起始下标(下标从0开始计数),整数之间用空格隔开。数据范围1≤N≤10^41≤M≤10^5输入样例3aba5.

2020-08-09 21:06:47 1224

原创 数组模拟栈和队列模板

队列和栈都是一种数据结构栈是后进先出(可以比作电梯)队列先进先出 (比较排队买东西的队列)下面用数组模拟栈和队列*************************//栈 const int N=10010;int w[N] ,tt=0;//插入w[tt++]=x;//下标从0开始//弹出tt--;//判断是否为空if (tt>=0) not emptyelse empty*****************************//队列int q

2020-07-27 23:00:08 131

原创 双链表模板

// e[]表示节点的值,l[]表示节点的左指针,r[]表示节点的右指针,idx表示当前用到了哪个节点int e[N], l[N], r[N], idx;// 初始化void init(){ //0是左端点,1是右端点 r[0] = 1, l[1] = 0; idx = 2;}// 在节点a的右边插入一个数xvoid insert(int a, int x){ e[idx] = x; l[idx] = a, r[idx] = r[a]; l

2020-07-27 22:24:22 116

原创 数组表示单链表

单链表实现一个单链表,链表初始为空,支持三种操作:(1) 向链表头插入一个数;(2) 删除第k个插入的数后面的数;(3) 在第k个插入的数后插入一个数现在要对该链表进行M次操作,进行完所有操作后,从头到尾输出整个链表。注意:题目中第k个插入的数并不是指当前链表的第k个数。例如操作过程中一共插入了n个数,则按照插入的时间顺序,这n个数依次为:第1个插入的数,第2个插入的数,…第n个插入的数。输入格式第一行包含整数M,表示操作次数。接下来M行,每行包含一个操作命令,操作命令可能为以下几种:(

2020-07-27 21:13:03 571

原创 数据的转换

C/C++不同类型的数据进行转换使用强制转换(type_name) expressionchar a='12';(int) a;//注意a本身数据类型没有变字符数字转int 数字'2'-'0';//char -'0'常用的算术转换常用的算术转换是隐式地把值强制转换为相同的类型。编译器首先执行整数提升,如果操作数类型不同,则它们会被转换为下列层次中出现的最高层次的类型:double m=12.0;int e=2;printf("%f",m/e);//数据被转换成double类型

2020-07-27 19:59:48 138

原创 常用的位运算

#include<iostream>using namespace std;const int N=10010;int n;int a[N],b[N];int main(){ int x=12; printf("%d",x>>1)//输出除以2 printf("%d",x>>3&1);//s输出第k位的二进制 printf(">>%d",x&(-x)); printf(">>>>%d",x&a

2020-07-26 23:08:49 137

原创 给定一个长度为n的整数序列,请找出最长的不包含重复数字的连续区间,输出它的长度。

给定一个长度为n的整数序列,请找出最长的不包含重复数字的连续区间,输出它的长度。输入格式第一行包含整数n。第二行包含n个整数(均在0~100000范围内),表示整数序列。输出格式共一行,包含一个整数,表示最长的不包含重复数字的连续子序列的长度。数据范围1≤n≤100000输入样例:51 2 2 3 5输出样例:3#include<iostream>using namespace std;const int N=10010;int n;int a[N],b[N];

2020-07-26 22:45:29 4954

原创 差分和二维差分

一维差分差分和前缀和是逆运算主要公式b[l]+=c;b[r+1]-=c;题目给出n个数,再给出m个询问,每个询问给出l,r,x,要求你在l到r上每一个值都加上x,输出加上c的数组#include<iostream>using namespace std;int N=1010;int n, m;int a[N], b[N];void insert(int l, int r, int c){ b[l] += c; b[r + 1] -= c;}in

2020-07-26 21:59:20 289

原创 前缀和 求子矩阵和

一维前缀和前缀和可以办o(n)的复杂度变为0(1)对于前缀和只要理解和记住公式就可以了s[i]=s[i-1]+a[i]//公式经典例题:求一段区间的和#include<iostream>using namespace std;const int N=10010;int n,m;int a[N],s[N];int main1()//一维前缀和 { scanf("%d %d",&n,&m); for (int i = 1; i <= n; i

2020-07-22 20:26:52 256

原创 自定义平方根函数

给定一个浮点数n,求它的三次方根。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留6位小数。输入格式共一行,包含一个浮点数n。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留6位小数。数据范围−10000≤n≤10000输入样例:1000.00输出样例:10.000000#include<iostream>#include<cmath>using namespace std;double cube(double num

2020-07-16 23:39:12 747

原创 数的范围(归并排序)

给定一个按照升序排列的长度为n的整数数组,以及 q 个查询。对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。如果数组中不存在该元素,则返回“-1 -1”。输入格式第一行包含整数n和q,表示数组长度和询问个数。第二行包含n个整数(均在1~10000范围内),表示完整数组。接下来q行,每行包含一个整数k,表示一个询问元素。输出格式共q行,每行包含两个整数,表示所求元素的起始位置和终止位置。如果数组中不存在该元素,则返回“-1 -1”。数据范围1≤n≤1000001≤

2020-07-16 22:29:02 194

原创 请你使用归并排序对这个数列按照从小到大进行排序。

请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 n。第二行包含 n 个整数(所有整数均在1~109范围内),表示整个数列。输出格式输出共一行,包含 n 个整数,表示排好序的数列。数据范围1≤n≤100000#include<stdio.h>#include<stdio.h>void merge(int num1[],int num2[],int start,int mid,int end )//进

2020-07-12 12:08:05 1645

原创 逆序排列数组,快速排序算法C/C++

快速排序是冒泡排序的升级版时间主要用在分区上缺点在于当数字全相同时就浪费时间实现从大到小排序排序函数//定义快速排序算法的函数void sort(int* a,int left,int right) { if(left>=right)//判读是否进行了一轮分区(同时作为递归的结束判断) { return ; } int i=left; int j=right; int key=a[left];//给关键数赋值//开始分区 while(i<j) { i.

2020-06-12 23:57:06 1267

原创 输入一行字符,分别统计出其中英文字母,空格,数字和其他字符数。

输入一行字符,分别统计出其中英文字母,空格,数字和其他字符数。#include<stdio.h>int main(){ int x=0,y=0,c=0,e=0;char m[100]; printf("please entry the str"); gets(m); char *p=m; while(*p++) { //比较空格数 if(*p==' ') { x+=1; } //字母数 else if(('A'

2020-06-10 20:33:09 711

原创 C/C++的文件操作

打开文件ILE*fp=fopen("<绝对路径>",“打开方式”) 方式:r,w a,rb 需要判断是否打开,打开失败return null做不到文件reason:没有权限 so on写文件按字符写入文件int fgetc(FILE *stream)fputc(int ,FILE)(写文件)int :需要写入的文件字符FILE:文件的指针returnsuccess 写入字符,defeat: return 1按行读写fgets(chara,int c,

2020-06-09 15:48:55 210

原创 python中的细节知识

去掉print输出的/nprint(,end=")print(,end=’,’)#表示以’,'结尾range(start,stop[,step])start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)...

2020-06-09 11:21:16 98

转载 submit 的快捷键

Ctrl+D : 选择单词,重复可增加选择下一个相同的单词Ctrl+F : 查找内容Ctrl+G : 跳转到指定行Ctrl+H : 替换Ctrl+J : 合并行(已选择需要合并的多行时)Ctrl+K0 : 展开所有Ctrl+K+T : 折叠属性Ctrl+K+B : 开启/关闭侧边栏Ctrl+K+K : 从光标处删除至行尾Ctrl+K+Backspace : 从光标处删除至行首Ctrl+K+L : 改为小写Ctrl+K+U : 改为大写Ctrl+L : 选择整行,重复可依次增加选择下一

2020-06-03 16:13:02 687

原创 二级python random模块

random.seed()1随机数种子当seed中有参数时之后产生的随机数都是固定的2当seed()中没有参数时产生的就是随机的# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换## 注意:请不要修改其他已给出代码import randombrandlist = ['华为','苹果','诺基亚','OPPO','小米']random.seed(0)m=random.random(0,4)name=brandlist(m)print(name)w

2020-06-01 20:25:28 341

原创 python socket 收发数据

python 使用socket进行tcp网络通信

2020-05-06 16:19:43 932

空空如也

空空如也

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

TA关注的人

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