标签:数据结构
QOJ 6504. CCPC Final 2022 D Flower's Land 2题解 题意简述 给你一个只含 (0,1,2) 的序列,相邻两个相同的数字可以直接消掉。 询问包含两种 区间所有数 (+1) 并对 (3) 取模。 求一段区间能否用上述消除方式消完。 样例输入 8 9 012
题目 字符串解码,给一个字符串s,返回解码后的字符串。字符串编码规则为k[str]表示括号内部str字符串正好重复k次,k保证为整数,并且输入的字符串肯定符合这种编码规则不会有额外的空格。 注意事项: 注意括号可能发生嵌套,例如输入字符串为3[a2[c]]应该返回accaccacc 1 <=
并查集 导论 并查集是一种数据结构,主要用于处理一些不相交集合的合并问题。一般应用在连通图、最小生成树、Kruskal算法、最近公共祖先(LCA)等算法中。 举例 用帮派例子理解并查集:在n个人中,分成了不同的帮派,每个帮派的人都互为朋友,朋友的朋友是朋友,例如1号和2号是朋友,1号和3号也
线性表的定义和操作 线性表的定义        线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。若用L命名线性表,则其一般表示为 L = (a1,a2,...ai,ai+1,...an) 几个概念:       相同是指每个数据元素所占
感觉F又双叒叕写复杂了 A - Order Something Else (abc310 A) 题目大意 点杯咖啡,要(p)元,但可以用一个优惠券,使得咖啡只要 (q)元,但你需要额外购买(n)个商品中(价格为(a_i))的一个。 问点杯咖啡的最小价格。 解题思路 考虑直接买还是使用优惠券,使
顺序表 顺序表的定义          线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列      顺序表 ---用顺序存储的方式实现线性表。顺序存储---把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。      如何知道一个数据
1. 位置对熵的重要性 1.1. 为了计算概率总需要多遍历一次数据集,而在计算出整个数据集中各符号的出现概率后,还要继续处理这些数值 1.1.1. 如果是相对较小的数据集,那么这些就不是什么问题 1.2. 随着要压缩的数据集变大,统计编码的结果与熵的偏差也会越来越大 1.2.1. 数据集的不同部
一、NumPy介绍   NumPy是Python中科学计算的基础包,它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。 功能强大的
二分看似简单,但需注意细枝末节 接下来简单探讨几种查询 以严格大于x的第一位数为例子 //序列为m ,x为查询的数 int find(int x){//假设序列长为n; int l=1,r=n; while(l<=r){ int mid=(l+r)>>1; if(
什么是字典树? 一种高效的存储和查找字符串集合的数据结构 存储的字符串的个数不会太多 可以插入,查询,每次存入一组字符串结尾要进行着标记 模拟Trie树 #include <iostream> using namespace std; const int N = 1e5 + 10;
  单链表的定义 什么是单链表       单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。       单链表的各个数据元素在物理上可以是离散存放的,每个结点除了存放数据元素外,还要存储指向下一个节点的指针。而顺序表是连续存放的,每个结点中只存放数据元素。  
前言 在生活中太阳的东升西落,鸟类的南飞北归,四级的轮换,每天的上下班,海水的潮汐,每月的房租车贷等等,如果用程序员的视角看,这就是一个个的定时任务,在日常的开发工作中也有很多的定时任务场景: 数仓系统凌晨进行的数据同步 订单12小时未支付的状态校验 rpc调用超时时间的校验 缓存数据失效时间的延
判环算法01 检验链表是否有环 //判断环 public boolean hasCycle(ListNode head){ ListNode p1=head;//乌龟 ListNode p2=head;//兔子 while (p2!
D.Chocolate 题意: 有一个n×m的矩形巧克力,Kelin先手Walk Alone后手选一个点(i, j)并吃掉所有 x <= i, y <= j的巧克力,谁吃掉最后一块巧克力则输。 分析: 对矩形大小进行讨论: ①1×1时,Kelin必输 ②1×n或1×m时:Kelin可以
分治的核心思想是 自上而下通过递归不断将大问题拆分成两个或多个子问题,直至被拆分出来的子问题可以通过一些简单的方法解决 然后再自下而上地用子问题的解求解大问题的解 最终我们能得到初始问题的解 解决分治问题的时候的代码基本就是 限制左边界 == 右边界的时候返回值 将区间一分为二,根据条件进行模拟