刷新
【经典题目】逆序对的数量 离散化技巧

博主头像 P1908 逆序对 逆序对 题目描述 逆序对就是序列中 \(a_i>a_j\) 且 \(i<j\) 的有序对。 以下解法时间复杂度均为 \(O(log n)\) 两种算法比较: 归并分治的做法属于离线,并且修改了原始数组;他不受数据值域的限制 树状数组的做法属于在线,每次都可以实时的拿到答案,并且不 ...

有限Abel群的结构(1)

博主头像 版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖。如要转贴,必须注明原文网址 https://www.cnblogs.com/Colin-Cai/p/18774816.html 作者:窗户 QQ/微信:6679072 E-mail:6679072@qq.com 我准备讲有限Abel群,总 ...

补题Codeforces Round 962 (Div. 3) Decode

题意: 我们需要算所有l,r组合区间中的x,y组合使得0的数量等于1的数量。 思路: 1.暴力显然不可得,容易想到计算(x,y)的贡献,最后乘上所在区间即可; 2.这里我们将0视为-1,只要前后前缀和的值相等即可判断01数量相等,即sum[x-1] == sum[y]; (用哈希表即可 3.现在来求 ...

红黑树和b+树

二叉搜索树 满足以下条件: 对于根节点,左子树中所有节点的值 < 根节点的值 < 右子树中所有节点的值。 任意节点的左、右子树也是二叉搜索树,即同样满足条件 1. 这是一个正常的,没有碰到极端情况的二叉搜索树。 如果数据是有序的或者在删除,插入操作下,那么可能会退化成一条链。严重影响性能。 平衡二叉 ...

P10833 [COTS 2023] 下 Niz

博主头像 题目大意 详细题目传送门 给出 \(n\) 和 \(a_1\cdots a_n\),求有多少个区间 \([l,r]\) 满足 \(a_l\cdots a_r\) 是 \(1\) 到 \(r-l+1\) 的排列。 \(a_i\leq n\leq10^6\) 思路 对于 \([l,r]\),要满足 \( ...

VSCode+Linux+GCC编译运行数据结构的C语言程序集

背景 学习数据结构,写了很多C语言程序,这些C语言程序都保存在一个Git仓库中,以章节、实验内容为目录存放,形如: 之前一直是通过gcc命令手动编译、运行,但随着程序逐渐复杂,希望简化构建过程,做到一键编译运行,同时支持断点调试。 环境 VSCode,安装了C/C++扩展 Linux GCC 解决方 ...

二分图(2粉兔)

博主头像 以下为随便写的总结,也许应该不严谨 二分图定义等 定义:可以分成两个部分使得每一条边的两个点都是不同部分的图是2粉兔。 总结:没有奇环 所以我们可以用染色大法,在连通块内随便找个点染 1 号颜色,然后它连的点都染 2 号颜色,以此类推。每个连通块都染完以后染 1 号颜色的扔到一个部分,染 2 号颜色 ...

【题解】CF2077B Finding OR Sum

博主头像 本文发布于博客园和洛谷,若您在其他平台阅读到此文,请前往博客园获得更好的阅读体验。 跳转链接:https://www.cnblogs.com/TianTianChaoFangDe/p/18771334。 思路 关于此题,我们首先对 \(n | x\) 变一下形,\(n | x = n + (x \& ...

[算法][排列/剪枝]带分数

博主头像 带分数 100 可以表示为带分数的形式:100=3+69258/714 还可以表示为:100=82+3546/197 注意特征:带分数中,数字 1∼9分别出现且只出现一次(不包含0)。 类似这样的带分数,100 有 11 种表示法。 输入格式 一个正整数。 输出格式 输出输入数字用数码 1∼9不重复 ...

【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)

博主头像 比赛链接 博客园原文链接(防盗) 开题 + 补题情况 还是很吃教训的一场比赛,被博弈论硬控两小时(很好的一个博弈论题),dijkstra被卡map,最终三题。 总结 上百通过的题已补完,还是学到了很多东西,其实这些题目也不是自己不会,往往是题目信息转化的能力不足(1002 和 1004),或是赛时被 ...

算法类型小记

博主头像 链表问题 翻转、回文、相交、倒数第k个:一般都用双指针(快慢指针) 倒序打印、操作:后序遍历即可 数组问题 翻转、回文、相交、n-sum:一般都用双指针 区域和:一般使用前缀和数组 区间增减:一般使用差分数组 矩阵旋转:先按照对角线镜像对称,再对每一行进行翻转 矩阵的螺旋遍历:利用边界移动实现 满足 ...

[算法][递归/栈]递归实现组合型枚举

博主头像 递归实现组合型枚举 从 1∼n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。 输入格式 两个整数 n,m ,在同一行用空格隔开。 输出格式 按照从小到大的顺序输出所有方案,每行 1 个。 首先,同一行内的数升序排列,相邻两个数用一个空格隔开。 其次,对于两个不同的行,对应下标的数一一比 ...

力扣算法题:1、两数之和

博主头像 题目: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11, ...

P4819 [中山市选] 杀人游戏

博主头像 题目大意 详细题目传送门 给出一个有向图,点有黑白颜色,且只有一个黑点。如果选择一个点 \(u\) 可以知道相邻的点的所有颜色。求在不选择黑点后能知道黑点在哪个点上的概率 \(p\)。 \(n\leq 10^5,m\leq 3\cdot 10^5\) 思路 首先发现对于一个强联通分量,只要不访问到黑 ...

[算法][递归/回溯]递归实现排列型枚举

博主头像 递归实现排列型枚举 把 1∼n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。 输入格式 一个整数 n。 输出格式 按照从小到大的顺序输出所有方案,每行 1 个。 首先,同一行相邻两个数用一个空格隔开。 其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。 数据范围 1 ...

<1···91011···16>