自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关系型数据库

单一的数据结构 ------ 关系现实世界的实体及实体间的各种联系均用关系来表示逻辑结构 ------ 二维表从用户角度 关系模型中数据的逻辑结构是一张二维表关系模型是建立在集合代数的基础上==关系模式 ( Relation Schema)==是对关系的描述 关系模式是型 关系是值(1) 元组集合的结构属性构成 属性来自的域 属性与域之间的(2) 一个关系通常由赋予它的元组语义确定(3) 现实的世界中还存在着完整性约束关系模式可以形式化的表示为 :RUDDOMFR。

2023-03-28 12:36:01 1150

原创 Java IO

【代码】Java IO。

2023-03-16 20:36:17 383

原创 Java异常

Java异常

2023-03-13 20:00:48 219

原创 三、Java面向对象

三、Java进阶语法

2023-02-11 16:53:48 436

原创 二、Java基础语法

二、Java基础语法

2023-02-06 15:43:09 163

原创 一、Java语言的入门

一、Java语言的入门

2023-02-06 13:25:51 74

原创 数论 筛法笔记

数论 筛法笔记

2022-06-09 13:36:23 113

原创 蓝桥杯2022年第十三届省赛真题-积木画

蓝桥杯2022年第十三届省赛真题-积木画

2022-06-06 11:16:12 824 1

原创 Leetcode 785.判断二分图

Leetcode 785.判断二分图

2022-06-02 10:57:34 122

原创 Leetcode 1584.连接所有点的最小费用

Leetcode 1584.连接所有点的最小费用

2022-06-02 10:54:56 110

原创 Leetcode 547.省份数量

Leetcode 547.省份数量

2022-06-02 10:53:19 147

原创 LeetCode 1025.除数博弈

LeetCode 1025.除数博弈

2022-06-01 14:01:05 167

原创 LeetCode 329.矩阵中的最长递增路径

LeetCode 329.矩阵中的最长递增路径

2022-06-01 13:58:25 441

原创 LeetCode 312.戳气球

LeetCode 312.戳气球

2022-06-01 13:56:04 71

原创 01背包与完全背包

01背包与完全背包01背包题目:有 NNN 种物品和一个容量是 VVV 的背包,每种物品都只能使用一次。第 iii 种物品的体积是 viv_ivi​,价值是 wiw_iwi​。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,VN,VN,V,用空格隔开,分别表示物品种数和背包容积。接下来有 NNN 行,每行两个整数 vi,wiv_i,w_ivi​,wi​,用空格隔开,分别表示第 ii 种物品的体积和价值。输出格式输出一个

2022-05-31 15:18:58 375

原创 力扣剑指 Offer II 095. 最长公共子序列

力扣[剑指 Offer II 095. 最长公共子序列]题目:思路:动态规划,定义一个大小为m,nm,nm,n的二维数组定义dpijdp_{ij}dpij​为s1s1s1字符串前iii个字符与s2s2s2字符串前jjj个字符的最长公共子序列不难发现当i=0∣j=0i=0|j=0i=0∣j=0时,dpi,jdp_{i,j}dpi,j​一定等于000刚好数组初始化所有之都为000,所以我们从i=1,j=1i=1,j=1i=1,j=1开始循环查表对于每一个dpi,jdp_{i,j}dpi,j​它

2022-05-26 11:20:13 79

原创 蓝桥杯2020年第十一届省赛真题-子串分值和

蓝桥杯2020年第十一届省赛真题-子串分值和题目:**思路:不难发现,对于 a1a_1a1​ ,它的分值就等于有多少个字串包含它但是对于 a2a_2a2​ ,它的分值就等于所有包含它的字串减去同时字串里包含a1a_1a1​的字串所以a2a_2a2​加分的子字符串的起点应该从a1a_1a1​的后一个字符串开始算对于每一个字符ana_nan​就应该等于区间[an−1+1,end][a_{n-1}+1,end][an−1​+1,end]所有包含它的子字符串endendend为字符串结尾an=[

2022-05-22 12:34:35 612 1

原创 蓝桥杯 [长草]

蓝桥杯 [长草]题目:思路:把草的初始位置加入队列,开始广搜, 把遇到的每一块坐标合法且时间不超过kkk个月的草加入队列, 直到队列为空再使用一个二维数组标记草的位置为111,其他位置为000,最后按题意输出即可代码:#include<bits/stdc++.h>using namespace std;#define ll long longconst ll MAX = 1e5 + 5;int N, M, k;typedef struct A { int x;

2022-05-21 16:24:34 211

原创 蓝桥杯 [九宫重排]

蓝桥杯 [九宫重排]题目:思路:以字符串的形式记录每一次的状态,从初始状态开始,把每一次没有遇到过的状态加入队列,再次进行下一次搜索,直到第一次遇到与结束位置一样的就是我们要找的最短次数代码:#include<bits/stdc++.h>using namespace std;#define ll long longconst ll MAX = 1e5 + 5;string Head;//开始位置string End;//结束位置typedef struct AA {

2022-05-21 16:18:19 134

原创 蓝桥杯 [调手表]

蓝桥杯 [调手表]题目:思路:从000开始广搜,把第一次遇到用一个数组存起来它的次数,第二次遇到直接retrunretrunretrun就行,因为第一次遇到的一定是最快到达的,在以当前为起点加111或者加kkk,把没遇到的添加到队列再开始广搜,直到队列为空说明都搜到了代码:#include<bits/stdc++.h>using namespace std;#define ll long longconst ll MAX = 1e5 + 5;int Bk[100010]={0

2022-05-21 16:11:27 235 1

原创 洛谷[P1120 小木棍]

洛谷[P1120 小木棍]题目:思路:枚举小木棒可能的长度,从数组最大值开始枚举,这个值能被总长度整除才是可行的在使用dfs枚举小木棒的每一种可能,如果不可能就找下一个可能的长度开始枚举注意不可能的情况就直接剪枝,不然会超时代码:#include<bits/stdc++.h>using namespace std;int arr[100];int Len=0;int BK[100]={0};//木棍状态// 目标长度 根数 上次循环

2022-05-20 18:43:04 818

原创 洛谷P1019 [NOIP2000 提高组] 单词接龙

# P1019 [NOIP2000 提高组] 单词接龙题目:思路:循环判断,首字母为"龙"开头的字母开始搜索,isstris_striss​tr函数判断有没有重叠区间(能不能接上),能的话就接上再搜索valvalval始终维护历史最长长度注意每个字符串可以用两次,所以判断的时候注意不是等于000才能用代码:#include<bits/stdc++.h>using namespace std;#define ll long longconst ll MAX = 1e5 + 5

2022-05-20 15:30:30 276

原创 牛客 跳马游戏

牛客 [跳马游戏]题目:思路:广搜,遇到终点或者队列为空退出,遇到能进的点就加入队列,每次从队列前面的开始搜第一次遇到肯定是路径最短的因为题目最大长度为400,所以直接定义数组就行,不用vector代码:#include<bits/stdc++.h>using namespace std;#define ll long longconst ll MAX = 1e5 + 5;int Map[500][500];int N,M;//地图大小int Zx,Zy;//终点坐

2022-05-20 13:33:28 75

原创 牛客 [走出迷宫]

牛客[走出迷宫]https://ac.nowcoder.com/acm/problem/14572题目:思路:从起点开始深搜,使用一个boolboolbool值进行判断,如果遇到了终点就变成truetruetrue代码:#include<bits/stdc++.h>using namespace std;#define ll long longconst ll MAX = 1e5 + 5;char Map[510][510];bool is=false;//

2022-05-20 10:48:24 133

原创 洛谷[P1605 迷宫]

洛谷[P1605 迷宫]https://www.luogu.com.cn/problem/P1605#submit思路:从起点开始深搜,遇到终点次数加一即可代码:#include<bits/stdc++.h>using namespace std;#define ll long longconst ll MAX = 1e5 + 5;int Map[510][510];int N,M;int ans=0;int Zx,Zy;//终点坐标void dfs(int x,i

2022-05-20 10:41:47 64

原创 洛谷[P1162 填涂颜色]

洛谷 [P1162 填涂颜色]https://www.luogu.com.cn/problem/P1162#submit题目:思路:先遍历一遍边框,把边框上为 000 的数字为起点进行深度搜索(因为在边框上,说明没有被111围住),把遇到的所有000标记为 −1-1−1然后再输出即可,遇到−1-1−1则输出000,遇到000(说明这个000是被111包围起来的)则输出222,111的输出不变代码:#include<bits/stdc++.h>using namespace st

2022-05-20 10:38:11 221

原创 蓝桥杯真题[玩具蛇]

蓝桥杯真题 [玩具蛇]https://www.lanqiao.cn/problems/1022/learning/题目:思路:暴力搜索,因为正方形是对称的,所以我们起点只需要在左上角,最后答案乘4即可从起点开始深度搜索,如果步数等于161616,也就说明把玩具放完了,ansansans就加一代码:#include<bits/stdc++.h>using namespace std;#define ll long longconst ll MAX = 1e5 + 5;in

2022-05-20 10:29:57 185

原创 蓝桥杯2017年第八届真题-k倍区间

#蓝桥杯2017年第八届真题-k倍区间**题目:思路:区间和可以看作是前缀和的差arr[l,r]=S[r]−S[r−l−1]arr[l,r]=S[r]-S[r-l-1]arr[l,r]=S[r]−S[r−l−1]那么问题就转换成的有多少对前缀和的差能够整除kS[r]−S[r−l−1]≡0(modk)S[r]-S[r-l-1]≡0(mod k)S[r]−S[r−l−1]≡0(modk)S[r](mod)k−S[r−l−1](mod)k≡0S[r](mod)k-S[r-l-1](mod

2022-05-18 10:35:44 166

原创 二维数组前缀和

二维数组前缀和对于二维数组求前缀和,我们先预处理第一行跟第一列的前缀和第一行跟第一列的前缀和可以看作一维数组的前缀和前缀和数组的0,0等于原数组的0,0,第一行为原数组第一行的前缀和,第一列为第一列的前缀和预处理://原数组int arr[10][10]={ {1,2,3,4,5,6,7,8,9,0}, {6,7,8,9,0,1,2,3,4,5}, {1,2,3,4,5,6,7,8,9,0}, {1

2022-05-18 09:57:12 2417 4

原创 洛谷P4552 [Poetize6] IncDec Sequence

洛谷P4552 [Poetize6] IncDec Sequence题目:思路:题目要求原数组的任意区间的值加一或者减一nnn次之后,数组的所有值都变成一样求nnn的最少值与能得到多少种结果题目可以转换成把原数组的差分数组的值除了第一项都变成000,每一次左端点加一或者减一,右端点减一或者加一最少次数我们可以再差分数组找到一对对的正数与负数or负数与正数,因为原数组[l,r][l,r][l,r]区间加一或者减一,差分数组就是diff[l]+1∣∣−1diff[l]+1||-1diff[l]+1

2022-05-17 23:54:53 121

原创 差分数组 力扣[1526. 形成目标数组的子数组最少增加次数]

差分数组 力扣[1526. 形成目标数组的子数组最少增加次数]差分数组:定义:差分数组的第一个值等于原数组第一个值,其他每项为原数组两两相邻值的差值int arr[10]={1,2,6,8,9,7,3,1,4,3};//原数组int diff[10];//差分数组int len=10;diff[0]=arr[0];//第一项等于原数组的第一项for(int i=1;i<len;i++){ diff[i]=arr[i]-arr[i-1];//其他每项为原数组两两相邻值的差值

2022-05-17 23:03:58 272

原创 713. 乘积小于 K 的子数组

713. 乘积小于 K 的子数组(双指针)题目:思路:双指针遍历每一次 r 遇到就用 sum 乘起来,如果大于 k ,左指针就右移知道 sum 小于k,每次循环都 cont 都加上r-l+1,因为合法才会出循环代码:class Solution {public: int numSubarrayProductLessThanK(vector<int>& nums, int k) { int cont=0; long long sum=

2022-05-15 21:44:19 51

原创 167. 两数之和 II - 输入有序数组

[力扣167. 两数之和 II - 输入有序数组] (map,双指针)题目思路:题目求找两个和为 terget 的数terget=a+bterget=a+bterget=a+b我们固定一个 a ,那么 b 的值也是唯一的每次遍历到当前的数时,可以找唯一的b有没有出现因为题目只有一个唯一的答案,所以找到的直接return没找到就把当前a的下标存到map中l代码:class Solution {public: vector<int> twoSum(vector&l

2022-05-15 21:06:59 59

原创 牛客月赛24 组队-B

牛客小白月赛24 组队-B题目:思路:先给数组排序答案为参加的人数二分答案找前缀最后输出右端点的值即可代码:#include <bits/stdc++.h>using namespace std;int is_cont(int cont,int max,int nums[],int len){ for(int i=1;i+cont-1<=len;i++){ if(nums[i+cont-1]-nums[i]<=max){

2022-05-15 21:06:48 93

原创 题目 2618 蓝桥杯2021年第十二届国赛真题-123 满分写法

蓝桥杯2021年第十二届国赛真题-123题目:思路:先转换成二维数组11 21 2 31 2 3 4…假设有 n 行,那么数组长度 len 应该等于len=n+n22len = \cfrac{n+n^2}{2}len=2n+n2​题目给出我们数组长度,逆推公式最大值可找到行数查找行数函数:int max_len(int n){ int l=1,r=n; while(l<=r){ int mid = (l+r)/2; if(

2022-05-15 10:40:09 1659 3

原创 P2678 [NOIP2015 提高组] 跳石头

洛谷P2678 [NOIP2015 提高组] 跳石头题目练习:思路:题目要求找出最短跳跃距离暴力,假设距离是 1 , 2 , 3, 4, 5, …判断函数:bool is_jump_max(int max,int nums[],int len,int k){ int mark=0;//前一块石头的下标 for(int i=1;i<=len;i++){//从第一块石头开始遍历 if(nums[i]-nums[mark]<max) {

2022-05-14 22:01:36 150

原创 牛客月赛37 加减-I 满分写法

牛客小白月赛37 加减-I题目描述思路:假设出现次数最多的元素的次数为 q二分答案,不难发现 当 q 为一时 ,一定符合而题目求最大的 q ,当 q 一路增加时 会遇到一个分界点 x ,x左边的值都符合,右边的值都不符合二分答案设左端点的值为1,右端点的值为数组的长度判断函数:int Abs(int n){ return n<0?n*-1:n;}bool is(int q,int nums[],int len,int k){ for(int i=1;i

2022-05-14 22:01:19 517 2

原创 前缀和二分查找字串长度 , 求第一个大于 x 的平方数 ,求根号 x 的精确值(小数点后五位)

前缀和二分查找字串长度 , 求第一个大于 x 的平方数 ,求根号 x 的精确值(小数点后五位)1.给定一个正整数序列,让你去一个字段,使得其区间的和大于等于x,问你这个字段最短可能长度是多少.思路:前缀和 遍历固定一个左端点,右端点二分查找找到最小值即可代码:#include <bits/stdc++.h>using namespace std;int main() { int map[1010] = { 0,1,2,4,7,9 }; int len =

2022-05-13 18:14:51 200

原创 map,二分查找,状态压缩,暴力(假硬币)

c++ map,二分查找,状态压缩,暴力(假硬币)1.map一个键值对应一个值,值的初始为零#include <bits/stdc++.h>using namespace std;int main(){ map<int, int> a; //键值为 int ,值也为 int 的一个 map a[4]=5; //键值 4 的值 为 5 //遍历 for(auto i : a){ cout <<

2022-05-11 17:14:12 744

原创 总结(取余,快速幂 , c++STL 库部分容器的使用)

笔记一.取余​ (1)两数相加取余:​ (a + b) % p = (a % p + b % p) % p​ (2)两数相减取余:​ (a - b) % p = (a % p - b % p) % p​ a或者b小于零的情况下对p取余看,​ a每次加p直到为正数为止,再对p取余​ 代码:​#include <bits/stdc++.h>using namespace std;int abs(int a, int b) { while (a

2022-05-09 15:37:35 799

空空如也

空空如也

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

TA关注的人

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