ICode9

精准搜索请尝试: 精确搜索
  • [NOI2013]快餐店2022-09-14 13:34:23

    [NOI2013]快餐店] 传送门 题意分析 n个建筑由n条道路相连,可以得出给出的图实际上就是一棵基环树。 快餐点要设在距最远顾客最近的位置 并且可以设置在道路上,实际上就是找树上最长链中点,也就是树的直径,类似于求树的直径。 解题思路 ​ 首先考虑如何将此问题转化为求树的直径

  • 线段树优化最长上升子序列问题2022-09-13 16:30:28

    最长上升子序列 给定一个长度为 $N$ 的数列,求数值严格单调递增的子序列的长度最长是多少。 输入格式 第一行包含整数 $N$。 第二行包含 $N$ 个整数,表示完整序列。 输出格式 输出一个整数,表示最大长度。 数据范围 $1 \leq N \leq 1000$,${−10}^{9} \leq \text{数列中的数} \leq {10

  • 【学习笔记】线段树维护单调栈2022-09-12 08:00:08

    线段树维护单调栈 在经过一晚上和某考试题的奋斗后,我终于确定了那道题不能用线段树维护单调栈做,同时对这个算法有了更深的理解。 前言: 众所周知,线段树啥都能干。 求出最长上升/下降子序列,肯定可以 \(O(n)\) 单调栈跑一遍。但是如果套上单点修改和多次询问,\(O(n ^ 2)\) 的复杂度可

  • leetcode409-最长回文串2022-09-09 13:03:57

      https://leetcode.cn/problems/longest-palindrome/ 要生成最长回文串,所有出现了偶数次的字母都要添加。出现奇数次的字母就要添加出现次数最多的那个字母,其余出现次数非1的奇数次字母则添加 n-1 个  bool类型flag是用来标记是否已经添加最大奇数字母。 第一次的错误思路,以为

  • 128. 最长连续序列2022-09-07 00:32:54

    128. 最长连续序列 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n)的算法解决此问题。   示例 1: 输入:nums = [100,4,200,1,3,2] 输出:4 解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。

  • 树上最长路的O(n)算法2022-09-05 22:03:32

    关于如何求得树中每个点最长路的O(n)算法: 1.算法流程: 求出树上的直径,在第二次dfs中求出从直径一端点到每个点的距离 再跑一次dfs,求出另一端点到每个点的距离,并更新每个点的最长路 2. 算法实现: #include<bits/stdc++.h> #define ll long long #define N 10000005 #define f1(i,n,

  • [LC646]最长数对链2022-09-03 20:04:47

    题目概述 给出 n 个数对。 在每一个数对中,第一个数字总是比第二个数字小。 现在,我们定义一种跟随关系,当且仅当 b < c 时,数对(c, d) 才可以跟在 (a, b) 后面。我们用这种形式来构造一个数对链。 给定一个数对集合,找出能够形成的最长数对链的长度。你不需要用到所有的数对,你

  • 动态规划之——最长递增子序列2022-08-31 14:31:55

    最长递增子序列(Longest Increasing Subsequence)是指在给定的一组数字中,按照从左向右顺序,由递增的数字组成的子序列(中间可以有间隔)中,取长度最大的子序列即为最长递增子序列。 如给定“1 2 4 3”,则递增的子序列有“1 2”、“1 4”、“1 3”、“2 4”、“2 3”、“1 2 4”、“1 2 3”

  • 最长上升子序列【模板】2022-08-28 14:02:39

      P1439 【模板】最长公共子序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) n^2的最长上升子序列解法 #include<iostream> using namespace std; int dp[1001][1001],a1[2001],a2[2001],n,m; int main() { cin>>n>>m; for(int i=1;i<=n;i++)scanf("%d",&a1[i])

  • 无重复字符的最长子串2022-08-24 07:31:23

    题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 思路 用滑动窗口维护最长不重复子串,当有重复的字母时将窗口移动滑出重复字母 代码 class Solution { publi

  • [2010年NOIP普及组] 接水问题2022-08-16 19:34:07

    [2010年NOIP普及组] 接水问题 分析:根据题意,要输出所用时间最长的那个人(包括那个人在等待的时间),分为两种情况,第一种是水龙头多于要打水的人数,这种情况下就可以直接写一个比较函数输出最大的人打水所用的时间,另一种是水龙头少于要打水的人,这种情况就要写一个函数比较哪个打水的人用

  • 最长公共子序列2022-08-15 22:32:25

    前缀型动态规划 def longest_common_seq(s1, s2): if not s1 or not s2: return m, n = len(s1), len(s2) # dp[i][j] = max(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]),当前字符依赖于i-1和j-1,需要补一个状态零 dp = [[0]*(n+1) for _ in range(m+1)]

  • 最长递增子序列-LIS2022-08-13 22:33:42

    前缀、序列型动态规划 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。  示例 1: 输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长

  • 最长公共前缀2022-08-08 09:02:09

    14. 最长公共前缀 难度简单2380 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。   示例 1: 输入:strs = ["flower","flow","flight"] 输出:"fl" 示例 2: 输入:strs = ["dog","racecar","car"] 输出:"&qu

  • 最长公共前后缀2022-07-30 23:36:37

    P2957 数据小直接暴力 遍历字串长度(从大到小),如果满足条件直接输出长度 substr函数使用 #include <bits/stdc++.h> using namespace std; #define MAX 100001 string a, b; int main() { cin >> a; cin >> b; if (a.length() < b.length()) { swap(a, b)

  • 算法-最长公共前缀2022-07-29 14:04:42

    01、题目分析 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,则返回""【leetcode】 示例1 输入: ["flower","flow","flight"] 输出: "fl" 示例2 输入: ["dog","racecar","car"] 输出: "" 解释:输入不存在公共前缀。 02、题解分析

  • LC 3. 无重复字符的最长子串2022-07-23 10:04:04

    问题描述 给定一个字符串,请你找出其中【不含有重复字符】的最长子串的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

  • 无重复字符的最长子串2022-07-21 15:32:13

    汪汪队,共进步!!! 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。   示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为

  • 最长异或和路径2022-07-20 20:35:44

    题目详情 最长异或和路径 描述 给定一颗n <= 100 000个点的带权树,求树上最长的异或和路径。 输入 多组数据。每组数据的第一行包含一个整数n(1 <= n <= 100000),以下n -1行每行包含三个整数u(0 <= u < n),v(0 <= v < n) ,w(0 <= w <2 ^ 31),表示u和v之间的长度为w的边。 输出 对于每组数据输出

  • 最长公共前缀2022-07-17 16:00:59

    最长公共前缀 一、题目描述 编写一个函数来查找字符串组中的最长公共前缀。 如果不存在公共前缀则返回“”; 实例: 输入:Strs = ["flower","flow","flight"] 输出:"fl" 输入:strs = ["dog","racecar","car"] 输出:"" 二、题目分析 首先排除掉可能出现的特殊情况,如当字符串组为空的

  • 无重复字符的最长子串代码实现2022-07-12 01:01:14

    上代码: public static int get(String s) { // 判断字符串是否为空 if(s.length() == 0){ return 0; } // 定义left指针 int left= 0; // 定义最大容量 int max = 0; // 定义一个map,作为一个滑动窗口

  • 剑指 Offer 48. 最长不含重复字符的子字符串2022-07-10 12:03:42

    请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 class Solution { public int lengthOfLongestSubstring(String s) { int n = s.length(),a

  • P4310 绝世好题 题解2022-07-08 16:31:54

    题意 从给定的序列中选出一个子序列 \(b\) ,并且使得 \(b_i \& b_{i-1} \not= 0 , i\in[2,n]\) ,求 \(b\) 最长的长度。 做时思路 选一个子序列,模仿着最长上升子序列一样定义一个状态。 \(dp_i\) 表示选择 \(a_i\) 为结尾的最长的长度。暴力枚举肯定是 \(\mathbf{O} (n^2)\) 的。这

  • 最长公共子序列2022-07-04 19:32:39

    c++ 最长公共子序列 /* 最长公共子序列 问题描述: 给定两个长度分别为 N 和 M 的字符串 A 和 B,求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。 输入格式 第一行包含两个整数 N 和 M。 第二行包含一个长度为 N 的字符串,表示字符串 A。

  • 最长上升子序列两种求解方法2022-07-03 16:02:49

    c++ 最长上升子序列 II /* * 最长上升子序列 * * 问题描述: * 给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。 * 1 ≤ N ≤ 1000, * −10^9 ≤ 数列中的数 ≤ 10^9 * * 1 ≤ N ≤ 100000 该题目还可以进一步扩大范围 * * 算

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有