自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 APPlet Day01

Applet day01

2022-06-08 08:27:43 113

原创 APPlet day04

applet day04

2022-06-06 18:06:01 93

原创 NumPy

提示1)数组的拼接可以运用函数concatenate,同时,输入参数axis=0表示向下拼接2)矩阵的转置需要运用函数transpose或者“数组名称.T"的方式实现。3)计算协方差矩阵需要运用函数cov,计算相关系数矩阵则要用到函数corrcoef。4)求矩阵的对角线用函数diag、矩阵的上三角用函数triu、矩阵的下三角用函数tril以及矩阵的迹用函数trace。提示:1)针对数组内部元素的求和需要运用函数sum,输入参数axis=0代表按列求和,输入参数axis=1代表按行求和,不输.

2022-03-19 16:47:19 455

原创 SpringBoot编程错误

.equlas(“asd”) 字符串转用注意命名方法,框架的时候

2022-03-04 21:48:51 208

原创 String List 数组知识

List list = Arrays.asList(questionEntity.getQOption().split(","));String.split(",") //以 , 为隔开将String变为数组List list = Arrays.asList(“Larry”, “Moe”, “Curly”) 赋值给 listdataType[] arrayRefVar = {value0, value1, …, valuek}; //数组赋值...

2022-03-04 20:13:08 134

原创 数据库增删改查

insert into employee(id,name,sex,birthday,entry_date,salary,resum)values(1,'zhangsan','male','1993-03-04','2016-11-10','1000','i am a developer');update employee set salary=5000;delete from employee where job='zhangsan';select id,name,chinese,eng

2022-03-04 11:23:14 266

原创 三角形的所有情形

a+b>c、a+c>b、b+c>a 这三个条件只能一个为 Fa=b,a=c,b=c 中只能一个为T(除全为T)a=b,a=c,b=c 中一个为T时,(a+b>c、a+c>b、b+c>a )中只能一个为 Fa=b,a=c,b=c 当这三者一样的时候(a+b>c、a+c>b、b+c>a )一定全为 F...

2021-12-16 20:49:11 183

原创 自动化测试实践

@BeforeEach //每个Test 之前@BeforeAll //全部运行之前 一次!@AfterEach //每个Test 之后@AfterAll //全部运行之后 一次!//double 类型( @ValueSource) @DisplayName("大一 + 大二")// 总的注释 @ParameterizedTest(name = "成绩是:{arguments}")// 元素注释 @ValueSource(doubles = {58,88})// 个数代表运

2021-12-11 17:58:14 616

原创 web知识

response.sendRedirect(“http://www.baidu.com”)//相对路径

2021-11-15 21:16:54 347

原创 AcWing 1101. 献给阿尔吉侬的花束(bfs)

#include <iostream>#include <queue>#include <cstring>using namespace std;//typedef pair<int, int> PII;const int N = 210;char a[N][N];int dis[N][N];struct hw{ int first,second;}oi;void bfs(hw start){ queue<h

2021-04-17 21:32:56 99

原创 c++ 蓝桥杯acwing 大概总结

递归1 关于选不选 922 把所有情况都列举出来 943 列举出指定长度的排列,并为升序 93dp1 关于选与不选 22 关于从上来还是从左来 1015前两种可以结合变为4种情况 12123 关于求 最大值 最小值多少种情况->(赋初值) 1212二分1 求出的值是否有多种情况,是多种就需要考虑 取最左边 还是 最右边 12212 关于r=mid 还是 l=mid ,根据题的方向写 check (check 里尽量写成等号的判断) 1227 730...

2021-04-15 16:10:12 450

原创 双指针

双指针思想:先用暴力做,做过之后看有没有重复的,把重复的利用起来,减少时间复杂度。

2021-04-11 20:32:45 58

原创 AcWing 1270. 数列区间最大值(线段树模板)

题目acwing 1264 也有线段树模板

2021-04-11 17:13:16 127

原创 AcWing 1265. 数星星(升级 树状数组)

题目思路:因为直接进行二维前缀和,O(n^2) 别超时,所以用 树状数组为O(n*lg n).因为输入时保证 一行一行输入,所以只要计算x坐标的增加。图中的A[x] 表示坐标为x 时,当前输入过有多少星星。此数组用 树状数组 表示。#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int N=320

2021-04-11 11:31:31 102

原创 AcWing 1264. 动态求连续区间和(树状数组 , 线段树(两个的介绍),数组 1 开)

题目树状数组 解法线段树 解法

2021-04-09 10:48:31 99

原创 AcWing 788. 逆序对的数量(归并排序)

题目

2021-04-02 21:45:22 87

原创 AcWing 1241. 外卖店优先级(模拟 -> 优化)

题目思路:优化:可以不循环没有订单的时间,只要记录下上一次订单的时间,用这次有订单的时间减去即可。有订单时,记录多长时间有订单,加上优先级。写题时注意写伪代码,有助于写题。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define x first#define y secondusing namespace std;typed

2021-04-02 20:22:22 126

原创 AcWing 1231. 航班时间(字符串处理,string 的大量知识点,sscanf)

题目思路:将输入的日期转化为 秒 进行计算,得出公式(如图),有的后面没有 +0 需要手动加上,保证数据形式相同。所以 y = 两个起落当地时间差相加 / 2代码:#include <cstring>#include <iostream>#include <cstdio>#include <algorithm>using namespace std;int n,t,sd;int get_second1(int d,int h,in

2021-04-02 12:04:38 124

原创 AcWing 1229. 日期问题(模拟,枚举)

题目思路:代码:#include <cstring>#include <iostream>#include<cstdio>#include <algorithm>using namespace std;int aa,bb,cc,a,b,c;int v[20]={0,31,28,31,30,31,30,31,31,30,31,30,31};struct ji{ int a,b,c;}p[10];int cmp(ji x,ji

2021-04-01 17:46:10 116

原创 AcWing 1219 .移动距离 (模拟)

题目思路:利用 横差 和 竖差 之和,找出答案。注意:中间输出调试 ;分阶段测试 看到底哪一阶段的错误 ;注意0值(特殊值)的处理 。代码:#include <cstring>//中间输出调试 ,分阶段测试 看到底哪一阶段的错误 ,注意0值(特殊值)的处理 #include <iostream>#include <algorithm>#include<cmath>using namespace std;int w,mm,nn;i

2021-03-29 17:44:47 105

原创 AcWing 787. 归并排序(最好的一种排序,稳定 + 快)

题目思路:代码:在这里插入代码片

2021-03-28 11:30:55 57

原创 AcWing 466. 回文日期(枚举,模拟)

题目思路:转化思维进行枚举,先枚举出符合回文数的日期,再判断它是否符合日期的要求(闰年判断)。代码:#include <cstring>#include <iostream>#include <algorithm>using namespace std;int days[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};//判断日期是否符合要求的函数 bool check_vali

2021-03-28 09:58:45 96

原创 AcWing 1204. 错误票据(string的转化,枚举)

题目思路:主要难在把 string 转化为 int ,本题用到 sstream 函数进行转化公式:if (a[i] == a[i - 1]) res2 = a[i]; // 找到重号else if (a[i] >= a[i - 1] + 2) res1 = a[i] - 1; // 找到断号stringstream 函数的一些用法一个与本题输入相似的代码,可以学习人家的写法#include <iostream>#include <string>#incl

2021-03-26 11:37:13 74

原创 AcWing 1236. 递增三元组(枚举 + 前缀和)

题目思路:如果直接暴力 三个 for, O(n^3) 超时,所以优化。关键是b 它是中间值,找出a []中比它小的数的个数as,找出b[]中比它大的数的个数cs,as * cs即为答案分析图:代码:#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int N=100010;typedef long long LL;int n,a[N],b[

2021-03-25 20:25:12 124

原创 AcWing 1210. 连号区间数(枚举,贪心)

题目思路:如果用排序了话,O(n^4) 明显超时。所以必须用比较的方法:找到一个范围中的 最大值 和 最小值 满足(max1-min1)==(j-i) 即成立 res++。此时的O(n^2),不超过 1 亿。sort(a,a+n) 表示的是 n 个数据排序超时代码#include<algorithm> #include<iostream> #include<cstdio> #include<cstring> using namespace

2021-03-23 21:25:53 85

原创 AcWing 1214. 波动数列(相似于 01背包的 dp)

题目思路:公式:f[i][j] = (f[i - 1][get_mod(j - a * (n - i), n)] + f[i - 1][get_mod(j + b * (n - i), n)]) % MOD;1号公式:一号公式推导过程(a % b + b) % b; //得到正余数的公式分析图:代码:

2021-03-22 17:45:06 91

原创 AcWing 1212. 地宫取宝(普通 dp,重点理解)

题目思路:利用c不确定的特点,来找到所有方案。注意:边界值处理。本题将所有的价值都进行了 +1 ,因为第一个位置不取了话第四维需要是 -1, 而 c++ 不支持数组下标为 -1。如果不 +1 ,分析如下:思路图:代码:#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 55, MOD = 1000000007;

2021-03-22 16:20:56 248

原创 活动安排(贪心算法,结构体排序)

题目活动安排贪心贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。思路:让结构体的 ed(结束时间)进行排序,然后拿 ed 去对比它们的开始时间,看有几个是相容的。#include<bits/stdc++.h>using namespace std;struct nod

2021-03-21 09:45:15 267

原创 AcWing 895. 最长上升子序列(01dp(特点:看能不能选,能选看是否符合最大或最小))

题目思路:分析图:代码:

2021-03-21 09:39:33 124

原创 AcWing 1015. 摘花生(二维dp)

题目题意: 从[1][1]走到[r][c] 所能得到的最大花生数量。关键:f[i][j]=max(f[i-1][j],f[i][j-1])+w[i][j];f[i][j] 可能从当前位置的上或左到达,所以计算出两者的最大值即可与01 dp 的区别是,01 只关心选或不选,而这个是从两个方位到达的。答案:#include<iostream>#include<cstdio>#include<algorithm> using namespace std;

2021-03-21 09:02:46 117

原创 AcWing 2. 01背包问题(01 DP, 带dp的初级分析)

题目在二维dp中i从1开始,前缀和也是i从1开始dp的各种类型:多重背包:每个物品选有限个,有限个的数字会告诉你分组背包:每组物品中选一个dp问题分析图二维 dp#include <iostream>using namespace std;const int N = 1010;int n, m;int v[N],w[N];int f[N][N];int main(){ cin >> n >> m; for(int i

2021-03-20 20:27:57 178

原创 AcWing 1216. 饮料换购(数学,水题)

题目重点:在while循环中,因为 x 和 yu 都是用!上一次!留下的,所以再定义一个 sum1 保留它们。答案#include <cstring>#include <iostream>#include <algorithm>using namespace std;int x,yu;int main(){ cin>>x; int sum=x; while((x+yu)>=3) { int sum1=x+yu;//

2021-03-20 17:00:37 88

原创 AcWing 1211. 蚂蚁感冒(数学思维,相遇相当于互相穿过)

题目思路:1.当蚂蚁遇见掉头的动作,相当于互相穿过对方(思维转换)。2.分初始病蚂蚁头的方向,两种情况。 如图:3.利用自己的思维做题时,一定要提前在纸上把自己的思维写下去(写全),自己给自己证明一下自己的思路是否可行。公式:right + left + 1或1答案:#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int

2021-03-20 16:38:20 113

原创 AcWing 1205. 买不到的数目(数学 公式推导)

题目思路:如果真的想不起来,可以进行打表,来找到答案的规律。从而推导出公式。知识点:最大不能组成的数=p*q-q-p;(p 和 q 必须满足 互质, 即满足两个数的最大公因数是1)这段递归的含义:理所应当结束判断条件应该写到第一行,来控制程序结束。即:当m=0的时候,可以判断出初始 m 是可以被 p 和 q 组成的。dfs(m - p,p,q) 和 dfs(m - q,p,q) 都是用来让m变小,如果m通过 p 和 q 的减可以变成0,则递归循环里的返回值全是 true ,最终也是 true 。

2021-03-20 13:31:07 95

原创 AcWing 1221. 四平方和 (二分,学习y总思维)

题目题意: 直接暴力使用 dd=n-aa-bb-cc 公式了话,时间复杂度为n^3,超时。所以使用t=n-aa+bb & sum.y=cc+dd 。先求出c和d的sum,进行字典排序。在c和d中的sum[].y数组中找 t=n-aa-bb 第一次出现的下标,这就是答案重点:1.最多枚举两个数,因为一个数是2200,2200的三次方已经超过了1亿2.用空间换时间(本题重点思路)3.用二分找一个数 是否在 之前的数中出现过3.如何找到字典序最小的数组自己的超时代码,与y总的代码没有太大却

2021-03-19 11:39:21 138

原创 AcWing 99. 激光炸弹(二维前缀和)

题目题意: 本题时间复杂度是O(n^2),最大是5000*5000=0.25亿,小于一亿,所以可以直接可以用二维前缀和模板。#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 5010;int n, m;int s[N][N];int main(){ int cnt, R; cin >&gt

2021-03-18 22:09:10 114

原创 AcWing 1230. K倍区间(前缀和 + 代码优化)

题意: 与k余数相同的数,相减就是k倍区。这样写可以让时间复杂度是O[n]级别,不会超时。n个数子区间个数算法。利用前n项和公式#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef long long LL;const int N = 100010;int n, k;//cnt【i

2021-03-18 20:37:32 105

原创 AcWing 796. 子矩阵的和(二维前缀和)

题目题意: 时间从n^3变为了 n^2, 进行s[]数组加的时候注意重复加入的部分,进行输出时注意多减的部分。公式:S[i, j] = 第i行j列格子左上部分所有元素的和s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1]以(x1, y1)为左上角,(x2, y2)为右下角的子矩阵的和为:S[x2, y2] - S[x1 - 1, y2] - S[x2, y1 - 1] + S[x1 - 1, y1 - 1]代码:#include<iostream&gt

2021-03-18 17:55:01 106

原创 AcWing 795. 前缀和(前缀和,一维)

题目思路: 把n^2的时间变为n。可以把输入的每个数变成它们相加的一维数组和。如果需要谁了话,直接相减就可以。公式: s[i]=s[i-1]+a[i] s[r]-s[l-1]代码:#include<iostream>#include<vector>#include<algorithm> using namespace std;const int N=1e5+10; int n,m;int a[N],s[N];int main()

2021-03-18 17:26:05 101

原创 AcWing 1227. 分巧克力 (y总的两大经典二分模板)

题目y总两个模板两者区别:看mid放到 l 还是 r 中int bsearch_1(int l, int r){ while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid; // check()判断mid是否满足性质 else l = mid + 1; } return l;}int bsearch_2(int l,

2021-03-17 21:11:26 362

空空如也

空空如也

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

TA关注的人

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