Splendor White's blog

归档 · 全部

首页

关于

归档

算法数据结构题解数据结构树链剖分

P3384 【模板】重链剖分/树链剖分 树剖提高模板

题目来源 P3384 【模板】重链剖分/树链剖分 题意简述 已知一棵包含 NNN 个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 1 x y z,表示将树从 xxx 到 yyy 结点最短路径上所有节点的值都加上 zzz。 2 x y,表示求树从 xxx 到 yyy 结点最短路径上所有节点的值之和。 3 x z,表示将以 xxx 为根节点的子树内所有节点值都加上 zzz。 4 x 表示求以 xxx 为根节点的子树内所有节点值之和 1≤N≤1051\le N \leq {10}^51≤N≤105,1≤M≤1051\le M \leq {10}^51≤M≤105,1≤R≤N1\le R\le N1≤R≤N,1≤P≤231−11\le P \le 2^{31}-11≤P..

更多
学习笔记数学抽象代数

抽象代数 学习笔记

第零章 前言 本文根据B站UP主Maki的完美算数教室的抽象代数教学视频整理而来。 在此感谢Maki老师!也非常崇拜他能够在本科大二就讲出这么精品的课程。 我是不是也可以讲一讲微经/宏经呢? 第一章 基础知识 集合+运算+公理=结构集合+运算+公理=结构 集合+运算+公理=结构 封闭性: G×G→GG\times G \rightarrow GG×G→G ,例如在实数集合中,任何两个数相乘得到的结果依然在实数集中。 通过阅读下面的几个定义,可以帮助我们快速理解抽象代数到底要做什么,是用什么方式思考的。 定义 (S,⋅)(S,\cdot)(S,⋅) 为好结构,当且仅当 ∃e∈S,∀a∈S,a⋅e=e⋅a=a\exist e \in S, \forall a \in S, a\cdot e=e\cdo..

更多
算法数据结构题解数据结构莫队

P1494 [国家集训队] 小Z的袜子 解题笔记

题目来源 P1494 [国家集训队] 小 Z 的袜子 题意简述 有一个长度为 nnn 的序列 {ci}\{c_i\}{ci​}。现在给出 mmm 个询问,每次给出两个数 l,rl,rl,r,从编号在 lll 到 rrr 之间的数中随机选出两个不同位置的数,求两个数相等的概率。 n,m≤5×104,ci≤nn,m\le5\times10^4,c_i\le nn,m≤5×104,ci​≤n 解题思路 本题保证 ci≤nc_i\le nci​≤n 。事实上,如果不满足这个条件,我们也可以对序列做离散化操作,因为数字的绝对大小与解题无关。 cic_ici​ 的值域相当有限,于是便可以考虑用桶来维护区间中不同数字的数量。 每次移动区间端点后,只需要考虑新加进来的这个数和前面的数相等的概率是多少,经过某些 O(1..

更多
loading..
学习笔记经济学金融工程金融

金融工程学 学习笔记

前言 感谢 B 站 UP 主经管老邢,他轻松诙谐的视频讲解极大地帮助我推进了这门课程。很喜欢他的东北味普通话。 第零章 零碎的基础知识 第一章 导论 略 第二章 金融工程基本理论与分析方法 第一节 无套利均衡定价理论(Non-Arbitrige Pricing Principle) 地位与定义 无套利均衡定价理论是金融学各种初级定价方法的理论根基。 伯恩斯坦:“无套利均衡指的是不存在一种零成本赚取无风险利润的投资方式。” 假设条件 资产在市场交易; 投资者自由进入市场; 任何交易者都可无限制取得市场上资产的任意多头和空头,也可以无限制取得合成资产的多头和空头; 投资者可按无风险利率进行无限制的现金借贷; 无交易费用,含经纪人佣金、税、保证金、融券成本。往后只考虑融资成本,忽略融券成本。 ..

更多
算法数据结构题解

Codeforces-Till I Collapse 解题笔记

题目来源 Codeforces Round 406 (Div. 1) C. Till I Collapse Vjudge页面 题意简述 长度为 nnn 的正整数序列 aia_iai​ ,数字表示颜色。将序列划分成尽可能少的连续段,每段中颜色的数量不能超过 kkk 。对于所有的 k∈[1,n]k\in[1,n]k∈[1,n] 输出答案。 n≤1×105,ai≤nn\le1\times10^5,a_i\le nn≤1×105,ai​≤n 解题思路 暴力的贪心做法是,对于一个确定的 kkk ,从左往右进行划分,尽可能把每一段划分得更长。因为所有的段都是连续的,一个接一个排列,显然,这样的贪心策略不会使得答案更劣。暴力的复杂度为 O(nk)O(nk)O(nk) 。 显然,确定一个区间端点后,区间长度越大,区间..

更多
算法数据结构题解数据结构分块排序

SPOJ Give Away 解题笔记

简直和 UVA-12003 Array Transformer 解题笔记 一模一样。 把这题写一遍单纯是为了巩固分块实现能力。 实际写起来还真的 WA 了一发,确实有很多易错的地方,绝知此事要躬行。 尤其是循环的对象问题。是循环原序列还是块序列?想清楚再写。 #include<bits/stdc++.h> #define N 500100 #define Q 100100 using namespace std; int n,x[N],q; int op,a,b,c; int id[N],len,num; vector<int> block[N]; inline void change(int a, int b){ int aid = id[a]; x[a] = ..

更多
算法数据结构题解数据结构分块排序树状数组

UVA-11990 Dynamic Inversion 解题笔记

题目来源 UVA - 11990 Dynamic Inversion Vjudge 页面 题意简述 将一个 n≤2×105n\le 2\times10^5n≤2×105 的排列逐个删去 m≤1×105m\le1\times10^5m≤1×105 个元素,问每次删除元素之前,排列中有多少个逆序对。 解题思路 本题和 UVA-12003 Array Transformer 解题笔记 几乎一模一样,都是分块并在每次修改后保持块内有序,由此可使用二分查找实现高效的查询。 在求逆序对数量初值的时候使用树状数组即可,此后每一次删掉一个数字就查询其左侧比它大的数的数量,在总逆序对数量中减掉即可。 保持块内有序的方式依然可以使用冒泡排序,减少一个 log⁡\loglog 。 与 UVA-12003 实在太像了,代码略..

更多
算法数据结构题解数据结构分块排序

UVA-12003 Array Transformer 解题笔记

题目来源 UVA - 12003 - Array Transformer Vjudge 页面 题意简述 长度为 n≤3×105n\le 3\times10^5n≤3×105 的序列做 m≤5×104m\le 5\times10^4m≤5×104 次操作,每次操作询问 [L,R][L,R][L,R] 之间小于 vvv 的数的个数 kkk ,然后将 apa_pap​ 修改为 ⌊u∗kR−L+1⌋\displaystyle \left\lfloor \frac{u*k}{R-L+1} \right\rfloor⌊R−L+1u∗k​⌋ 。 解题思路 显然这题用线段树是很容易解的,不过我把这个题当做分块的练习题来做,不使用任何树形数据结构。 假设块长为 sss 每次修改完后将 ppp 所在块内的数据排序,复杂度..

更多
算法数据结构题解数据结构分块

LOJ6280 分块入门 区间和 解题笔记

题目来源 LibreOJ 6280 数列分块入门 4 题意简述 序列区间加与查询区间和, n≤5×104n\le5\times 10^4n≤5×104 。 解题思路 分块,操作区间中不是整块的部分暴力求解,是整块的部分打标记。 重点在时间复杂度的计算上。 最坏复杂度为操作区间几乎覆盖整个序列时,此时中间的整块数量近似于 ns\displaystyle\frac{n}{s}sn​ ,两端的非整块长度为 2s2s2s 。忽略常数,单次操作最坏时间复杂度为 O(ns+s)\displaystyle O(\frac{n}{s}+s)O(sn​+s) 。 运用基本不等式 ns+s≥2ns⋅s=2n\displaystyle\frac{n}{s}+s\ge2\sqrt{\frac{n}{s}\cdot s}=2\..

更多
123456