ICode9

精准搜索请尝试: 精确搜索
  • LeetCode面试题 04.06. 后继者2022-07-01 19:01:40

    LeetCode面试题 04.06. 后继者 求中序遍历中给定节点的后一个节点,分右子树中/父节点中 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution:

  • 层序建立二叉树并输出,先序遍历二叉树并输出2022-07-01 16:02:47

    func main() { //按数组层序建立二叉树,之后层序输出二叉树 root:=createTree(0,[]int{1,2,3,4,5,6}) ans:=printTree(root) fmt.Println(ans) //先序建立二叉树,之后先序输出二叉树 var tmp *TreeNode for i:=0;i<6;i++{ tmp=insert(tmp

  • POJ - 2251 Dungeon Master 【bfs】2022-07-01 11:03:05

    题目简述 You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of unit cubes which may or may not be filled with rock. It takes one minute to move one unit north, south, east, west, up or down. You cannot move diagona

  • Colorful Tree2022-06-30 23:32:26

    Colorful Tree 题目大意 给我们一棵树,每个节点有一个颜色。 需要完成两个操作。 求某一种颜色的最小生成树的边数 将某一个节点的颜色改为另一种颜色 思路 不得不提到一个名词,虚树。虚树的概念大就是说我们不用真的把每一次改变后的树都重新建出来,我们只需要维护某些性质即可。

  • 题解 P8274 [USACO22OPEN] Balancing a Tree G2022-06-30 20:00:32

    神仙题。 我们探究一下 \(ans\) 的下界。当然有个前提 \(ans\ge 0\)。 如果节点 \(x\) 是 \(y\) 的祖先,那么显然 \(ans\ge l_x-r_y\),\(ans\ge l_y-r_x\)。 如果是链就已经做完了,\(ans\) 的下界是能取到的,让每个点都在 \([r_{min},l_{max}]\) 就行了。 但是树的答案是错的。仔细

  • CF1557C(组合数,位运算)2022-06-30 12:34:23

    CF1557C(组合数,位运算) 题意 给出序列长度 \(n\) ,取值范围 \([0,2^k - 1]\) 。 求满足 \(a_1 \& a_2 \& a_3 ... \& a_n \ge a_1 \oplus a_2 \oplus ... \oplus a_n\) 的方案数。 思路 先分奇偶讨论。 当 \(n\) 为奇数时,只可能使得不等式等号成立。大于号总不可能成立。因此考虑取等

  • LeetCode42 接雨水(单调栈)2022-06-30 11:03:23

    LeetCode42 接雨水 维护一个单调栈,单调栈存储的是下标,满足从栈底到栈顶的下标对应的数组 height 中的元素递减 每次遇到大于栈顶元素的值时进行答案累计 class Solution: def trap(self, height: List[int]) -> int: ans, stack, l = 0, [], len(height) fo

  • 路径总和II2022-06-29 22:00:48

       https://leetcode.cn/problems/path-sum-ii/ /** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ func pathSum(root *TreeNode, targetSum int) [][]int { stack:=make([]

  • BSOJ2482题解2022-06-29 18:37:41

    被这题偷袭了。。。还是记录一下吧。 如果那个老哥不会拿走就很好做了。设 \(f_k=[x^k]F(x)=[x^k]\prod_{i=1}^{n}(1-p_i+p_ix)\),答案就是 \(\sum_{i=0} f_i\times a_i\)。 简化一下过程,设 \(y_i=\frac{p_i}{1-p_i}\),然后把上面的 \(1-p_i+p_ix\) 替换成 \(1+y_i\),最后再给答案乘

  • 二分模板2022-06-29 14:35:28

    using namespace std; //二分模板 class Solution { public: vector<int> searchRange(vector<int>& nums, int target) { vector<int> ans={-1,-1}; int n = nums.size(); if(n==0) return ans; //闭区间 int l

  • 基础算法题2022-06-29 14:00:58

    Problem 3或5的倍数 2:偶斐波那契数 4:最大回文乘积 5 窗口移动 11:方向数组 13大整数加法 、 14最长考拉兹序列 15:网格路径 25:1000位斐波那契数 1:3或5的倍数 在小于10的自然数中,3或5的倍数有3、5、6和9,这些数之和是23。 求小于1000的自然数中所有3或5的倍数之和。 考查倍数()%

  • LeetCode122 买卖股票的最佳时机 II(贪心)2022-06-29 13:31:23

    LeetCode122 买卖股票的最佳时机 II 贪心计算爬峰收益 class Solution: def maxProfit(self, prices: List[int]) -> int: ans, l = 0, len(prices) for i in range(1, l): ans += max(0, prices[i] - prices[i - 1]) return ans

  • BZOJ #4498. 魔法的碰撞2022-06-28 19:35:35

    题面传送门 首先你先不要管中间距离大于两个人之间最大值的情况,先假设其全部为等于最大值。设这个和为\(j\),则这个方案的方案数为\(C_{L-j+n}^{n}\)。 因为\(d_i\)不大,所以我们可以将所有\(nd\)种距离的方案数算出来之后计算答案即可。 关于两个点的最大值容易想到按照权值大小排

  • 位运算 翻转数位2022-06-28 00:01:02

      You have an integer and you can flip exactly one bit from a 0 to a 1. Write code to find the length of the longest sequence of 1s you could create. Example 1: Input: num = 1775(110111011112)Output: 8Example 2: Input: num = 7(01112)Output: 4 来源:力扣(LeetCo

  • P31492022-06-27 13:04:00

    P3179 排序 给定有 \(n\) 个数的序列,\(m\) 次操作。 每次操作选择位置 \(k\) 上的数,将序列中小于等于 \(k\) 的数排序后放回。 求每次操作后序列的逆序对个数。 不进行操作的答案就是初始序列逆序对数。 可以发现,对于某个选择位置 \(k\) 的操作,只会影响到序列中只由小于等于选

  • 算法day23-----蓝桥杯:纸牌三角形2022-06-27 08:33:31

    public class c1 { public static void main(String[] args) { dfs(0); System.out.println(ans/6.0); } static int[]a=new int[] {1,2,3,4,5,6,7,8,9}; static int ans=0; static void dfs(int m) { if(m>=9) { if(a[0]+a[1]+a[3]

  • 1641A - Great Sequence2022-06-26 11:02:48

    首先,我们可以用 \(2^10=1024\) 的复杂度暴搜,然后再来判断当前这种情况的结束时刻。 现在我们通过爆搜获得了一个长度为 \(1010\) 的由 \(0、1\) 组成的字符串。然后维护两个数组 \(a、b,a_i\)维护的是 \(i\) 队在当前时刻进球数量之后最多进球的数量,\(b_i\) 维护的是 \(i\) 队在当

  • 删数问题2022-06-25 22:32:36

    题目: 删数问题 题目链接:https://www.luogu.com.cn/problem/T241086?contestId=69902 题目描述 一个集合有如下元素:11 是集合元素;若 PP 是集合的元素,则 2\times P+12×P+1,4\times P+54×P+5 也是集合的元素。 取出此集合中最小的 kk 个元素,按从小到大的顺序组合成一个多

  • 洛谷P2602 [ZJOI2010] 数字计数 (数位DP)2022-06-25 12:03:05

    白嫖的一道省选题...... 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 typedef long long LL; 6 int dig[15],pos; 7 LL dp[15][10][15],ans[2][10]; 8 9 LL dfs(int pos,int val,int cnt,bool lead,bool li

  • HDU1423 Greatest Common Increasing Subsequence (DP优化)2022-06-25 11:32:00

    LIS和LCS的结合。 容易写出方程,复杂度是nm2,但我们可以去掉一层没有必要的枚举,用一个变量val记录前一阶段的最优解,这样优化成nm。 1<=k<j,j增加1,k的上界也增加1,就可以考虑用变量优化去掉一层循环。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using name

  • POJ3311 Hie with the Pie(状压DP,Tsp)2022-06-25 08:32:09

    本题是经典的Tsp问题的变形,Tsp问题就是要求从起点出发经过每个节点一次再回到起点的距离最小值,本题的区别就是可以经过一个节点不止一次,那么先预处理出任意两点之间的最短距离就行了,因为再多走只会浪费更多的距离。 dp[S][u]表示当前已访问的节点集合为S,从u出发走完剩余节点回到

  • PAT (Advanced Level) Practice A与B的爱恨情仇 1001,1002,10092022-06-24 22:31:27

    题目链接: 1001:https://pintia.cn/problem-sets/994805342720868352/problems/994805528788582400 1002:https://pintia.cn/problem-sets/994805342720868352/problems/994805526272000000 1009:https://pintia.cn/problem-sets/994805342720868352/problems/994805509540921344

  • 面试_⼦数组类问题2022-06-24 01:33:35

    剑指 Offer 42. 连续子数组的最大和 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。 示例1: 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 提示: 1 <= arr.length <=

  • NC19115 选择颜色2022-06-23 22:38:17

    NC19115 选择颜色 题目 题目描述 \(n\) 个人排成一个环形,每个人要从 \(c\) 种颜色中选择一个。 牛牛希望相邻的人选择的颜色是不同的 问有多少种方案。 输出方案数对 \(10007\) 取模的结果。 人是有顺序的,环旋转同构算不同的方案。 输入描述 输入只有一行,包含用空格分开的两个整数

  • NC23046 华华教月月做数学2022-06-23 22:06:51

    NC23046 华华教月月做数学 题目 题目描述 找到了心仪的小姐姐月月后,华华很高兴的和她聊着天。然而月月的作业很多,不能继续陪华华聊天了。华华为了尽快和月月继续聊天,就提出帮她做一部分作业。 月月的其中一项作业是:给定正整数 \(A\) 、\(B\) 、\(P\) ,求 \(A^B\mod P\) 的值。华华

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

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

ICode9版权所有