ICode9

精准搜索请尝试: 精确搜索
  • LeetCode 376. Wiggle Subsequence2022-06-20 15:32:59

    LeetCode 376. Wiggle Subsequence (摆动序列) 题目 链接 https://leetcode.cn/problems/wiggle-subsequence/ 问题描述 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列

  • 02_复杂度分析2022-06-20 08:00:43

    02_复杂度分析 说到底数据结构和算法本身解决的是“快”和“省”的问题,对应的分别是“时间复杂度”和“空间复杂度”。 复杂度分析是整个算法学习的精髓,只要掌握了它,数据结构和算法的内容基本上就掌握了一半。 为什么需要进行程序的复杂度分析 事前分析法: 在写程序之前,对问题进行

  • 由数据范围反推算法复杂度及算法种类2022-06-19 23:01:58

    一般OJ的时间限制是1秒或2秒。 在这种情况下,C++代码中的操作次数控制在 10^7 ∼ 10^8为最佳。 下面给出在不同数据范围下,代码的时间复杂度和算法该如何选择: n <= 12 算法复杂度:n! 一般算法:暴力dfs n <= 30 算法复杂度:2^n 一般算法: dfs+剪枝,状态压缩dp n <= 100 算法复杂度:O

  • 01-复杂度1 最大子列和问题(Go语言)2022-06-19 17:31:47

    点击查看代码 package main import "fmt" func main() { // 输入 var n int fmt.Scanf("%d", &n) inputs := make([]int, 0, n) for i := 0; i < n; i++ { var temp int fmt.Scanf("%d", &temp) inputs = append(inputs, temp)

  • SD2022-06-19 16:36:21

    D1T1 树形 \(\text{DP}\)。 令 \(f_{u,s,k},(k\in\{0,1\})\) 表示仅考虑以点 \(u\) 为根的子树,固定 \(u\) 的权值为 \(s\),\(u\) 子树中是否有点的权比 \(u\) 的权大的方案数。 \[\begin{aligned}\\ f_{u,s,0}&=\sum_{v\in\operatorname{son}(u)}\sum_{w\in\operatorname{son}(u),w

  • P7721 [Ynoi2007] rcn2022-06-19 08:31:43

    二维带权数颜色。 根据套路,采用莫队套二维分块,没写过去看 P7448。 一维带权数颜色谁都会,记每个颜色的上一个与其颜色相同的位置 \(pre\),问题转化为查询区间 \([l,r]\) 中 \(pre<l\) 的数的个数。 然后转成二维数点的形式,有 \(n\) 个点 \((i,pre_i)\),查询 \([l,r][0,l)\) 这个矩阵

  • dot product2022-06-19 01:31:06

    1570. Dot Product of Two Sparse Vectors Medium 858114Add to ListShare Given two sparse vectors, compute their dot product. Implement class SparseVector: SparseVector(nums) Initializes the object with the vector nums dotProduct(vec) Compute the dot p

  • [AcWing 6] 多重背包问题 III2022-06-18 22:37:26

    点击查看代码 单调队列优化 \(f[i][j] = max(f[i-1][j],f[i-1][j-v]+w,f[i-1][j-2 \cdot v]+2 \cdot w,\cdots,f[i-1][j-s \cdot v]+s \cdot w)\) \(f[i][j-v] = max(f[i-1][j-v],f[i-1][j-2 \cdot v]+ w,\cdots,f[i-1][j-s \cdot v]+s \cdot w,f[i-1][j-3 \cdot v] + 2

  • CF597C Subsequences 题解2022-06-18 12:31:09

    题意 略。 分析 一眼望去发现是 dp。容易想到状态 \(dp_{i,j}\) 表示以第 \(i\) 位为结尾长度为 \(j\) 的严格上升子序列个数,转移方程为: \[dp_{i,j}=\sum\limits_{a_k<a_i \and k<i} dp_{k,j-1} \]但是这样做的时间复杂度为 \(\mathcal{O}(n^2m)\),显然会 TLE,因此考虑优化: 可以想到

  • 板刷 DP2022-06-18 12:06:14

    板刷 DP 前言 由于自己 DP 太菜了,因此打算板刷一波(? 不知道能坚持多久,尽量搞下去吧。 存几个题单(不分先后): 【动态规划】普及~省选的dp题 codeforces 2000左右的dp题 codeforces 2100左右的dp题 20220618 CF66E Petya and Post 环形 DP。 从顺逆时针分别考虑,假设 \({dp}_i\) 表示

  • CF484A Bits2022-06-17 15:05:27

    CF484A Bits 题目 https://codeforces.com/problemset/problem/484/A 题解 思路 知识点:贪心,位运算。 每位独立考虑,要使 \(1\) 的数量最大,且答案最小,因此从低位开始遍历,在不超过 \(r\) 的情况下把 \(l\) 每位变 \(1\) 。 (一开始直接写了个结论,但太烦了qwq) 时间复杂度 \(O(1)\) 空

  • Algorithm Big(O) Notation All In One2022-06-16 21:34:23

    Algorithm Big(O) Notation All In One 算法复杂度 - 大O 表示法 时间复杂度: 程序的执行时间长短 空间复杂度: 内存占用空间大小 算法优化 / 性能优化 Big(O) Notation Function Big(O) Notation 中文说明 Constant O(c) const 常量,取 1 ~ n Logarithmic O(log(n)) n

  • LeetCode 37. Sudoku Solver2022-06-14 20:03:45

    LeetCode 37. Sudoku Solver (解数独) 题目 链接 https://leetcode.cn/problems/sudoku-solver/ 问题描述 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实

  • LeetCode 90. Subsets II2022-06-14 17:35:16

    LeetCode 90. Subsets II (子集 II) 题目 链接 https://leetcode.cn/problems/subsets-ii/ 问题描述 给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。 示例 输入:nums = [1,2,2]

  • LeetCode 78. Subsets2022-06-14 17:00:22

    LeetCode 78. Subsets (子集) 题目 链接 https://leetcode.cn/problems/subsets/ 问题描述 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 输入:nums = [1,2,3] 输出:[[],[1],[2],[

  • LeetCode 131. Palindrome Partitioning2022-06-14 15:05:48

    LeetCode 131. Palindrome Partitioning (分割回文串) 题目 链接 https://leetcode.cn/problems/palindrome-partitioning/ 问题描述 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例

  • 【复健试手】老年选手的挣扎2022-06-14 12:04:39

    高考结束之后进行简单估分,觉得复读和上带学五五开,所以先把写代码的能力捡起来再说。如果真的复读了又要停更一年了 这里都是简单题,建议初学者阅读学习。 CF1691E Number of Groups 题面 大意:有一堆红色蓝色的线段,定义不同颜色的线段连通为当且仅当他们至少有一个公共点。问连

  • 人月神话阅读笔记022022-06-14 12:02:27

    第四章-贵族专制、民主政治和系统设计。作者认为在系统设计中,概念完整性应该是最重要的考虑因素。就是说,为了反映一系列连贯的设计思路,您可省略写不规则的特性和改进,也不提倡独立和无法整合的系统,哪怕它们其实包含着许多很好的设计。概念的完整性要求设计必须由一个人,或者非常少

  • 位运算算法2022-06-13 19:33:51

    今天主要想分享的是自己在面试过程中遇见的一道面试题,是一道简单的算法题。 在面试的过程中,我使用了 hash 表来解决的(时间复杂度和空间复杂度都是O(n)),但是面试官不满意,当时也实在没想到别的解法。 后来在慢慢的使用位运算的过程中,发现通过位运算,可以让时间复杂度为O(n),空间复杂度

  • P7448 [Ynoi2007] rdiq2022-06-13 19:04:43

    区间本质不同逆序对,要求线性空间。 \(\mathcal O(n \sqrt n \times \sqrt n)\) 应该谁都会做,而且谁都知道不能过。 回顾 P5047,考虑莫队二次离线。 记 \(f(l,r)\) 为 \([l,r]\) 中 \(>a_r\) 的数的种类数。 则区间转移从 \([l,r-1]\) 变成 \([l,r]\),令 \(r'\) 为 \(a_r\) 上一次出

  • P7601 [THUPC2021] 区间本质不同逆序对2022-06-13 19:04:20

    区间本质不同逆序对。 \(\mathcal O(n \sqrt n \times \sqrt n)\) 应该谁都会做,而且谁都知道不能过。 回顾 P5047,考虑莫队二次离线。 记 \(f(l,r)\) 为 \([l,r]\) 中 \(>a_r\) 的数的种类数。 则区间转移从 \([l,r-1]\) 变成 \([l,r]\),令 \(r'\) 为 \(a_r\) 上一次出现的位置,则贡

  • 什么是圈复杂度?2022-06-13 14:35:22

    圈复杂度是衡量软件质量的一个重要指标。  在这里,我们将阐释什么是圈复杂度和圈复杂度McCabe,并提供圈复杂度的示例。 本文将包含如下几个部分: 什么是圈复杂度? 如何计算圈复杂度McCabe? 两个圈复杂度的示例 什么是圈复杂度? 圈复杂度(Cyclomatic Complexity, 简称‘CYC’)是一

  • 树套树2022-06-12 14:32:46

    树状数组套动态开点权值线段树 每个位置开一个线段树,可以得到问题的答案,但是时空复杂度不对。——这种情况用BIT套动态开点权值线段树解决。 Dynamic Rankings 路灯 动态逆序对

  • CF DS题做题笔记(持续更新)2022-06-12 10:34:42

    CF DS题做题笔记(持续更新) 题目来源:Codeforces 的 problemset内,difficulty 2300-2600,并包含“data structures”的 tag。 1681F 题意:给定一棵树,边有边权 \(w_i\),定义 \(f(u,v)\) 为,\(u,v\) 路径上只出现一次的权值个数,求 \(\sum_{1\le u < v \le n} f(u,v)\),\(1 \le n,w_i \le 5 \t

  • NC37 合并区间2022-06-12 09:34:42

    描述 给出一组区间,请合并所有重叠的区间。 请保证合并后的区间按区间起点升序排列。 数据范围:区间组数0≤n≤2×105 ,区间内 的值都满足 0 ≤val≤2×105 要求:空间复杂度 O(n),时间复杂度 O(nlogn) 进阶:空间复杂度 O(val),时间复杂度O(val) 解题思路和代码 from functools import cmp

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

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

ICode9版权所有