P1908 逆序对 逆序对 题目描述 逆序对就是序列中 \(a_i>a_j\) 且 \(i<j\) 的有序对。 以下解法时间复杂度均为 \(O(log n)\) 两种算法比较: 归并分治的做法属于离线,并且修改了原始数组;他不受数据值域的限制 树状数组的做法属于在线,每次都可以实时的拿到答案,并且不 ...
版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖。如要转贴,必须注明原文网址 https://www.cnblogs.com/Colin-Cai/p/18774816.html 作者:窗户 QQ/微信:6679072 E-mail:6679072@qq.com 我准备讲有限Abel群,总 ...
题意: 我们需要算所有l,r组合区间中的x,y组合使得0的数量等于1的数量。 思路: 1.暴力显然不可得,容易想到计算(x,y)的贡献,最后乘上所在区间即可; 2.这里我们将0视为-1,只要前后前缀和的值相等即可判断01数量相等,即sum[x-1] == sum[y]; (用哈希表即可 3.现在来求 ...
二叉搜索树 满足以下条件: 对于根节点,左子树中所有节点的值 < 根节点的值 < 右子树中所有节点的值。 任意节点的左、右子树也是二叉搜索树,即同样满足条件 1. 这是一个正常的,没有碰到极端情况的二叉搜索树。 如果数据是有序的或者在删除,插入操作下,那么可能会退化成一条链。严重影响性能。 平衡二叉 ...
题目大意 详细题目传送门 给出 \(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]\),要满足 \( ...
比赛链接 本文发布于博客园,会跟随补题进度实时更新,若您在其他平台阅读到此文,请前往博客园获取更好的阅读体验。 跳转链接:https://www.cnblogs.com/TianTianChaoFangDe/p/18773190 开题 + 补题情况 除了 AK 题都补完了,还是学到了很多东西,以及很 ...
背景 学习数据结构,写了很多C语言程序,这些C语言程序都保存在一个Git仓库中,以章节、实验内容为目录存放,形如: 之前一直是通过gcc命令手动编译、运行,但随着程序逐渐复杂,希望简化构建过程,做到一键编译运行,同时支持断点调试。 环境 VSCode,安装了C/C++扩展 Linux GCC 解决方 ...
以下为随便写的总结,也许应该不严谨 二分图定义等 定义:可以分成两个部分使得每一条边的两个点都是不同部分的图是2粉兔。 总结:没有奇环 所以我们可以用染色大法,在连通块内随便找个点染 1 号颜色,然后它连的点都染 2 号颜色,以此类推。每个连通块都染完以后染 1 号颜色的扔到一个部分,染 2 号颜色 ...
本文发布于博客园和洛谷,若您在其他平台阅读到此文,请前往博客园获得更好的阅读体验。 跳转链接:https://www.cnblogs.com/TianTianChaoFangDe/p/18771334。 思路 关于此题,我们首先对 \(n | x\) 变一下形,\(n | x = n + (x \& ...
合并两个有序的链表,可以通过:定义临时虚拟头节点与指针变量、循环合并两个链表、链接剩余链表节点和返回头节点4步来完成,本题的难点在于思路,即想到用虚拟头结点tmpHead、操作节点cur、链表1与链表2值比较节点h1、h2。 ...
对于链表的相关操作,我们总结了一套【可视化+图解】方法,依据此方法来解决链表相关问题,链表操作变得易于理解,写出来的代码可读性高也不容易出错。 ...
对于链表的相关操作,我们总结了一套【可视化+图解】方法,依据此方法来解决链表相关问题,链表操作变得易于理解,写出来的代码可读性高也不容易出错。 ...
带分数 100 可以表示为带分数的形式:100=3+69258/714 还可以表示为:100=82+3546/197 注意特征:带分数中,数字 1∼9分别出现且只出现一次(不包含0)。 类似这样的带分数,100 有 11 种表示法。 输入格式 一个正整数。 输出格式 输出输入数字用数码 1∼9不重复 ...
比赛链接 博客园原文链接(防盗) 开题 + 补题情况 还是很吃教训的一场比赛,被博弈论硬控两小时(很好的一个博弈论题),dijkstra被卡map,最终三题。 总结 上百通过的题已补完,还是学到了很多东西,其实这些题目也不是自己不会,往往是题目信息转化的能力不足(1002 和 1004),或是赛时被 ...
链表问题 翻转、回文、相交、倒数第k个:一般都用双指针(快慢指针) 倒序打印、操作:后序遍历即可 数组问题 翻转、回文、相交、n-sum:一般都用双指针 区域和:一般使用前缀和数组 区间增减:一般使用差分数组 矩阵旋转:先按照对角线镜像对称,再对每一行进行翻转 矩阵的螺旋遍历:利用边界移动实现 满足 ...
递归实现组合型枚举 从 1∼n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。 输入格式 两个整数 n,m ,在同一行用空格隔开。 输出格式 按照从小到大的顺序输出所有方案,每行 1 个。 首先,同一行内的数升序排列,相邻两个数用一个空格隔开。 其次,对于两个不同的行,对应下标的数一一比 ...
题目: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11, ...
题目大意 详细题目传送门 给出一个有向图,点有黑白颜色,且只有一个黑点。如果选择一个点 \(u\) 可以知道相邻的点的所有颜色。求在不选择黑点后能知道黑点在哪个点上的概率 \(p\)。 \(n\leq 10^5,m\leq 3\cdot 10^5\) 思路 首先发现对于一个强联通分量,只要不访问到黑 ...
递归实现排列型枚举 把 1∼n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。 输入格式 一个整数 n。 输出格式 按照从小到大的顺序输出所有方案,每行 1 个。 首先,同一行相邻两个数用一个空格隔开。 其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。 数据范围 1 ...
1. 基本信息 当我点击时,算法在想什么? (瑞典)大卫·萨普特(David Sumpter) 著 中国科学技术出版社,2025年01月出版 1.1. 读薄率 书籍总字数15.9万字,笔记总字数20598字。 读薄率20598÷159000≈12.95% 1.2. 读厚方向 算法霸权 极简算法史:从 ...