- 博客(74)
- 收藏
- 关注
原创 LeetCode每日一题 1074. 元素和为目标值的子矩阵数量 手写hash
题目描述给出矩阵 matrix 和目标值 target,返回元素总和等于目标值的非空子矩阵的数量。子矩阵 x1, y1, x2, y2 是满足 x1 <= x <= x2 且 y1 <= y <= y2 的所有单元 matrix[x][y] 的集合。如果 (x1, y1, x2, y2) 和 (x1', y1', x2', y2') 两个子矩阵中部分坐标不同(如:x1 != x1'),那么这两个子矩阵也不同。示例1输入:matrix = [[0,1,0],[1,1
2021-05-29 11:44:59
229
原创 天梯赛2021 L2-039 清点代码库 (25 分)
主要问题是否存在这个数组排序解决办法map<vector , int> 查看是否存在自定义排序sort第三参数易错:cin、cout多次使用时间长,选择scanf,printf代码#include <iostream>#include <map>#include <vector>#include <algorithm>using namespace std;const int N = 1e4 + 10;
2021-04-30 19:24:34
433
1
原创 C++优先队列(priority_queue)实现堆
头文件:<queue>定义:priority_queue<Type, Container, Functional>Type 就是数据类型Container 就是容器类型 , 常为vector ,不能使用listFunctional 就是比较的方式 ,greater 升序 -小根堆 , less 降序 - 大根堆基本操作:(和队列类似)top 访问队头元素 , queue为front() empty 队列是否为空 size 返回队列内元素个数 push .
2021-02-05 15:44:29
286
原创 VS Code 直接点击Run code 代码为编译(还是上一次的编译代码)
原因:未保存1、设置自动保存设置中,将Auto Save改为afterDelay2、ctrl+s
2021-01-20 20:10:58
2175
1
原创 C++ STL String 常规使用方法
构造函数有多个 string s1(); s1=""string s2("hello"); s2="hello"string s3(4,'a'); s3="aaaa"string s4("abcdef",1,3); s4="bcd";成员函数assign()和构造函数类似求长度size()string对象的比较支持> = !=等compare比较返回<0 ==0 >0 分别表示小于 等于 大于.
2021-01-05 16:42:08
144
原创 欧几里得 欧几里得扩展 欧拉函数 C++模板
/* 欧几里得 求最大公约数 */int gcd (int a , int b ){ return b ? gcd( b , a % b ) : a;}/* 欧拉函数 求小于等于n的正整数中与n互质的数的数目*/int phi(int x){ int res = x; for (int i = 2; i <= x / i; i ++ ) if (x % i == 0) { res = res / i * (i.
2021-01-04 23:43:55
166
转载 绿色健康林农销售平台需求分析UML图模型
绿色健康林农销售平台需求分析UML图模型项目名称:绿色健康林农销售平台1.需求概括1.1目标民以食为天!食品永远是和大众生活最为紧密的基本要素。随着人们生活水平的不断提升,人们在讲究饮食丰富性的同时,越来越关注于饮食的健康和安全问题。那些真正无污染的绿色食品现在已经发展成为了广大消费者热衷追逐的明星产品。然而,随着现代社会的进步与发展,食品安全却因为种种客观原因让公众失去信心,农药超标、化学添加剂、转基因技术不断的挑战人体健康的底线。让人们吃的好已经不再是农产品发展的重点,让人们吃的放心才是食品最
2021-01-03 12:40:38
430
转载 绿色健康林农销售平台需求分析
项目名称:绿色健康林农销售平台1.需求概括1.1目标民以食为天!食品永远是和大众生活最为紧密的基本要素。随着人们生活水平的不断提升,人们在讲究饮食丰富性的同时,越来越关注于饮食的健康和安全问题。那些真正无污染的绿色食品现在已经发展成为了广大消费者热衷追逐的明星产品。然而,随着现代社会的进步与发展,食品安全却因为种种客观原因让公众失去信心,农药超标、化学添加剂、转基因技术不断的挑战人体健康的底线。让人们吃的好已经不再是农产品发展的重点,让人们吃的放心才是食品最本质的标准!此销售平台专门为客户提供
2021-01-03 12:40:06
313
原创 LeetCode 1478.安排邮筒 (1、滑动窗口)
给你一个房屋数组houses和一个整数k,其中houses[i]是第 i栋房子在一条街上的位置,现需要在这条街上安排 k个邮筒。请你返回每栋房子与离它最近的邮筒之间的距离的 最小 总和。答案保证在 32 位有符号整数范围以内。示例 1:输入:houses = [1,4,8,10,20], k = 3输出:5解释:将邮筒分别安放在位置 3, 9 和 20 处。每个房子到最近邮筒的距离和为 |3-1| + |4-3| + |9-8| + |10-9| + |20-20|...
2021-01-02 23:18:20
201
原创 leetcode-找两个和为目标值且不重叠的子数组 (c++ 滑动窗口 剪枝)
给你一个整数数组arr 和一个整数值target。请你在 arr中找 两个互不重叠的子数组且它们的和都等于target。可能会有多种方案,请你返回满足要求的两个子数组长度和的 最小值 。请返回满足要求的最小长度和,如果无法找到这样的两个子数组,请返回 -1。示例 1:输入:arr = [3,2,2,4,3], target = 3输出:2解释:只有两个子数组和为 3 ([3] 和 [3])。它们的长度和为 2 。示例 2:输入:arr = [7,3,4,7],...
2021-01-01 23:58:08
219
原创 试题 算法提高 第二点五个不高兴的小明 (动态规划)
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 有一条长为n的走廊,小明站在走廊的一端,每次可以跳过不超过p格,每格都有一个权值wi。 小明要从一端跳到另一端,不能回跳,正好跳t次,请问他跳过的方格的权值和最大是多少?输入格式 输入的第一行包含两个整数n, p, t,表示走廊的长度,小明每次跳跃的最长距离和小明跳的次数。 接下来n个整数,表示走廊每个位置的权值。输出格式 输出一个整数。表示小明跳过的方格的权值和的最大值。样例输入8 5 3.
2020-12-30 23:52:17
1524
2
原创 蓝桥杯 试题 算法提高 天天向上 (c++ ac)
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 A同学的学习成绩十分不稳定,于是老师对他说:“只要你连续4天成绩有进步,那我就奖励给你一朵小红花。”可是这对于A同学太困难了。于是,老师对他放宽了要求:“只要你有4天成绩是递增的,我就奖励你一朵小红花。”即只要对于第i、j、k、l四天,满足i<j<k<l并且对于成绩wi<wj<wk<wl,那么就可以得到一朵小红花的奖励。现让你求出,A同学可以得到多少朵小红花。输入格式 第一行一个整数.
2020-12-29 23:48:57
496
原创 面向对象设计原则
1、SRP,单一职责原则。一个类应该只有一个引起变化2、LSP,替换原则。子类不能添加任何父类的约束3、OCP,开放-封闭原则。软件实体可扩展,不可修改4、ISP,接口隔离原则。用户仅获取必须的接口5、DIP,依赖倒转原则。高层不依赖底层,抽象不依赖细节6、CRP,合成复用原则。尽量使用对象组合,而不是通过继承来复用7、LOD,迪米特法则。软件实体尽可能少的与其他实体发生相互作用...
2020-12-28 23:49:27
80
原创 第十一届蓝桥杯国赛 C++ B组 试题 F: 皮亚诺曲线距离 (C++代码)
时间限制: 1.0s 内存限制: 256.0MB 本题总分:15 分【问题描述】皮亚诺曲线是一条平面内的曲线。下图给出了皮亚诺曲线的 1 阶情形,它是从左下角出发,经过一个 3×3 的方格中的每一个格子,最终到达右上角的一条曲线。下图给出了皮亚诺曲线的 2 阶情形,它是经过一个 3 2 × 3 2 的方格中的每一个格子的一条曲线。它是将 1 阶曲线的每个方格由 1 阶曲线替换而成。下图给出了皮亚诺曲线的 3 阶情形,它是经过一个 3 3 × 3 3 的方格中的每一个格子的一条曲线。它是将 2
2020-12-26 23:54:39
1173
3
原创 C++ auto pair基本用法
1、Pair 头文件<utility>简述:包含两个数据成员的结构体模板,分别为first和second,其两个数据类型可以不同应用:多数应用于需要返回多个两个数据的时候#include<utility>pair < int , string > tmp (1,"yoyoyo");cout<< tmp.first;cout<< tmp.second;2、auto简述:自动匹配数据类型,声明的变量必须初始
2020-12-25 13:03:51
3147
原创 蓝桥杯 C++ 国赛B组 试题 D: 本质上升序列 题目讲解(理解)
本题总分:10 分【问题描述】小蓝特别喜欢单调递增的事物。在一个字符串中,如果取出若干个字符,将这些字符按照在字符串中的顺序排列后是单调递增的,则成为这个字符串中的一个单调递增子序列。例如,在字符串 lanqiao 中,如果取出字符 n 和 q,则 nq 组成一个单调递增子序列。类似的单调递增子序列还有 lnq、i、ano 等等。小蓝发现,有些子序列虽然位置不同,但是字符序列是一样的,例如取第二个字符和最后一个字符可以取到 ao,取最后两个字符也可以取到 ao。小蓝认为他们并没有本质不同。对于一
2020-12-23 23:51:13
1402
2
原创 最长公共子序列问题(动态规划 C++) 并输出最长公共子序列
若给定序列X={x1,x2,…,xm},则另一序列Z={z1,z2,…,zk},是X的子序列是指存在一个严格递增下标序列{i1,i2,…,ik}使得对于所有j=1,2,…,k有:zj=xij。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定2个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列。给定2个序列X={x1,x2,…,xm}和Y={y1,y2,…,yn},找出X和Y的最长公共子序
2020-12-21 23:51:58
1438
原创 动态规划之最大K乘积问题 (思路+C++实现)
最大k乘积问题问题描述:设X是一个n位十进制整数,如果将X划分为K段,则可得到K个整数,这K个整数的乘积称为X的一个K乘积。请设计算法并编程实现,对于给定的X 和K,求出X的最大K乘积。输入:X,K,n输出:X的最大K乘积这里写的时候没有注意到给n位十进制数,直接选择了使用字符串然后.size()方法获取长度思路:最后求得的k段的数一定是k-1段的前一部分数 * 剩余的那部分数组成的整数,满足最优子结构如果用穷举的思想来考虑,很容易证明满足重复子问题边界:dp[1][j
2020-12-21 17:02:16
1716
原创 Pintia 666 (回溯 C++)
小明有一张m*n的好习惯记录卡,记录每一天的好习惯目标达成度(数字0-9表示)。某天目标完成达成,就在当天的格子里写上数字6,目标没有完全达成就写上一个小于6的数字(0-5),目标超额完成就写上一个大于6的数字(7-9)。记录卡上如果能找到一条长度为3的路径并且路径上的三个数字都大于等于6(这里的路径是指从某个格子出发,可以向左、右、上、下格子移动,并且不能重复经过一个格子),则小明就能得到一个“666”奖励。请你帮小明统计下他总共能得到多少“666”奖励。输入格式:输入第一行给出两个正整数m,n
2020-12-20 23:53:26
465
原创 回文串问题(动态规划DP C++)
一个字符串,如果从左到右读和从右到左读是完全一样的,比如"aba",我们称其为回文串。现在给你一个字符串,可在任意位置添加字符,求最少添加几个字符,才能使其变成一个回文串。输入格式:任意给定的一个字符串,其长度不超过1000.输出格式:能变成回文串所需添加的最少字符数。输入样例:在这里给出一组输入。例如:Ab3bdAbb输出样例:在这里给出相应的输出。例如:21#include<iostream>#include<str.
2020-12-18 22:39:57
391
1
原创 矩阵链相乘问题(备注 C++)
矩阵的乘法定义如下:设A是m×p的矩阵,B是p×n的矩阵,则A与B的乘积为m×n的矩阵,记作C=AB,其中,矩阵C中的第i行第j列元素cij可以表示为:cij=Σk=1paik×bkj=ai1b1j+ai2b2j+⋯+aipbpj.当多个矩阵相乘时,采用不同的计算顺序所需的乘法次数不相同。例如,A是50×10的矩阵,B是10×20的矩阵,C是20×5的矩阵, 计算ABC有两种方式:(AB)C和A(BC),前一种需要15000次乘法计算,
2020-12-17 23:52:57
492
原创 寻宝(动态规划+滚动数组)
小明有一张藏宝图,上面有m*n个房间,每个房间里面都有一个有一定价值的宝物,小明只能从左上角的房间进入收集宝物,且每次只能向右边或向下边的房间继续寻宝,最终只能从最右下的房间出来。请你帮小明计算下他最多可以收集到多少价值的宝物?输入格式:输入第一行给出两个正整数m,n(1=<m,n<=2000),随后给出m行数据,每行都包括n个正整数,中间用空格分割。输出格式:输出收集到的最大价值v,题目保证v<10^9。输入样例:4 41 18 9 37 10 6 125
2020-12-16 21:50:42
826
原创 最大子段和(简单思路,c++代码)
给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。要求算法的时间复杂度为O(n)。输入格式:输入有两行:第一行是n值(1<=n<=10000);第二行是n个整数。输出格式:输出最大子段和。输入样例:在这里给出一组输入。例如:6-2 11 -4 13 -5 -2输出样例:在这里给出相应的输出。例如:20.
2020-12-15 22:06:24
570
1
原创 vs code调试-监视 查看全部数组元素
1、添加检测*(type(*)[number])begintype,类型number,查看数量begin,起始地址指针2、直接查看鼠标指向变量名即可
2020-12-13 17:42:03
10575
1
原创 工作分配问题(AC c++)
设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。输入格式:输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数,表示工作费用。输出格式:将计算出的最小总费用输出到屏幕。输入样例:在这里给出一组输入。例如:310 2 32 3 43 4 5输出样例:在这里给出相应的输出。例如:9#include<iostream&
2020-12-11 23:16:39
1118
原创 VS code 配置c++环境(简洁)
1、下载vs code2、下载c++ 编译环境(如果下载过Dev c++等编译器则用它自带的,Dev c++文件中有MingGW)3、配置环境变量关于launch.json和tasks.json文件配置4、打开vs code,创建cpp文件运行,根据提示让vs code自行创建以上两个文件即可-----后补截图...
2020-12-10 23:20:18
126
原创 线段树(一)建树、求区间和
简介:线段树是一种二叉树,可以快速的查找区间和,解决区间类问题#include<iostream>using namespace std;// 建树:const int maxn = 100005;int arr[maxn],tree[maxn<<2]; //arr为原来区间,tree为线段树//递归⽅式建树 build(1,1,n);void build(int k,int l,int r){ //k为当前需要建⽴的结点,l为当前需要建⽴区间的左端点,r则为右端
2020-12-09 23:14:40
408
原创 欧拉筛(求素数)+框架代码注释
时间复杂度:O(n)特点:对每个合数只进行一次,筛选效率高于埃氏筛法#include <iostream>#include<string.h>using namespace std;const int maxn=100;int prime[maxn];//存储素数bool visit[maxn];//标志下标i是否为素数void euler(int n){ int num=0;//第几个素数 memset(visit,true,sizeof(v
2020-12-08 13:18:56
208
原创 试题 历届试题 分考场 C++(AC)
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 n个人参加某项特殊考试。 为了公平,要求任何两个认识的人不能分在同一个考场。 求是少需要分几个考场才能满足条件。输入格式 第一行,一个整数n(1<n<100),表示参加考试的人数。 第二行,一个整数m,表示接下来有m行数据 以下m行每行的格式为:两个整数a,b,用空格分开 (1<=a,b<=n) 表示第a个人与第b个人认识。输出格式 一行一个整数,表示最少分几个考场。.
2020-12-07 23:18:05
312
原创 试题 算法提高 最长滑雪道(深搜AC)
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 小袁非常喜欢滑雪, 因为滑雪很刺激。为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。 小袁想知道在某个区域中最长的一个滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。如下: 一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑坡为24-17-16-1。当然25-24-23-...-3-2-1更长。事实上,这是最长的一条。 你.
2020-12-06 23:29:27
207
原创 最佳调度问题(穷举)
假设有n(n<=20)个任务由k(k<=20)个可并行工作的机器完成。完成任务i需要的时间为ti。 试设计一个算法,对任意给定的整数n和k,以及完成任务i 需要的时间为ti ,i=1~n。计算完成这n个任务的最佳调度,使得完成全部任务的时间最早。输入格式:输入数据的第一行有2 个正整数n和k。第2 行的n个正整数是完成n个任务需要的时间。输出格式:将计算出的完成全部任务的最早时间输出到屏幕。输入样例:在这里给出一组输入。例如:7 32 14 4 16 6 5 3
2020-12-05 23:51:56
468
原创 0-1背包C++(回溯、动态规划)
给定n(n<=100)种物品和一个背包。物品i的重量是wi,价值为vi,背包的容量为C(C<=1000)。问:应如何选择装入背包中的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品i只有两个选择:装入或不装入。不能将物品i装入多次,也不能只装入部分物品i。输入格式:共有n+1行输入: 第一行为n值和c值,表示n件物品和背包容量c; 接下来的n行,每行有两个数据,分别表示第i(1≤i≤n)件物品的重量和价值。输出格式:输出装入背包中物品的最大总价值。输
2020-12-04 23:20:10
172
原创 八皇后问题
在国际象棋中,皇后是最厉害的棋子,可以横走、直走,还可以斜走。棋手马克斯·贝瑟尔 1848 年提出著名的八皇后问题:即在 8 × 8 的棋盘上摆放八个皇后,使其不能互相攻击 —— 即任意两个皇后都不能处于同一行、同一列或同一条斜线上现在我们把棋盘扩展到n×n的棋盘上摆放n个皇后,请问该怎么摆?请编写程序,输入正整数n,输出全部摆法(棋盘格子空白处显示句点“.”,皇后处显示字母“Q”,每两个字符之间空一格)。输入格式正整数n(n>0)输出格式若问题有解,则输出全...
2020-12-02 23:56:04
699
原创 排序结构(冒泡、选择、希尔、快速)
冒泡排序:void bubble_sort(int x[],int n){ int p=n; for(int i=0;i<n;i++){ for(int j=0;j<p-1;j++){ if(x[j]>x[j+1]){ swap(x[j],x[j+1]); } } p--; }}选择排序:void select_sort(int a[],int n){ int temp; for(int i=0;i<n;i++){ t
2020-12-01 23:12:49
96
原创 JSP 通过servlet跳转 页面中文变成问号❓
可能原因:使用了输出流PrintWriter解决办法设置编码:response.setCharacterEncoding("UTF-8");
2020-11-30 22:47:34
995
1
原创 蓝桥杯 试题 历届试题 连号区间数
资源限制时间限制:1.0s 内存限制:256.0MB问题描述小明这些天一直在思考这样一个奇怪而有趣的问题:在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要你的帮助。输入格式第一行是一个正整数N (1 <= N &l.
2020-11-24 23:36:47
340
原创 分形的递归输出+问题思路
分形,具有以非整数维形式充填空间的形态特征。通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状”,即具有自相似的性质。一个盒状分形定义如下: 度为1的盒分形为:X度为2的盒分形为:X X XX X依次类推,如果B(n-1)表示n-1度的盒分形,则n度的盒分形递归定义如下:B(n - 1) B(n - 1) B(n - 1)B(n - 1) B(n - 1)请画出度为n的
2020-11-23 23:29:10
195
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人