- 2024-11-15【模板】Runs
学习资料:Lyndon&Runs-洛谷专栏。yyc讲的太好了啊,我就不抄了。做Lyndon分解的Duval算法在Runs的求解中出现次数非常高,请一定记住它。if(tl+tr>=r-l+1)这一行是算的刚刚好的,这里对应的LyndonRoot是\([l,r)\),然后求出lcp,lcs分别是\(tl,tr\),则这个ru
- 2024-11-13洛谷题单 算法2-2 常见优化技巧
洛谷题单算法2-2常见优化技巧单调栈单调栈最经典的应用,就是在一个数列里寻找距离元素最近的比其大/小的元素位置。模板题,寻找每个元素右边第一个比它大的元素下标。stack<int>s;for(inti=n;i>=1;i--){while(s.size()&&a[s.top()]<=a[i])s.pop();f[i]=s.
- 2024-11-10ABC372D ABC379F 题解 单调栈二分
ABC372DABC379F题解单调栈二分一直觉得AT上面学到的东西比CF要多一些,无意捧一踩一,但可能是我太菜的原因,毕竟ABC的题目普遍要比Div.2简单一些。好多次碰到这个单调栈里面二分的trick了,所以写一篇来总结一下。ABC372D形象地给定一系列Buildings的高度\(h\),保证每个
- 2024-11-062024 CCPC Liaoning Provincial Contest
tot:赛时是6题723罚时,还是差劲了。省赛,特别是这场省赛,难度低很多。前面4,5题都是签到题。第六题是一个关于闰年的容斥,脑子乱了,然后越来越绕。然后就没出。出的是一个诈骗题,题面引导你这是计算几何,但是实际上是简单dp,暴力o(n^2)预处理一下就行了。赛时还想着求凸包然后旋转卡壳求
- 2024-11-05单调栈笔记
单调栈笔记单调栈,顾名思义,就是把元素按照严格单调的顺序存在栈中(从「栈顶」到「栈底」)可以加速查找数组中满足特定条件的数的过程,例如:寻找左侧第一个比当前元素大的元素寻找左侧第一个比当前元素小的元素寻找右侧第一个比当前元素大的元素寻找右侧第一个比当前元素小的元素
- 2024-11-03P11229 [CSP-J 2024] 小木棍 题解
算法一,dp首先对于\(10^5\)的数据,很明显,如果用longlong是绝对会爆炸的,所以使用string类型进行dp.定义状态\(f_i\),表示用\(i\)根木棍能拼出的最小数字.显然,可以先初始化1~7的情况.状态转移:\(f_i=cmp(f_i,f_{i-stk_j}+j).\),其中,cmp为比较函数,j为0~9
- 2024-11-03【模板】手写基本数据结构
栈STL模板STL中的stack容器提供了一众成员函数以供调用,常见的包括但不限于如下:创建一个栈:stack<int>stk;修改元素:stk.push(x);将传入的参数插入到栈顶。stk.pop();将栈顶的元素弹出。查询:stk.top();返回栈顶的元素。stk.empty();返回栈是否为空。stk.size
- 2024-11-03Educational Codeforces Round 171 (Rated for Div. 2) 题解
A.PerpendicularSegments显然构造一个\(k\timesk\)的左下角是原点的正方形即可。voidslv(){ intx,y,k;Read(x,y,k); intmn=min(x,y); if(mn*mn*2>=k*k) Write(0,'',0,'',mn,'',mn,'\n'), Write(0,
- 2024-11-02UcOs-III RISC-V接口移植源码阅读: os_cpu_a.S、os_cpu_c.c、os_cpu.h
os_cpu_a.S:#********************************************************************************************************#uC/OS-III#TheReal-TimeKernel##
- 2024-10-2420. 有效的括号
classSolution{public:boolisValid(strings){intr1=0,r2=0,r3=0;chartemp;stack<char>stk;for(inti=0;i<s.size();++i){if(s[i]=='('||s[i]=='['||s[
- 2024-10-24连通性相关
强连通强连通:有向图\(G\)中每个点中可互相到达。强连通分量:极大的强连通。(最大可能的)求强连通分量先跑出图的DFS搜索树(黑边)。一个结论:一个强连通分量一定在该强连通分量中的第一个被访问的点的子树内。设根为\(u\),考虑若存在一个点\(v\)不在\(u\)子树中则一定存
- 2024-10-22P1439 【模板】最长公共子序列
P1439【模板】最长公共子序列实际上这题不能算dp,应该是贪心。先区分两个概念:LIS:LongestIncreasingSubsequence,最长递增子序列LCS:LongestCommonSubsequence,最长公共子序列将b数组中的元素映射为其在a数组中的位置,问题就从LCS变成了LIS。在求解LIS时,开一个单
- 2024-10-20讲解LeetCode第227题:基本计算器||(完整代码)
LeetCode第227题:基本计算器||题目介绍方法一:数组模拟栈完整代码展示核心原理演示代码片段解释片段一:片段二:片段三:片段四:片段五:
- 2024-10-18讲解LeetCode第150题:逆波兰表达式求值(完整代码)
LeetCode第150题:逆波兰表达式求值题目介绍方法一:栈完整代码展示核心原理演示代码片段解释片段一:片段二:片段三:片段四:片段五:方法二:数组模拟栈完整代码展示核心原理演示代码片段解释片段一:片段二:片段三:
- 2024-10-17STK轨道环境搭建(二)
写一些小的辅助功能,很零碎1.在一个场景里添加不同中心天体的卫星上一部分的时候就碰到了这个问题,当时用的是Astrogator预报器解决的,中间偶尔也会在想能不能用轨道参数来解决,事实是可以用Insert的:例如,此时在月球为中心天体的场景下添加了一个环月卫星:如果再用普通参数
- 2024-10-13P11073 Game King
P11073GameKing-洛谷|计算机科学教育新生态(luogu.com.cn)缩点,分别重建图,再建反图,可知,拓扑序大的一定不能到拓扑序小的。不断新建点统计。#include<iostream>#include<algorithm>#include<cstring>#include<unordered_map>#include<queue>usingnamespacestd
- 2024-10-0920241008
短路显然可以得出一个结论,一个数字大的点肯定要到一个数字比他小的点,这个我们可以用单调栈维护出来比一个点小的第一个点,然后\(dp\)即可#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=1e5+5;intn,a[N],pos[N],dp[N],sum
- 2024-10-04斜率优化学习笔记
斜率优化模板题,有三倍经验,难度逐渐递增,建议从前做到后。P2365任务安排,P10979任务安排2,P5785[SDOI2012]任务安排。(但是我这种做法P10979和P5785没有区别。思路:设\(f_i\)表示第\(i\)个任务加工后所需的最小总费用,那么就有转移式。\[f_i=\displaystyle\min_{j=0}^{
- 2024-10-01[HNOI2010] 城市建设 题解
题意给定一个图,每次修改一条边的边权,每次修改后输出该图的最小生成树边权和,询问间不独立。思路在线不好做,考虑离线下来,可以使用线段树分治。我们称在当前区间\(\left[l,r\right]\)的边为动态边,不在的边为静态边。但这样每次遍历到叶子节点的时候静态边的数量都是\(m\)的
- 2024-09-309.30 模拟赛
得用kunkka号看。题解A.网瘾少年很好很好的贪心题。弱化版是[CSP-J2023]公路,这题没有油箱限制。首先判掉无解:存在\(d_i>T\)。用单调栈求\(nxt_i\)表示\(i\)之后第一个油价比\(i\)低的位置,没有为\(n+1\)(终点)。因为\(nxt_i\)的油价比\(i\)低,所以你肯定
- 2024-09-28matlab获取STK中卫星星座TLE数据信息
笔者因课题需求,在STK构建了Starlink一期一阶段共1584颗卫星的LEO卫星星座。想要导出TLE信息,但STK手动导出太麻烦,因此萌生用代码解决的念头。通过查阅相关资料,利用matlab与STK互联的方法,获取STK场景中所构建的卫星TLE。Matlab代码如下:clear;clc;%打开STK软件uiapplication
- 2024-09-26【LeetCode Hot 100】20. 有效的括号
题目描述这个题目在讲解栈的应用的时候是常用的例子,在遍历括号串的时候维护一个栈结构,如果当前字符是前括号,暂时没有与之配对的后括号,则先将其压入栈中。C++STL和Java都提供了对应的容器,但是由于我们知道栈的大小不可能超过括号串的长度,所以也可以手动用数组模拟,这样运行速度可
- 2024-09-25草拟嘛啥掉计算几何
《不想调了》《再草一遍
- 2024-09-23树上数据结构问题
天天爱跑步假设现在又一棵树如果一个人要从\(3\)跑到\(5\),那么如果在\(2\)点的观察员要满足\(w[2]=dep[2]-dep[3]\),如果在点\(4\)的观察员要满足\(w[4]=dep[fa[lca]]-dep[3]+dep[lca]-dep[4]\),简单来说就是如果处于\(i\)点的观察员可以观察到,那么要