题解 数组subsequences increasing
吴师兄学算法day06 双指针 26. 删除有序数组中的重复项
题目:26. 删除有序数组中的重复项 易错点: 为什么不可以写大于nums[slow] 因为会出现多个[0,1,2,2,...]情况 代码示例: from typing import List class Solution: def removeDuplicates(self, nums: List ......
打印稀疏数组
稀疏数组 public static void main(String[] args) { //1.创建一个二维数组 11*11 0:没有棋子 1:黑棋 2:白棋 int[][] array1 = new int[11][11]; array1[1][2] = 1; array1[2][3] = 2 ......
吴师兄学算法day06 双指针 88. 合并两个有序数组
题目:88. 合并两个有序数组 易错点: 注意 判断i合法,不可以写if nums[i] 会下标越界 掌握好边界条件,num1[i] 和nums2[j]大于或者大于等于都可以。 代码示例: class Solution: def merge(self, nums1: List[int], m: in ......
P7293 题解
传送门 思路 提供一个不太一样的容斥做法。 首先容易发现答案只和每个点到 1 号点的奇偶最短路有关,可以先 \(O(n)\) 求出来。 然后考虑枚举距离 \(d\),计算有多少个 K 元组的距离为 \(d\)。不妨设 \(d\) 为奇数,那么条件就是: 每个点的奇最短路的最大值为 \(d\); 存在 ......
C语言中这几种数组,弄明白了吗?int(*pai[2])[5],int *aapi[2][2], int **p[2], int *numT[5], int(*num2)[5]
int main() { int a[5]= {1,3,5,7,9}; int(*num1)[5]=&a; int *num[5]= {&a[0],&a[1],&a[2],&a[3],&a[4]}; int b[5]= {2,4,6,8,10}; int(*num2)[5]=&b; int *num ......
USACO23023DEC 题解
LG LG9979 [USACO23DEC] Target Practice S code LG9980 [USACO23DEC] Flight Routes G sol 1 已知邻接矩阵求路径数奇偶性是容易的,倒着做即可 bitset 实现。时间复杂度 \(O(\frac{n^{3}}{\omeg ......
【题解】 P4482 | 后缀自动机 树分治
一种很好写的 \(O(n\log ^2 n)\) 的做法和处理技巧,不需要会任何 border series 的知识,只需要会 SAM 和一些基础数据结构就行。 考虑 \(\text{MaxBorder}(l,r)\) 可以被写成即找到最大的 \(p \leq r - l\) 满足 \(S[l:l+ ......
【GDKOI 2024 TG Day2】不休陀螺(top) 题解
考虑一个卡牌区间怎样才不是”陀螺无限“。 一个是费用在打到一半时费用就不够了。考虑构造一个卡牌序列使其尽量能够在打到一半时费用就不够,如何构造呢? 把 \(a_i > b_i\) 的卡牌称作消耗型卡牌,其他叫做获得型卡牌。我们可以构造把消耗型卡牌全部放在前面,后面突然来个很大的 \(a_i\) 就可 ......
CF1876C Autosynthesis 题解
Autosynthesis - 洛谷 https://codeforces.com/contest/1876/problem/C 这次也差点想出来了 \(QwQ\) 遇到这种题第一感觉是建图。把 \(i \rightarrow a_i\) 得到一个 章鱼森林 (这里忘记了每个点只有一个出边,是章鱼森 ......
【题解】QOJ 4253 robot
考虑到不管怎么变化 \(x_i\) 的值其在 \(t\) 时刻的位置都能被一个一次函数 \(x_i\times t + b\) 表示。 而且 \(b\) 是好算的,考虑到知道现在的斜率 \(k\) 和现在的时间 \(t\) 以及现在的值 \(f(t)\),则整个函数就是 \(f(x) = f(t) ......
[COCI2015-2016#2] VUDU 题解
[COCI2015-2016#2] VUDU 题解 题意 给一个长度为 \(N\) 的整数序列 \({a}\),对于其一共 \(\frac{N\times (N+1)}{2}\) 个的非空区间,求有多少个区间的平均数大于等于 \(p\)。 暴力做法 显然,可以直接枚举区间左端点 \(j\) 与区间右 ......
CF1006E Military Problem 题解
CF1006E Military Problem 题解 题意 给定一颗有 \(n \thinspace (2 \leq n \leq 2 \times 10^5)\) 个节点的树,树根为 \(1\)。 对于每个节点 \(i \thinspace (2 \leq i \leq n)\) 都有它的父节点 ......
[COCI2012-2013#2] POPUST 题解
[COCI2012-2013#2] POPUST 题解 题意 有 \(N \thinspace (2 \leq N \leq 5 \times 10^5)\) 个物品,每个物品的原价是 \(b_i\) 元。每次选物品时,第一件选出的物品 \(i\) 价格变为 \(a_i\) 元,问选 \(i \th ......
Meaningful Mean 题解
[ARC075E] Meaningful Mean 题解 题意 给一个长度为 \(N\) 的整数序列 \({a}\),对于其一共 \(\frac{N\times (N+1)}{2}\) 个的非空区间,求有多少个区间的平均数大于等于 \(k\)。 暴力做法 显然,可以直接枚举区间左端点 \(j\) 与 ......
【题解】CatOJ C0458C 滑动窗口定期重构
标题 trick 的名字我也不知道是什么,就这样吧。 link。 首先有显然的 dp 式子:\(f(i)=\min \{f(j) \times \max\{a_{j+1},\dots,a_i\}\}\)。考虑怎么去优化它。 有显然的 \(\mathcal O(n\log n)\):考虑线段树优化 d ......
C#中的数组
C#中的数组 数组的基本定义 数组实际上是由一个变量名表示同一组类型的额数据元素。关于数组,这里有一些重要的定义: 元素:数组的独立数据项称之为元素,数组中的所有元素必须是相同的类型; 维度/秩:数组的维度数; 维度长度:数组方向的位置个数; 数组长度:数组的所有维度中的元素总数称之为数组的长度; ......
1.11模拟赛 T1题解
简要题意 \(n\le 10^3 , \sum K_i\le3\times10^5\) 思路 首先容易想到一个暴力DP,\(f_{l,r,x}\) 表示区间中最大值为 \(x\) 的最大值 稍微想亿下可以发现如果这个位置选的不是区间最大值的话,答案一定不优 所以我们可以直接 \(f_{l,r}\) ......
AT_joisc2018_b 题解
AT_joisc2018_b 题解 传送门 题意 有一个以原点为中心的正方形,有 \(n(n\le 100)\) 条不在正方形内部的线段,你需要画一些不在正方形内部的线段,使得这些线段可以把正方形围起来,要求最小化你画的线段的长度和。 思路 我们需要画出一条闭合折线,并且能够把正方形包围。 考虑我们 ......
1.11模拟赛 T2题解
简要题意 每个点有一定概率向前面的点连边,求两点之间距离的期望 思路 推柿子 code #include<bits/stdc++.h> using namespace std; #define int long long #define N 1000005 int n,m,u,v; const in ......
NC22 合并两个有序的数组
https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665?tpId=117&rp=1&ru=%2Fexam%2Fcompany&qru=%2Fexam%2Fcompany&sourceUrl=%2Fexam%2Fcompan ......
P4103 [HEOI2014] 大工程 题解
题目链接:大工程 先考虑只有一次查询,很显然我们可以暴力树上 dp 处理出答案。 对于每个节点而言,有: 容易看出类似点分治逐个遍历子树计算前面一堆子树对后面子树的贡献思想,我们可以很容易的知道: 对于路径总和,显然多了一段新的贡献,这段贡献为当前关键点和前面点多的一段 \(2\) 号路线长。这段长 ......
并查集数组模板
并查集 const int MX=1e5+5; int Fa[MX]; //初始化 void Init(int n){ for(int i=1;i<=n;i++){ Fa[i]=i; } } //查询 int Find(int x){ return Fa[x]==x?x:Fa[x]=Find(Fa[ ......
数组指针
在数组指针中,*和[]的意义是相似的,都是优先降维数在降指针的级数 比如p是一个指向n维数组的一级指针,那么p[][][]就是一个指向n-3维数组的指针,打了n个中括号之后就变成了指向一个点的指针,此时再*一下就变成了了值(或者再括号一下) 如果p是一个指向n维数组的三级指针,那么打了n个中括号之后 ......
概率生成函数([CTSC2006] 歌唱王国 题解)
如果数列 {p_n} 满足 P(X=i)=p_i(即 {p_n } 为 X 的概率质量函数 PMF 所构成的数列),那么有概率生成函数:F_X(x)=\sum^{+\infty}_{i=0}P(X=i)x^i,概率生成函数具有一些性质,这些性质可以简化我们做题时的一些推导…… ......
第一章:数组
写在前边 已经不知道第多少次来到这个地方了,没错,就是代码随想录的第一章!感觉很多次刷题都没有坚持下去,导致每次都要重新从第一章开始刷题,这次已经要尽可能坚持啊。 参考链接:https://www.programmercarl.com/%E6%95%B0%E7%BB%84%E7%90%86%E8%A ......
P9549 「PHOI-1」路虽远 题解
题目链接:路虽远 带限制的 dijkstra,优先考虑有哪些限制条件,当做类似 dp 去写。闯黄灯次数有要求,限制速度的边数量有要求。 我们注意到,如果选择哪些边限速不易于基于贪心选择,可以考虑转换下,边数 \(-\) 限制数即为可以不限速的边,选择不限速的贪心优于限速的,这样一来,我们在有机会选择 ......
2024-01-10:用go语言,给你一个下标从 0 开始的二维整数数组 pairs 其中 pairs[i] = [starti, endi] 如果 pairs 的一个重新排列 满足对每一个下标 i
2024-01-10:用go语言,给你一个下标从 0 开始的二维整数数组 pairs 其中 pairs[i] = [starti, endi] 如果 pairs 的一个重新排列 满足对每一个下标 i ( 1 <= i < pairs.length ) 都有 endi-1 == starti , 那么 ......
P3741题解
题目分析 给出一个字符串 \(s\),允许改变 \(0\) 或 \(1\) 个字符,求其中 VK 的出现次数。 变量/数组/函数解析 int n 字符串 \(s\) 的长度 string s 字符串 \(s\) int count(string s,string key) 自定义函数:求字符串 \( ......
集合与数组
数组 可以存基本数据类型和引用数据类型 集合 集合可以存引用数据类型,不能存基本数据类型,如果一定要存储基本数据类型的话,需要把他们变成对应的包装类 数组和集合的对比 长度: 数组:长度是固定的 集合:集合长度可变 存储类型: 1.数组可以存储基本数据类型,可以存引用数据类型 2.集合可以存引用数据 ......