![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
远不及你的微笑
这个作者很懒,什么都没留下…
展开
-
Acwing第3734题(求和)
相关题目:相关题目链接:Acwing第3734题(求和)https://www.acwing.com/problem/content/3737/解题思路:相关代码:#include<iostream>#include<vector>#include<cmath>#include<algorithm>using namespace std;long long l,r;vector<long long&g..原创 2022-04-06 21:36:54 · 159 阅读 · 0 评论 -
滑动窗口的再度理解
简要:我目前总结了两种模型,一种是一般模型,一种是特定模型。我们通过几道题目来总结这两套模板。相关题目链接:Acwing第79题(滑动窗口的最大值)https://www.acwing.com/problem/content/description/75/相关题目:解题思路:由于涉及到求最大值,我们要用到双端队列模型,不能使用一般模型,题目的具体思路我不会讲。相关代码:class Solution {public: int b[100001]..原创 2022-04-03 13:35:05 · 333 阅读 · 0 评论 -
对离散化的理解
简要:说真的,刚开始看这个知识点的时候,搞得我一脸懵逼,自己花了两个小时进行思考,对离散化这个知识点有了更深度的理解,主要是通过Acwing第802题(区间求和)进行展开。题目地址:Acwing第802题(区间求和)https://www.acwing.com/problem/content/804/相关题目:之前的思路:之前我是想开一个非常大的数组,利用前缀和来求出最后的答案。为什么之前的思路不行呢?极大的浪费空间,并且执行效率又低。并且数轴上的下标有负..原创 2022-03-24 17:32:59 · 980 阅读 · 6 评论 -
前缀字符串和前缀哈希表的理解
简要:主要是以两道题目的形式来学习一下这个两个知识点,前缀哈希表相关题目:解题思路:相关代码1:/* 暴力法,不断地截取字符串,然后进行比较。时间复杂度较高,可能是n^2级别的。*/#include<iostream>#include<string>using namespace std;int n,m;string s;int l1,r1,l2,r2;int main(){ cin>&...原创 2022-03-23 19:58:03 · 260 阅读 · 0 评论 -
2020年10月份蓝桥杯省赛B组C++题解
第一题:解题思路:没有思路,感觉大家应该都会吧。相关代码:#include<iostream>using namespace std;int res;int main(){ for(int i=1;i<=2020;i++){ int t=i; while(t>0){ if(t%10==2){ res++; }原创 2022-03-20 22:41:22 · 2725 阅读 · 0 评论 -
LeetCode第223题(矩形面积)
相关题目:解题思路:AB,CD直线相交有两种情况,不过我们可以用一个等式进行表达 int t=max(B,D)-min(A,C);当t<0的时候不存在交集。求矩形的交集也与之类似。相关代码:class Solution {public: int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) { int ...原创 2022-03-20 15:40:47 · 637 阅读 · 0 评论 -
Acwing第898题(数字三角形)和第3304题(数字三角形蓝桥杯真题)
相关题目:解题思路:相关代码1:#include<iostream>using namespace std;int a[501][501];//dp[i][j]表示的是从第一层到第i+1层,这条路径之和最大的数。int dp[501][501]; int n;int res=-1e8;int main(){ cin>>n; for(int i=0;i<n;i++){ for(int j=0;j<=i.原创 2022-03-18 22:46:45 · 345 阅读 · 0 评论 -
2021年第十二届蓝桥杯省赛第二场b组题解(自己写的)
蓝桥杯 12届 第二场 b组 c++原创 2022-03-18 01:12:08 · 511 阅读 · 0 评论 -
LeetCode第976题(三角形的最大周长)
相关题目:解题思路:相关代码:class Solution {public: int largestPerimeter(vector<int>& nums) { int res=0; sort(nums.begin(),nums.end()); for(int i=2;i<nums.size();i++){ if(nums[i-1]+nums[i-2]>nums[...原创 2022-03-17 17:42:09 · 1033 阅读 · 1 评论 -
Acwing第1221题(四平方和)
相关题目:相关代码:/* 暴力求解是性价比最高的。*/#include<iostream>#include<cmath>#include<algorithm>using namespace std;int target;int flag=0;int a,b,c,d;int main(){ cin>>target; for(int i=0;i<=sqrt(target);i++){ .原创 2022-03-02 23:39:22 · 57 阅读 · 0 评论 -
Acwing第730题(机器人跳跃问题)
相关题目:相关代码:(贪心做法)/* 假设刚好到了最后的时候,能量为0。*/#include<bits/stdc++.h>using namespace std;const int N=100010;int num[N];int n;int E[100010];int main(){ cin>>n; for(int i=1;i<=n;i++)cin>>num[i]; for(int i原创 2022-03-02 22:37:36 · 219 阅读 · 0 评论 -
完全背包问题的再度理解
简要:对于这类问题,第一次采用的是以二维数组的方式来解题,但是由于超时严重,所以我第二次采用的是一维数组的方式来解题,同时我在网上找到了一个比较好的讲解视频,比较通俗易懂。讲解视频:(虽然题目不一样,但是思路是类似的)零钱兑换https://www.bilibili.com/video/BV1H64y1v7V7相关题目:完全背包问题https://www.acwing.com/problem/content/3/相关代码(二维数组):#include<iostr.原创 2022-02-25 23:06:52 · 186 阅读 · 0 评论 -
leetcode第53题(最大子数组和)
相关题目:53. 最大子数组和https://leetcode-cn.com/problems/maximum-subarray/解题思路:y总是真的牛,我看了他画的图我一下就懂了。相关代码:class Solution {public: int maxSubArray(vector<int>& nums) { int res=INT_MIN; for(int i=0,f=0;i<nums.size()..原创 2022-02-23 21:52:21 · 171 阅读 · 0 评论 -
学习unordered_map(哈希表)相关知识。
简要:最近碰到了很多和哈希表相关的LeetCode题目,所以我花了一点时间来学习一下哈希表,下面是我对哈希表(unodered_map)的相关知识进行了依次总结。哈希表的介绍:这个就不需要说了吧,网上一大堆。相关方法:1 erase(键值); //除去键值所对应的键值对。2 count(键值); //判断是否存在该键值的键值对,存在则返回1,若不存在则返回0。但是count()函数在一种情况下比较特殊。219. 存在重复元素 II这道题就...原创 2022-02-22 19:59:46 · 129 阅读 · 0 评论 -
Acwing第791题(高精度加法)
相关题目:高精度加法https://www.acwing.com/problem/content/description/793/相关代码1:#include<iostream>#include<string>#include<stack>using namespace std;void add(string s1,string s2){ int t=0; //t表示的是上一位的进位。 stack<int> a原创 2022-02-03 17:37:31 · 719 阅读 · 0 评论 -
寒假二十天对于蓝桥杯的一些总结
简要:寒假我们一共放了四十天的假。我花了二十天的时间在准备蓝桥杯和学算法上,数据结构与算法大致我我都学了,除了图论和贪心,通过下面的题目来熟悉一下知识点,算法基础课和蓝桥杯网课的题目都要看,以下是语法基础课我认为比较重要的题目。目录:727 菱形 726 质数 725 完全数 756 蛇形矩阵 755 平方矩阵III 754 平方矩阵II 752 数组的右方区域 753 平方矩阵I 779 最长公共字符串后缀 778 字符串最大跨距 777 字符串乘方...原创 2022-01-28 15:15:26 · 1307 阅读 · 0 评论 -
Acwing第26题(二进制中1的个数)
相关题目:二进制中1的个数https://www.acwing.com/problem/content/description/25/补充:1 k&1的目的是为了取出k(以二进制的形式)的最后一位。2 取出k=(1101)千分位的数,k=k>>3&1。3 lowbit(int x){return x&-x} 该方法的目的是为了取出最后一个1后面的数字(包括1)例如:10100 -> 100。相关代码1:class S...原创 2022-01-21 14:21:12 · 167 阅读 · 0 评论 -
位运算的一些基础知识
简要1:一方有0,则答案取0,两方没0,则答案取1。简要2:一方有1,则答案取1,两方没1,则答案取零。简要3:对应的位置双方的数字不相同,则答案取1,对应的位置双方的数字相同,则答案取0。简要4:左移,前面摒弃,后面用0来补充。左移的实质是例如向左移动一位,则是多乘了一个2。简要5:与左移类似 。简要6:负数的二进制等于负数的绝对值取反后加1。简要7:0变成1,1变成0。...原创 2022-01-21 13:24:27 · 80 阅读 · 0 评论 -
二分搜索法
y总的上课笔记,别的同学写的,写的比较好,我转载一下。二分搜索法https://www.acwing.com/solution/content/8235/转载 2022-01-19 12:40:32 · 44 阅读 · 0 评论 -
Acwing第789题(数的范围)
解法1:#include<iostream>using namespace std;int n,q;int a[100001];int s[10001]; //存放的是起始位置,下标是所对应的数。int c[10001]; //存放的是出现的次数,下标是所对应的数。int e[10001]; //存放的是终止位置,下..原创 2022-01-19 12:34:30 · 533 阅读 · 0 评论 -
Acwing第466题(回文日期)
相关题目:回文日期https://www.acwing.com/problem/content/468/相关代码:#include<algorithm>#include<string>#include<iostream>using namespace std;int d[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31}; //二月写29天比较好一点,因为它包括了28天。int n,m;in原创 2022-01-12 22:17:54 · 167 阅读 · 0 评论 -
Acwing第1210题(连号区间数)
相关题目:连号区间数https://www.acwing.com/problem/content/description/1212/相关代码:/* 本题需要理解"连续"的意思,比如2 3 4 5这就叫连续,2 3 5这就不叫连续, 连续是差值一样的。*/#include<iostream>int a[10001];int N;int max1;int min1;int count;using namespace std;int main(){原创 2022-01-12 12:45:49 · 155 阅读 · 0 评论 -
Acwing第895题(最长上升子序列)
相关题目:最长上升子序列https://www.acwing.com/problem/content/897/解题思路:我在b站上找到了一个比较好的讲解视频。【算法太难了】【23】最长递增子序列-动态规划相关代码:#include <iostream>#include<cmath>using namespace std;int n;/* a[i]储存了序列中所有的数。 f[i]表示的是以a[i]结尾,前i...原创 2022-01-11 14:34:06 · 267 阅读 · 0 评论 -
蓝桥杯第1216题(饮料换购)
相关题目:饮料换购https://www.acwing.com/problem/content/description/1218/相关代码:#include<iostream>using namespace std;int n;int s;int main(){ cin>>n; s=n; while(n>=3){ //不要忘记n=3时也可以换取1瓶饮料。 s+=n/3; //表示目前所喝的饮料的数量。原创 2022-01-10 15:45:10 · 203 阅读 · 0 评论 -
Acwing第1211题(蚂蚁感冒)
相关题目:蚂蚁感冒https://www.acwing.com/problem/content/1213/相关代码:/* 1 蚂蚁和蚂蚁之间的碰面加掉头可以看成蚂蚁和蚂蚁之间的灵魂转换。 2 首先统计一下第一只感冒蚂蚁的左边向右走和右边向左走蚂蚁的数量。不管初始感冒蚂蚁是向右边走还是 3 向左边走,最终这些的左边向右走和右边向左走的蚂蚁会全部感冒。 4 然后举出特殊情况,当左边向右走的蚂蚁的数量=0,初始感冒蚂蚁向原创 2022-01-10 15:31:26 · 60 阅读 · 0 评论 -
Acwing第1205题(买不到的数目)
相关题目:买不到的数目https://www.acwing.com/problem/content/1207/相关代码:#include<iostream>using namespace std;/* 当p和q互质,也就是一个为奇数,一个为偶数的情况下,那不能凑出的最大整数为(p-1)(q-1)-1。这个定理需要记住。*/int main(){ int p,q; cin>>p>>q; cout<<(..原创 2022-01-10 13:39:48 · 160 阅读 · 0 评论 -
Acwing第796题(子矩阵的和)
相关题目:子矩阵的和https://www.acwing.com/problem/content/description/798/相关代码:/* 本题需要用到容斥原理。具体的思路看y总的视频。*/#include<iostream>using namespace std;int a[1001][1001];int s[1001][1001];int m,n,q;int main(){ cin>>n>>m>>q;原创 2022-01-09 16:05:20 · 83 阅读 · 0 评论 -
Acwing第789题(数的范围)
相关题目:数的范围https://www.acwing.com/problem/content/791/解题思路:暴力线性搜索,没有用到什么技巧。主要是分别设置了一个存放起始位置、终止位置的数组。利用该数出现次数来判断该数的起始位置和终止位置。相关代码:#include<iostream>using namespace std;int s[10001];int e[10001];int c[10001];int a[100001];int main().原创 2022-01-08 11:56:39 · 59 阅读 · 0 评论 -
Acwing第795题(前缀和)
相关题目:前缀和https://www.acwing.com/problem/content/797/注意点:此题应该设置一个前缀和数组,并且下标应该从0开始。相关代码:#include<iostream>using namespace std;int n,m;int x;int l,r;int s[100001]; //此处需要定义一个前缀和数组。int main(){ cin>>n>>m; ...原创 2022-01-08 11:46:49 · 98 阅读 · 0 评论 -
Acwing1209题(带分数)
相关题目:1209. 带分数 - AcWing题库https://www.acwing.com/problem/content/1211/解题思路:首先对1-9的数进行全排列,在全排列的途中,同时将该串数字分成三组。自处可以设置两个for循环。具体可见y总的解题思路。相关代码:#include<iostream>using namespace std;//首先要弄出1-9的全排列。bool st[100];int nums[100];int targe原创 2022-01-07 14:22:50 · 292 阅读 · 0 评论 -
Acwing第788题(逆序对的数量)
相关题目:逆序对的数量https://www.acwing.com/problem/content/790/解题思路:1 暴力法,直接用两个for循环就行了。2 要用到归并排序的思想,并且每一次归并的时候,要记录逆序数的数量,归并后消除一部分逆序,随后继续归并,直到结束为止。(消除部分逆序)举个例子,5 2变成2 5 的目的是消除5和2之间的逆序,但是和其他数的情况还是不知道的。相关代码:#include<iostream>using namespac..原创 2021-12-25 13:48:35 · 308 阅读 · 0 评论 -
Acwing第785题(快速排序)
相关题目:快速排序https://www.acwing.com/problem/content/787/解题思路:(我在b站上面找到了一个比较好的讲解视频,主要是运用到了填坑法)轻松搞定十大经典排序算法(冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序、堆排序、计数排序、桶排序和基数排序)相关代码:(代码我已在本视频的基础上进行了优化)#include<iostream>using namespace std;void sort1(i原创 2021-12-22 12:26:38 · 131 阅读 · 0 评论 -
Acwing第862题(三元组排序)
相关题目:三元组排序https://www.acwing.com/problem/content/864/相关代码:#include<iostream>#include<string>#include<vector>#include<cstdio>#include<algorithm>using namespace std;struct stc { int x; double y;原创 2021-12-21 10:40:37 · 82 阅读 · 0 评论 -
Acwing第20题(用两个栈实现队列)
相关题目:用两个栈实现队列https://www.acwing.com/problem/content/36/解题思路:s1作为主栈,s2作为辅助栈,当进行完pop(),peek()等操作时,s2中所有的元素要回到s1中。相关代码:class MyQueue {public: stack<int> s1,s2; /** Initialize your data structure here. */ MyQueue() { ..原创 2021-12-20 22:48:42 · 46 阅读 · 0 评论 -
Acwing第36题(合并两个排序的链表)
相关题目:合并两个排序的链表https://www.acwing.com/problem/content/34/解题思路:双指针法,给每个链表设定一个指针,进行遍历。相关代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }原创 2021-12-19 22:23:41 · 310 阅读 · 0 评论 -
Acwing第29题(删除链表中重复的节点)
相关题目:https://www.acwing.com/problem/content/27/http://删除链表中重复的节点解题思路:双指针法,具体实现可见y总的解题思路。相关代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {}原创 2021-12-19 21:37:23 · 292 阅读 · 0 评论 -
Acwing第35题(反转链表)
相关题目:反转链表https://www.acwing.com/problem/content/description/33/解题思路:画图加上头插法可以解决该问题。相关代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * };原创 2021-12-18 23:18:53 · 706 阅读 · 0 评论 -
Acwing第779题(最长公共字符串后缀)
相关题目:最长公共字符串后缀https://www.acwing.com/solution/content/70345/解题思路:取出s1和s2的最长公共后缀a,然后再将a和s3进行处理,取出s3和a的最长公共后缀,以此类推。相关代码:#include<iostream>#include<string>#include<algorithm>//首先定义s1和s2可以取出最长公共前缀的方法。string fun(string s1,stri原创 2021-12-13 19:35:27 · 913 阅读 · 0 评论 -
Acwing第778题(字符串最大跨距)
相关题目:字符串最大跨距https://www.acwing.com/problem/content/780/相关代码:#include<iostream>#include<string>#include<algorithm>using namespace std;int main(){ string s,s1,s2; char c; while(cin>>c,c!=','){ s=s+c;原创 2021-12-12 16:22:46 · 292 阅读 · 0 评论 -
Acwing第777题(字符串乘方)
相关题目:字符串乘方https://www.acwing.com/problem/content/779/解题思路:该主串=循环次数*最小子串的长度。相关代码:#include<iostream>#include<string>using namespace std;int main(){ string s,a,sum; while(cin>>s,s!="."){ for(int i=1;i<=s.le原创 2021-12-12 15:01:09 · 570 阅读 · 0 评论