logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

c++最长上升子序列长度

/bs函数:用来搜索endss数组中比arr[i]小(不能相等)的第一个元素下标(从右往左算的话)//bs就是要找6的下标(大小最接近 arr[i]且比 arr[i] 小)int len=0;//len为end数组的实际大小,也是答案所在。//dp[i]:以位置i为结尾的最长递增子序列的长度。//end[i]:长度为i+1子序列的最小结尾。//方法2:时间复杂度O(N*log N)//方法1:(时

#c++#算法#图论
c++快速建堆(内含比较器讲解)

先说大根堆// 默认大根堆等价于priority_queue<int, vector<int>, less<int>> pq;// 显式大根堆小根堆常用堆函数push(x)—— 插入元素,—— 删除堆顶,—— 取堆顶元素(大根堆最大 / 小根堆最小),—— 是否为空size()—— 元素数量下面说说less和greater比较器这两个是,你会在sortset/map等地方经常看到。

#c++#算法#开发语言
归并排序建议写法

int i=l;j<=r;j++){int n;cin>>n;i<=n;i++){i<=n;i++){return 0;

#算法#数据结构#c++
深度搜索(dfs)

a[x][y]=0;dfs(x-1,y);dfs(x+1,y);dfs(x,y+1);dfs(x,y-1);int main()i<=n;i++){j<=m;j++){i<=n;i++){j<=m;j++){if(a[i][j]!=0){ans++;dfs(i,j);return 0;

文章图片
#深度优先#算法
不一般的二分答案

小蓝最近正在玩一款 RPG 游戏。他的角色一共有 N 个可以加攻击力的技能。其中第 i 个技能首次升级可以提升 Ai 点攻击力,以后每次升级增加的点数都会减少 Bi。(上取整) 次之后,再升级该技能将不会改变攻击力。现在小蓝可以总计升级 M 次技能,他可以任意选择升级的技能和次数。请你计算小蓝最多可以提高多少点攻击力?

#算法
基环树路径最大和(扫地机器人)

题目 3346: 时间限制: 2s 内存限制: 192MB 提交: 110 解决: 24在一个含有 n 个点 n 条边的无重边无自环的连通无向图中,有一个扫地机 器人在执行清扫作业,其中结点 i 的标记 ti ∈ {0, 1} 如果为 1 ,则说明该结点需 要进行清扫,扫地机器人在到达这个结点时会顺便进行清扫工作。机器人想知 道,如果选定任意结点出发,每条边只能经过一次的话,最多能清扫多少个待 清

#机器人
导弹拦截(排序)

经过 11 年的韬光养晦,某国研发出了一种新的导弹拦截系统,凡是与它的距离不超过其工作半径的导弹都能够被它成功拦截。当工作半径为 0 时,则能够拦截与它位置恰好相同的导弹。但该导弹拦截系统也存在这样的缺陷:每套系统每天只能设定一次工作半径。而当天的使用代价,就是所有系统工作半径的平方和。某天,雷达捕捉到敌国的导弹来袭。由于该系统尚处于试验阶段,所以只有两套系统投入工作。如果现在的要求是拦截所有的导

#算法
到底了