09 2021 档案

摘要:https://www.luogu.com.cn/problem/P2177 ##分析 1、首先,先走一遍最短路,记录这条路经过的点。现在路径分为两种:1、最短路;2、非最短路 2、加倍操作的路径如果不属于最短路,则对它没有影响,因此增量为0,所以加倍操作的路径一定属于最短路 3、现在遍历最短路,操 阅读全文
posted @ 2021-09-30 23:11 Tsyxxxka 阅读(108) 评论(0) 推荐(0) 编辑
摘要:http://codeforces.com/gym/337732 ##分析 dijkstra算法求最短路即可,需要一个从string到int的map。 #include <bits/stdc++.h> using namespace std; #define INF 0x3fffffffffffff 阅读全文
posted @ 2021-09-30 08:39 Tsyxxxka 阅读(40) 评论(0) 推荐(0) 编辑
摘要:https://leetcode-cn.com/problems/minimum-cost-to-make-at-least-one-valid-path-in-a-grid/ ##分析 本题题意为,给定一个矩阵grid,每个位置指示了下一步的前进方向,要求能够使得从左上角走到右下角有一条路径(不要 阅读全文
posted @ 2021-09-29 15:31 Tsyxxxka 阅读(39) 评论(0) 推荐(0) 编辑
摘要:##分析 本题题意为求一串01数字中,每个0距离最近的1的距离之和。 ###做法1 统计出连续0个数的数组,若有n个连续0:1、首尾的连续0,则distance_sum=(n+1)n/2;2、中间的连续0,则distance_sum=2((n/2+1)*n/2/2),如果n为奇数还要再加上n/2+1 阅读全文
posted @ 2021-09-27 20:14 Tsyxxxka 阅读(49) 评论(0) 推荐(0) 编辑
摘要:##分析 题意为:Fesitival有D天,其中有N个活动,每个活动有其happy值,如果每天只能参加K个活动,则这D天里所能获得的最大happy值总和是多少。 首先进行预处理,读入N个活动的happy值以及这个活动的开始日和结束日(闭区间),并且在startday和endday中记录这个happy 阅读全文
posted @ 2021-09-27 19:22 Tsyxxxka 阅读(51) 评论(0) 推荐(0) 编辑
摘要:https://leetcode-cn.com/problems/longest-univalue-path/ ##分析 求树上最长同值路径,考虑到每个路径必然有一个“最高点”,则枚举树上每个节点作为通过它的最长同值路径最高点,选出最大值即可。预处理找出从该节点往下能够走的最大距离,然后遍历每个节点 阅读全文
posted @ 2021-09-25 21:31 Tsyxxxka 阅读(22) 评论(0) 推荐(0) 编辑
摘要:##分析 本题题意为求一颗树中各个节点距其他所有节点的距离之和。 所给的结构为edges,先预处理为以vector为元素的节点数组。 以节点0为根节点,dfs求出distsum和sz(size)数组,其中distsum[i]表示i节点的子节点与i的距离之和,sz[i]表示以i节点为根节点的子树有多少 阅读全文
posted @ 2021-09-25 19:59 Tsyxxxka 阅读(76) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.com.cn/problem/P3957 ##分析 本题题意为,求能够获得最少k分所需的最少改造金币数。则第一步,对金币数做二分处理,已知所给格子离起始点的距离递增,则把dist[n]个金币作为二分上限,0作为二分下限;第二步,判断固定个数的金币能否实现获得k分, 阅读全文
posted @ 2021-09-23 16:25 Tsyxxxka 阅读(33) 评论(0) 推荐(0) 编辑
摘要:https://leetcode-cn.com/problems/max-sum-of-rectangle-no-larger-than-k/ ##分析 枚举起始上边界和下边界,分别做前缀和处理,然后枚举开头和结尾位置,可以进行O(n4)复杂度的做法。 下面考虑O(n3logn)做法:依然枚举上下边 阅读全文
posted @ 2021-09-23 10:00 Tsyxxxka 阅读(38) 评论(0) 推荐(0) 编辑
摘要:https://leetcode-cn.com/problems/palindrome-partitioning-ii/submissions/ ##分析 考虑dp[i]表示从开头到下标i为止的字符串的最小分割次数,字符串初始下标为1,转移方程为dp[i]=min(dp[j-1])+1,其中1<=j 阅读全文
posted @ 2021-09-20 18:01 Tsyxxxka 阅读(24) 评论(0) 推荐(0) 编辑
摘要:https://leetcode-cn.com/problems/jump-game-vi/submissions/ ##分析 dp[i]表示跳跃到第i位时的最大得分,则转移方程为 dp[i]= (从dp[i-k]到dp[i-1]的最大值) +nums[i],采取单调队列维护区间最大值。 class 阅读全文
posted @ 2021-09-19 19:46 Tsyxxxka 阅读(58) 评论(0) 推荐(0) 编辑
摘要:https://leetcode-cn.com/problems/maximal-rectangle/ ##分析 本题可看做“最大广告牌”题的变式,只需枚举以每一行为“地面”,每一列上连续“1”个数为“建筑物高度”,所有枚举中的“最大广告牌”面积即可。采用单调队列算法,记录每个点可向左右延伸的距离为 阅读全文
posted @ 2021-09-16 22:11 Tsyxxxka 阅读(62) 评论(0) 推荐(0) 编辑
摘要:https://leetcode-cn.com/problems/sliding-window-maximum/submissions/ ##分析 线段树做法 本题为查询一个定长区间中的最大值,构建一个线段树即可,复杂度为O(nlog(n))。 class Solution { public: in 阅读全文
posted @ 2021-09-15 14:54 Tsyxxxka 阅读(37) 评论(0) 推荐(0) 编辑
摘要:https://leetcode-cn.com/problems/trapping-rain-water/submissions/ ##分析 可以看出,接雨水最后形成的图形必然是塔状图形,两侧呈阶梯状,每个“台阶”都是height序列从两端开始在这个高度的第一列,因此可以先算出最终的塔状图形面积,再 阅读全文
posted @ 2021-09-14 11:31 Tsyxxxka 阅读(34) 评论(0) 推荐(0) 编辑
摘要:https://leetcode-cn.com/problems/minimum-difference-between-largest-and-smallest-value-in-three-moves/ ##分析 题目描述有一点绕,求三次操作后最大值和最小值的差的最小值,思考之下很容易发现分两种情 阅读全文
posted @ 2021-09-13 21:02 Tsyxxxka 阅读(43) 评论(0) 推荐(0) 编辑
摘要:https://leetcode-cn.com/problems/longest-valid-parentheses/submissions/ ##分析 这道题和上一道最长回文子串有类似之处,不同的是这道可以用一维dp来写,因为只有两个字符,匹配的情况固定;注意(……)(……)的情况。 class 阅读全文
posted @ 2021-09-12 19:20 Tsyxxxka 阅读(21) 评论(0) 推荐(0) 编辑
摘要:https://leetcode-cn.com/problems/longest-palindromic-substring/ ##分析 一维dp不可以做,因为和子串开头结尾都有关系,二维可以,f[l][r]表示l到r闭区间子串是否是回文。 class Solution { public: int 阅读全文
posted @ 2021-09-12 18:41 Tsyxxxka 阅读(25) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.com.cn/problem/P3372 如题,已知一个数列,你需要进行下面两种操作: 将某区间每一个数加上 kkk。 求出某区间每一个数的和。 分析 线段树 + lazy_tag #include<bits/stdc++.h> using namespace s 阅读全文
posted @ 2021-09-11 12:24 Tsyxxxka 阅读(22) 评论(0) 推荐(0) 编辑
摘要:题目描述 给你一个整数数组 nums 以及两个整数 lowerupper 。求数组中,值位于范围 [lower,upper] (包含 lower 和 upper)之内的区间和的个数 。 区间和 S(i,j) 表示在 nums  阅读全文
posted @ 2021-09-09 21:23 Tsyxxxka 阅读(42) 评论(0) 推荐(0) 编辑
摘要:题目链接 O(n2) 做法 用 f[i] 表示前 i 位中以第 i 位作为结尾的 LIS 长度。 转移的方程显然 f[j]=max{f[i]+1,f[j]}(i<j,a[i]<a[j]) class Solution { public: int le 阅读全文
posted @ 2021-09-08 19:19 Tsyxxxka 阅读(19) 评论(0) 推荐(0) 编辑

levels of contents
点击右上角即可分享
微信分享提示