ICode9

精准搜索请尝试: 精确搜索
  • LeetCode-斐波那契数2021-01-04 19:01:18

    目录

  • 数位dp 笔记2021-01-03 20:01:50

    目录数位dp 笔记解决的问题 & 主体思想入门 —— windy数绕一个弯 —— 萌数the end? —— 恨7不成妻小心细节 [SDOI2016]储能表复杂度起飞 [AHOI2009]同类分布 数位dp 笔记 数位dp一直是我的弱项,惦记好久了,最近补了补,感觉还行。 解决的问题 & 主体思想 解决一个区间中,满足某些条

  • LeetCode309. 最佳买卖股票时机含冷冻期2021-01-03 10:35:41

    class Solution { public int maxProfit(int[] prices) { if (prices == null || prices.length == 0) return 0; int len = prices.length; int[][] dp = new int[len][3]; // dp[i][j] 到第 i 天结束不同状态的最大收益

  • 32. 最长有效括号2021-01-02 22:29:59

     给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 "()" 示例 2: 输入: ")()())" 输出: 4 解释: 最长有效括号子串为 "()()"思路: 本题目如果用动态规划,重点是把括号匹配的关系理清楚: (在前,)

  • luogu P6240 好吃的题目2021-01-02 18:34:17

    题面传送门 一句话题面:区间01背包。 这种东西可以用分治解决掉。 发现如果完全合并两个dp状态是\(O(t^2)\)的,但是如果只是针对某一个值的合并只是\(O(t)\)的。所以这题中不能进行合并状态。 预处理线段树上每个节点\(l\)到\(mid\)与\(mid+1\)到\(r\)的两部分\(dp\)状态。 在一棵

  • LeetCode63. 不同路径 II2021-01-02 15:02:45

      class Solution { public int uniquePathsWithObstacles(int[][] obstacleGrid) { int m = obstacleGrid.length, n = obstacleGrid[0].length; // dp[i][j] 表示 (0,0) 到 (i,j)的路径总数 int[][] dp = new int[m][n]; if (obstacleG

  • ACL Beginner Contest F(Heights and Pairs)题解——分治NTT2021-01-02 09:59:45

    Description 一个序列有 2 n 2n 2n个数,现在你要在这个序列中配得 n n n个无

  • CF1456部分题解2021-01-01 22:35:06

    B 有一个显而易见的结论:如果有三个数二进制最高位相同,那么可以把较大的两个异或起来一定小于较小的那一个。 然后抽屉原理,剩下的数据规模就一定是$60$这个级别的,然后直接暴力即可。   C 其实不难但是一直都想不出来。(感觉最近一些很显然的贪心都想不出来了???NOIP药丸) 考虑肯定先把

  • LeetCode91. 解码方法2021-01-01 21:33:06

    ☆☆☆思路:本题可以看成约束版的“爬楼梯问题”,即约束版的 f(n) = f(n-1) + f(n-2) 问题。      注意点1:由于 i 取 1 时,dp[len-2]取不到,所以要有n+1个。len-2决定了 dp[i] 应定义为 字符个数为i的方法总数。      注意点2:对于dp[0]的初值,举例如"12",则dp[0]初值应为1.

  • luogu P4056 [JSOI2009]火星藏宝图2021-01-01 19:36:12

    题面传送门 显然这道题有定义\(dp_i\)表示到\(i\)点的最大价值,\(dp\)式\(dp_{i}=\max\limits_{j=1}^{i-1}{dp_j-(x_i-x_j)^2-(y_i-y_j)^2+w_i}\)这样的\(dp\)是\(O(n^2)\)的 考虑怎么优化,显然一列中只有最下面的列转移更优,这样复杂度变成\(O(nm)\) 这个亚子似乎可以斜优,展开试试:

  • LeetCode 063. 不同路径 II dp 配图2021-01-01 18:35:06

    地址 https://leetcode-cn.com/problems/unique-paths-ii/ 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右

  • LeetCode 062. 不同路径 dp2021-01-01 18:03:56

    地址  https://leetcode-cn.com/problems/unique-paths/submissions/ 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径?

  • 牛牛想起飞【dp】2021-01-01 15:02:02

    题意 题目链接:https://ac.nowcoder.com/acm/contest/9854/B 分析 定义状态: \(dp[i][j]\) 表示前 \(i\) 个数取模后结果是否可以为 \(j\),可以为 \(1\) ,否则为 \(0\) 。 代码 #include <bits/stdc++.h> using namespace std; const int N=1e5+5; int a[N],b[N]; int dp[N][105]; i

  • [Leetcode] 823. Binary Trees With Factors2021-01-01 12:30:56

    方法1 Dynamic Programming dp[k] += dp[i] * dp[j], if arr[i] * arr[j] == arr[k] initialize all dp[k] = 1 we need to use hashmap or two pointers to get possible arr[i] and arr[j], otherwise the total time complexity is O(N**3), exceed time limit time compl

  • Codeforces1466 C. Canine poetry(dp)2021-01-01 12:01:06

    题意: 给定长度为n的小写字母串S,问最少修改多少个字符, 能使得S不存在长度>1的回文串。 数据范围:n<=1e5 解法: 不存在长度>1的回文即不存在长度=2和长度=3的回文串. 考虑令dp[i][j][k]为前i个字符,后两个字符为j,k所需要的最小代价, 但是这样复杂度好像炸了,不可行. 因为字符

  • luogu P2831 [NOIP2016 提高组] 愤怒的小鸟2020-12-31 22:03:15

    题面传送门 数据这么小显然状压dp 考虑状压\(dp_i\)表示打掉的集合为\(i\)时最少抛物线条数。 预处理\(f_{i,j}\)表示过\(i\)点和\(j\)点的抛物线经过的点的集合。 但是这样的转移是\(O(T2^nn^2)\)的。 考虑怎么优化。 很明显我们的\(dp\)转移是无序的。将其变成有序即先打最小的

  • Goodbye, 2020. Hello, 2021.2020-12-31 21:34:27

    做不动题了,于是开了这个坑。 2020 January ~ February 寒假。这段时间把 exgcd、欧拉函数、CRT 等等黑科技学了下,甚至尝试学了一下 FFT。学的特别浅,只会打板子,现在看还不如多做点 dp 和图论。 学校那边每天留一两道题(难度都是橙、黄),不出意外的话每天上午一个多小时能做完。上面这

  • Leetcode 435. 无重叠区间(Java实现 超详细注释!)2020-12-31 21:31:27

    Leetcode 435. 无重叠区间 动态规划,这道题动态规划的细节有点难理解,也很难想清楚,加了详细的注释,方便日后复习,也希望能帮到其他小伙伴,如有错误,欢迎指正! Java实现: class Solution { public int eraseOverlapIntervals(int[][] intervals) { // 判空,没有区间当然是

  • LeetCode 740. 删除与获得点数--动态规划2020-12-31 19:01:00

    删除与获得点数 给定一个整数数组 nums ,你可以对它进行一些操作。 每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除每个等于 nums[i] - 1 或 nums[i] + 1 的元素。 开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。 示例 1: 输入: n

  • 动态规划之二维费用背包2020-12-31 13:35:52

    前言 题目链接 题意 有 \(n\) 只球队, \(m\) 场比赛,有实力值 \(a_i\) 和帅哥数 \(b_i\) 。 \(m\) 场比赛的输入格式为 \(p_i\) \(q_i\) 。有一男一女,男生认为精彩度为两比赛的实力乘积,女生认为是帅哥数之和。在女生认为的精彩度不少于 \(c\) 时,男生认为的精彩度最大为多少,且两人最

  • LeetCode120. 三角形最小路径和2020-12-31 10:34:24

      【举一反三】:最大路径和——数字三角形问题(动态规划) ☆☆☆思路:动态规划  ——> 空间优化(使用一维数组而不是二维数组,这样只使用了O(n)的额外空间。) class Solution { public int minimumTotal(List<List<Integer>> triangle) { /** * 方法1:DP 时间

  • 动态规划之不同的二叉查找树2020-12-31 10:33:43

    不同的二叉查找树 给出 n,问由 1…n 为节点组成的不同的二叉查找树有多少种? 样例 1: 输入: n = 3 输出: 5 解释: 有5种不同形态的二叉查找树 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 /

  • LeetCode-不同路径2020-12-30 22:02:42

    目录

  • 85. 最大矩形 Maximal Rectangle2020-12-30 12:30:22

    题目 <https://leetcode-cn.com/problems/h-index/> #define min(a,b) ((a)<(b)?(a):(b)) #define max(a,b) ((a)>(b)?(a):(b)) int maximalRectangle(char** matrix, int matrixSize, int* matrixColSize){ if(matrixSize == 0 || matrixColSize[0] == 0){

  • 【dp每日一题】POJ 1661 Help Jimmy2020-12-30 03:32:29

    POJ 1661 Help Jimmy 大意: 一个小球从\((x,y)\)位置落下,下落速度恒定为1,当落到一个平台时可以向左也可以向右走,速度也是1,走到边缘时继续下落,每次下落距离不能超过k米,现在给出n个平台的左右边缘位置和高度,问小球最快多久能落到地面 思路: 首先将平台按照高度排一下序,然后计算一下小

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

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

ICode9版权所有