- 2024-09-18918. 环形子数组的最大和
题目链接918.环形子数组的最大和思路最大子数组和-简单变体题解链接没有思路?一张图秒懂!(Python/Java/C++/Go/JS)关键点无时间复杂度\(O(n)\)空间复杂度\(O(1)\)代码实现:classSolution:defmaxSubarraySumCircular(self,nums:List[int])->
- 2024-09-181749. 任意子数组和的绝对值的最大值
题目链接1749.任意子数组和的绝对值的最大值思路前缀和/动态规划-最大子数组和-简单变体题解链接两种方法:动态规划/前缀和(附题单!Python/Java/C++/Go/JS)关键点无时间复杂度\(O(n)\)空间复杂度\(O(1)\)代码实现(动态规划):classSolution:defmax
- 2024-08-22【408DS算法题】022基础-递增输出单链表中的结点值
Index题目分析实现总结以上内容稍后补全,以下内容来自https://blog.csdn.net/weixin_60702024/article/details/141336041题目分析实现总结分析题目给定单链表的头结点,按照递增的顺序,输出单链表结点的值。分析实现具体实现如下:总结注意delete执行后,只会将
- 2024-08-06ACM日常训练日记——8.2
小训练KevinandPermutation题解很好不多说#include<bits/stdc++.h>usingnamespacestd;intT,n;intmain(){ cin>>T; while(T--){ cin>>n; for(inti=1;i<=n/2;i++)cout<<i+n/2<<''<<i<<'';
- 2024-07-277.26 Dp 主题赛 赛后总结
T1T1看上去就很板,开场后有几个人一直在说话导致我心烦意乱,加上Sorato和Psm很快就切掉,可我确一直没有思路,所以开始的时候很慌。后来冷静下来仔细思考一下,首先注意到数据范围允许\(O(n^2)\)的dp,不难想到设置一个这样的dp状态,\(f[i]\)表示将区间\([1,i]\)变成美丽的所需的最小花
- 2024-07-13一些可以在线段树上维护的信息和修改
信息最基础的信息之一:区间和\(sum=l.sum+r.sum\)最基础的信息之一:区间大小\(sz=l.sz+r.sz\)最基础的信息之一:区间最值\(minv=min(l.minv,r.minv)\)普通信息:最值个数if(l.minv<r.minv)minvcnt=l.minvcnt;elseif(r.minv<l.minv)minvcnt=r.minvcnt;
- 2024-05-01Educational Codeforces Round 165 (Rated for Div. 2) C. Minimizing the Sum题解
题意CodeforcesRound809(Div.2)D1.ChoppingCarrots(EasyVersion)给你两个整数\(n(1\len\le3e5),k(0\lek\le10)\),一个数组\(a(1\lea_i\le10^9)\)。你可以进行如下操作最多\(k\)次:选定一个数\(i(1\lei\len)\),让其变为相邻的数(变为\(a_{i-1},a_{i
- 2024-03-17P10218 [省选联考 2024] 魔法手杖 题解
Description给定\(a_1,a_2,\dots,a_n\)以及\(b_1,b_2,\dots,b_n\),满足\(a_i\in[0,2^k-1]\)以及\(b_i\geq0\),你需要给出\(S\subseteq\{1,2,\dots,n\}\)以及\(x\in[0,2^k-1]\)满足以下条件:\(\sum\limits_{i\inS}b_i\leqm\);满足以上条件的前提下,最大化\
- 2023-12-04CF1695C Zero Path 题解
题意:思路:设$minv$表示路径最小权值和,$maxv$表示路径最大权值和。当且仅当路径长度$n+m-2\equiv0\space(mod\space2)$且$minv\le0\lemaxv$时,一定有权值和为$0$的路径;否则,一定没有权值和为$0$的路径。证明:由于只能向右或向下走,路径长度
- 2023-10-24Codeforces Round 905 div2 F题
记答案为\(ans_i\),表示从1到i次修改出现的字典序最小的数组a,\(c\)数组表示\(ans_i\)出现之后,所有修改的累加和。用一个vector存一下\(ans_i\)之后的所有修改。从1到q遍历每一次修改时,对\(c\)数组进行区间赋值操作,如果\(c\)数组中第一个不为0的数<0,那么\(ans_i\)加上\(c\)中的
- 2023-09-11剑指 Offer 63. 股票的最大利润
题目链接:剑指Offer63.股票的最大利润题目描述:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?解法思路:使用minv记录前i天的最低价格,第i天卖出的利润就是prices[i]-minv,遍历一遍数组,不断更新最大利润代码:funcmaxP
- 2023-08-29Daimayuan Online Judge 线段树1
给\(n\)个数\(a_1,a_2,\cdots,a_n\)。支持\(q\)个操作:1.1xd,修改\(a_x=d\)。2.2lr,查询\(min_{i=l}^{r}a_i\),并输出\(\sum_{i=l}^{r}[a_i=min_{i=l}^{r}a_i]\)。一:确定出需要维护的信息\(Info\)。建立线段树节点structInfo{ intminv
- 2023-07-26【每日一题】Problem 602B. Approximating a Constant Range
原题解决思路设\([a_l,a_r]\)满足要求,而加入\(a_{r+1}\)则不满足要求,那么根据题目中相邻两数差不超过1,\(a_{r+1}-min([a_l,a_r])=2\quador\quadmax([a_l,a_r])-a_{r+1}\)成立。当有多个\(a_i=(min([a_l,a_r])\quador\quadmax([a_l,a_r]))\)时,取最右边
- 2023-07-12LeetCode -- 918. 环形子数组的最大和
遇到环形问题一般有两种考虑方法:1.破环成链2.分为数组中间部分和数组两边部分分别考虑本题采用第二种考虑方法,将原数组分为中间部分和两边部分分别考虑。中间部分即为子数组最大和,两边部分计总和减去中间部分最小和。classSolution{public:intma
- 2023-04-16桶排序
1、桶排序代码这里用三版桶排序1、基于MSD思路2、老师讲的更简单的桶排序3、自己实现的桶排序(其实思路和2是一样的)/***桶排序*/@SuppressWarnings("all")publicclassBucketSort{privateBucketSort(){}publicstaticvoidsort1(Integer[]
- 2023-03-254878. 维护数组
维护数组分析:分别维护两个值sum1,sum2,其他套线段树板子实现:structNode{intl,r;intminv;intsum1,sum2;}tr[N<<2];voidpushup(Node&u,N
- 2023-03-231630.等差子数组
classSolution{publicListcheckArithmeticSubarrays(int[]nums,int[]l,int[]r){intn=l.length;Listans=newArrayList();for(inti=0;i<n;++i)
- 2023-02-27用于双目重建中的GPU编程:julia-cuda
一、Julia是什么julia是2010年开始面世的语言,作为一个10后,Julia必然有前辈们没有的特点。Julia被期望塑造成原生的有C++的运行速度、python的易交互性以及胶水性。最重要的
- 2023-01-071.7 vp Codeforces Round #839 (Div. 3)
A-A+B?题意:给出两个0~9的数字和一个加号。要求输出数字相加的和思路:用字符串输入,第一位和第三位相加减去两个字符0即为数字和。voidsolve(){ strings; cin>>s;
- 2022-10-29Leetcode 915. 分割数组
给定一个数组nums,将其划分为两个连续子数组left和right,使得:left中的每个元素都小于或等于right中的每个元素。left和right都是非空的。left的长度
- 2022-10-25AcWing168 生日蛋糕(剪枝)
原题链接思路的话,就是暴搜加剪枝,中间有个放缩思路看这篇#include<bits/stdc++.h>#definepbpush_back#definefifirst#definesesecond#defineall(x)(x).begi
- 2022-10-25POJ 2184(01背包+滚动数组)
01背包模板题Programdd;constmaxn=1000;maxv=100000;minv=-100000;NULL=-2139062144;varn,i,j,ans,p,np:longint;ts,tf:array[1..maxn]oflongint;
- 2022-10-24915. 分割数组
题目描述给一个数组nums,需要把他换分为两个连续的子数组,要求是两个子数组非空,且左边的每个元素都小于等于右边每个元素,左边数组长度尽可能小求left的长度f1-模拟+2次遍
- 2022-09-20矩形面积并(扫描线)
思路:扫描线的思路很容易确定,但难点在于如何实现。这里避免写持久化标记,最初的想法是记录区间内0的个数(即未覆盖点的个数),但是如此一来每一次更新都需要将tag下放到最
- 2022-09-07Codeforces Round #819 (Div. 1 + Div. 2) and Grimoire of Code Annual Contest 2022 (A,B)(C补)
这场打的稀烂。。。A.MainakandArray题意:将数组中某段子序列翻转一次,求a[n]-a[1]最大的值。思路:有三种情况:第一种,将最小的数翻转到第一位,然后用原来的a[n]减去反