• 2025-01-22C语言——前缀和,差分
    前缀和一维前缀和(One-dimensionalprefixsum)所谓一维,实际上就是一维数组,数组元素连续排列就可以看做一维的线,一维前缀和解决的主要问题是一维数组的区间和问题,即给定双指针l,r,求原数[l,r]内的和,利用数学上的数列来解决,即。()构建一维前缀和:由易知至少存在两个数值,所有我
  • 2025-01-22STL(Standard Template Library)
    STL(StandardTemplateLibrary)STL(StandardTemplateLibrary)标准模板库,是“容器”的集合。STL中常见的集合有:向量(vector)、栈(stack)、队列(queue)、优先队列(priorityqueue)、链表(list)、集合(set)、映射(map)等容器。STL容器的通用操作:1.与大小相关的操作(sizeop
  • 2025-01-21代码随想录:组合总和二
    这题说实话有点晕晕乎乎的,最后直接把代码随想录的代码复制过来了。要解决的问题是,尽管用了不同位置的相同元素,但是会产生相同的结果。解决方法是排序后,跳过相同元素。代码随想录那个used数组我属实没看懂,这个方法倒是看懂了。classSolution{private:vector<vector<int
  • 2025-01-21代码随想录:组合总和
    回溯的本质就是多层for循环嵌套,用于解决不知道有多少层for循环的情况,适当剪枝其实也是for循环里增加限制条件classSolution{public:vector<int>sum;vector<vector<int>>res;vector<vector<int>>combinationSum(vector<int>&candidates,inttarget){
  • 2025-01-212090. 半径为 k 的子数组平均值
    【题目】:2090.半径为k的子数组平均值classSolution{public:vector<int>getAverages(vector<int>&nums,intk){vector<int>res(nums.size(),-1);longcurSum=0;//记录当前滑窗内的数值和for(intl=0,r=0;r<nums.s
  • 2025-01-21IAEPC Preliminary Contest (Codeforces Round 999, Div. 1 + Div. 2)
    A.KevinandArithmetic题意:给你\(n\)个数,你一开始有一个\(x=0\),每次你让\(x\)加上一个没用过的数,然后\(x\)会一直除二直到变成奇数。如果你加上一个数后能除2,分数加1,问分数最大多少。奇数后面加奇数才能是偶数,但一开始\(x\)是零,那么需要一个偶数,否则只能浪费一个奇数。所
  • 2025-01-211.21练习
    原题地址https://www.luogu.com.cn/problem/P4552这道题是一道差分的题目,刚开始的时候我想的是找数列中的众数,然后求大于众数的数和小于众数的数与众数的最大差,然后再将它们相加,但这样很显然不对。在看了题解的思路后发现这道题其实不难(我太笨了)。首先这道题是说通过选定区间[l,
  • 2025-01-20PAT甲级-1019 General Palindromic Number
    题目题目大意如果一个十进制数在其它进制下为回文数,则输出“Yes”,否则输出“No”。再输出该回文数。思路简单模拟,十进制转n进制,除留取余法。需要注意,如果用字符串存储,当余数>9时,用reverse会改变这个余数,测试点2和测试点4报错。因此用数组来存储。vector容器可以直接通过=
  • 2025-01-20Quantum computing for the very curious——Part I: The state of a qubit
    NOTEQuantumcomputingfortheverycuriousPrefacequbitisshortofthequantumbit,whereasthestateofabitisanumber(0or1),thestateofaqubitisavectorinatwo-dimensionalvectorspaceMaybethestateofthequbitisbeingstoredsomehow
  • 2025-01-20冲刺蓝桥杯之速通vector!!!!!
    文章目录知识点创建增删查改习题1习题2习题3习题4:习题5:知识点C++的STL提供已经封装好的容器vector,也可叫做可变长的数组,vector底层就是自动扩容的顺序表,其中的增删查改已经封装好创建constintN=30;vector<int>a1;//创建叫a1的空的可变长的数组vector<int>a2
  • 2025-01-19代码随想录:将有序数组转化为二叉搜索树
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),right(nullptr){}*
  • 2025-01-19【C++】了解stack和queue
    目录stack介绍栈的结构栈接口的使用栈的基本题目最小栈栈的弹出压入序列二叉树的分层遍历栈的模拟实现stack.h文件队列的介绍队列的结构队列接口的使用队列的模拟实现priority_queue的介绍和使用接口使用优先级队列的题目应用数组中第k大的数字优先级队列的
  • 2025-01-19AGC018做题笔记
    AtcoderGrandContest018B-SportsFestival题目大意有\(N\)个人参加\(M\)个项目的运动会,这\(M\)可以至多被删去\(M-1\)个。第\(i\)个人会参加序列\(a_i\)中第一个可以被参加的项目\(a_{i,j}\)。现在要使参加人数最多的项目人数最少,求这个最小人数。解题思
  • 2025-01-19C++算法第十六天
    本篇文章我们继续学习动态规划第一题题目链接978.最长湍流子数组-力扣(LeetCode)题目解析从上图可见其实有三个状态代码原理注意:我们在分析题目的时候分析出来的是三个状态,分别是上升、下降、平坦,但是不一定要定义三个状态表示,一个不够加一个,直到可以解决这道题为止
  • 2025-01-18C++基础学习03
    C++基础学习032025-01-1715:59:09星期五关于数组数组有几个特点固定大小相同的数据类型连续存储这点就是说数组在内存中是连续存储的下标访问这点就是我们可以通过[num]的方式来对数组进行访问一般来说,我们使用dataTypearrayName[arraySize]的方式来创建
  • 2025-01-17【`std::vector` 的一些特性】
    目录基本概述常见问题[]与at()访问方式resize与reserve的区别为啥有pop_back()却没有pop_front()erase()方法基本概述std::vector是一个动态数组,能够存储任意类型的元素,并在需要时自动调整大小。与普通的静态数组不同,std::vector允许在运行时改变数
  • 2025-01-17【练习】力扣热题 100 每日温度
    题目给定一个整数数组temperatures,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用0来代替。示例1:输入:temperatures=[73,74,75,71,69,72,76,73]输出:[1,1,4,2,1,1
  • 2025-01-17【c++】【算法】【动态规划】最长公共子序列
    【c++】【算法】【动态规划】最长公共子序列//递归方式//最长公共子序//直接递归求最长公共子序长度intFindValue(conststring&X,conststring&Y,inti,intj){ if(i==0||j==0)return0; if(X[i]==Y[j])returnFindValue(X,Y,i-1,j-1)+1;
  • 2025-01-16leetcode第390场周赛
    目录100245.每个字符最多出现两次的最长子字符串100228.执行操作使数据元素之和大于等于K100258.最高频率的ID100268.最长公共后缀查询leetcode第390场周赛100245.每个字符最多出现两次的最长子字符串题意给定一个长度小于等于100的仅由小写字母构成的字符串,请你
  • 2025-01-16VP AtCoder Beginner Contest 382
    A-DailyCookie题意:有\(n\)个盒子,有些盒子有蛋糕,被人吃了\(m\)个蛋糕,问有几个盒子没蛋糕。直接计算即可。点击查看代码voidsolve(){intn,m;std::cin>>n>>m;std::strings;std::cin>>s;std::cout<<n-std::count(s.begin(),s.end(),
  • 2025-01-16c++基础算法讲解(写了ccf考试中可能出现的各种算法)
    枚举法枚举法是一种基本的问题解决策略,它尝试所有可能的情况以找到解决方案。这种方法通常用于问题规模较小且可以接受一定时间复杂度的情况。例子:找出三个数中最大的数#include<iostream>usingnamespacestd;intfindMax(inta,intb,intc){returnmax(a,
  • 2025-01-16C/C++基础之sort排序
    sort(起始地址,结束地址的下一位,比较函数)注:比较函数可写可不写。默认sort函数是升序排序的。使用方法如下:#include<bits/stdc++.h>usingnamespacestd;intmain(){ inta[100]; intn;//数组的实际长度 ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);//取消同
  • 2025-01-16基于Vector工具进行CAN协议错误帧的分析实践
    引言  CAN(ControllerAreaNetwork)协议是当前使用最普遍的车载通信协议之一,其优点不只体现在多主并行、最高达1Mbit/sec的传输速率(针对标准CAN)、基于优先级的仲裁机制以及广播发送的短帧结构,还体现在其错误检测机制上。通过总线数据以及总线波形来分析总线故障时,CAN协议错误
  • 2025-01-153.3.队列
    队列队列是一种先进先出表,也就是说它的插入在一端进行,而删除则在另一端进行。队列模型队列的基本操作有入队(enqueue),出队(dequeue)。入队就是在队尾(rear)插入一个元素,出队就是在队头(front)删除并返回一个元素。队列的实现根栈一样,队列可以使用任何实现表的方法来实现,包括链
  • 2025-01-15VP Daiwa Securities Co. Ltd. Programming Contest 2024(AtCoder Beginner Contest 383)
    A-Humidifier1题意:一个漏水的桶,在零时刻有零升水,进行\(n\)次加水,在\(t_i\)时刻加\(v_i\)升水,每一时刻会漏一生水,问第n次加水后有多少升水。直接模拟即可,每次加水先减去漏掉的水,注意至少有0升,然后加上新加的水。点击查看代码voidsolve(){intn;std::cin>>n;