摘要: 前言 永远记住:是根据思路来想需要的算法。而不是用思路来契合算法。 调不出来时多造几组样例,以躺平、无所谓的心态去调 可以通过思考部分分来取得正解,比如菊花图、链图。 不要随便开long long,常数大 考试时注意时间分配 树论的题,不是数据结构要么dp要么推结论贪心 看完题目先模拟一下样例,能摸 阅读全文
posted @ 2020-11-02 13:49 linzhuohang 阅读(582) 评论(0) 推荐(0) 编辑
摘要: import os import requests import xml.etree.ElementTree as ET BookName = "output" ChapterNum = 21 MaxPages = 100 def download_chapter(path,index): for 阅读全文
posted @ 2022-09-11 18:46 linzhuohang 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 耗时一个月,在Yuckxi的陪伴和支持下​[th114:东方自动机]终于完结。​目前可以自行读取屏幕,分析子弹位置,方向并做出移动判断,单次过程的耗时在50ms一下。当然目前对于密集弹幕的适应还不是很好,但我们已经尽力了 以下是lzh的一些废话: ​ 我最开始的时候我用的是基于深度学习的DeepQL 阅读全文
posted @ 2022-08-25 17:42 linzhuohang 阅读(168) 评论(0) 推荐(1) 编辑
摘要: 前言 上周我们数学老师给了我们一道题,大意就是两个向量a和b,一个点M=$x*a+y*b$,x,y有范围,然后所有M组成的面积是一个定值,求x+y的最小值。当然这是道小水题,但我在想,如果把两个向量变成多个向量,二维变成高维的话,那会怎么样呢。 分析 众所周知,两个二维向量可围成平行四边形。如果再多 阅读全文
posted @ 2022-03-05 08:43 linzhuohang 阅读(414) 评论(3) 推荐(0) 编辑
摘要: 之前遇到过好几次,但一直以来都不太记得。 问题:一个黑白矩阵,求最大的全黑子矩阵。(子矩阵是指连续的若干行与列构成的交集) 先枚举矩阵下边界。 然后对于每一个下边界位置,维护它最高能到哪,然后再求出这个最高的位置往左往右最远能延伸到哪里,用$left_i$,$right_i$。单调队列维护即可 阅读全文
posted @ 2021-08-23 22:31 linzhuohang 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 对于第i天,我们要给它腾出位置,为了使温度最高,要删除的时前面温度最低的。 对于一个新加入的温度,如果它比之前的温度都要高。直接加入即可。 如果它不是最高温,我们把它与前一个温度混合,直到混合后的温度是最高温。 原因如下: 对于之后加入的温度,我们要么踢掉一部分之前的混合液t2,把它与当前的温度t1 阅读全文
posted @ 2021-08-23 22:15 linzhuohang 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 题解 第一眼想到了二分,然而因为最大最小值都不确定所以做不了。 因为两端都不确定,考虑先固定左端点(即最小值),不断将右端点右移,直到有解。 有解后再将左端点右移,此时有解时的右端点一定在原本的右端点处或右端点的右边(满足单调性) 这样右端点只会右移,在指针移动这一方面可以做到O(n) 貌似双指针是 阅读全文
posted @ 2021-08-18 21:30 linzhuohang 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 题意 树形结构n个点(n<=3000),给每个节点分配权值,子节点不能超过父亲节点的权值,问有多少种分配方案。每个节点工资上限为d(d<=1e9). 题解 先考虑暴力dp 设f[i][j]表示钦定第i个点工资为j第i个点子树的方案树 得到转移方程$f[i][j]=\prod_{son} \sum_{ 阅读全文
posted @ 2021-08-17 09:35 linzhuohang 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 区间线性基 要求q次[l,r]区间内的最大异或和之类的 考虑维护线性基的前缀和,同时要做一些特殊处理 在插入的时候应当尽量将位置靠后的数放在线性基的高位。 即,如果插入时枚举到i位遇到一个该位相同的数,并且插入的数在它的右边,那么把它顶掉,让它异或上自己然后代替自己往后一位枚举。 查询时我们在lin 阅读全文
posted @ 2021-08-17 08:40 linzhuohang 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 用途 用于处理平面中矩形重叠、矩形与点相关问题,比如求矩形面积的并,周长的和,以及求一个点被多少个矩形包含等问题。 扫描线是一个离线算法,即一般用于处理多组询问的。 使用方法 本质就是把二维的矩形问题投射到一维的线段问题上。 我们先将每一个矩形拆成两条线段——上边界与下边界,标记每一条是上边界还是下 阅读全文
posted @ 2021-08-13 09:55 linzhuohang 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 是什么 哈夫曼树是一种用于压缩字符串的算法。 就是计算出文本中每个字符/单词的出现次数,然后给每个字符/单词赋予一个二进制编码,以达到压缩的效果。 怎么做 将字符按出现次数排序丢进队里,每次取出最小的两个,合并到一个新结点上,合并的节点的出现次数就是儿子出现次数的和,然后将合并的节点丢回堆里,重复至 阅读全文
posted @ 2021-08-13 09:23 linzhuohang 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 题目 ssq偷偷在马路上开了N家烧烤店,并带着魔法少女伊莉雅来吃。 烧烤店编号依次是1到N,第i家烧烤店和第i+1家烧烤店的距离是Ai。 由于他其实是老板,所以他有M张餐票,如果在第i家烧烤店使用第j张餐票装十三就会获得魔法少女伊莉雅Bi,j的好感度(可以用很多张,但是每张只能用一次)。 但是魔法少 阅读全文
posted @ 2021-08-09 09:35 linzhuohang 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 定义 一般指将统计问题分解为几个子问题,然后将几个问题的结果分别乘以一个容斥系数求和 注意容斥系数不一定是维恩图的$(-1)^k$之类的,可能包含组合数 经典容斥 给定或是可以求出:分别满足一个属性的数量,分别满足两个属性的数量,分别满足两个属性的数量...... 要求恰好元素的总数之类的 这种比较 阅读全文
posted @ 2021-08-05 19:48 linzhuohang 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 分治卷积 问题 已知$g(i)$的各项函数值 $f(i)=\sum_{j=1}^i g(j)*f(i-j)$ 求$f(i)$的各项函数值 解法 考虑cdq分治思想 每次二分,先把左边的f(i)计算出来, 然后计算左边的f(i)对右边的贡献,再继续累积右边的贡献 二分到达边界时,表明这个点的函数值已经 阅读全文
posted @ 2021-07-28 11:03 linzhuohang 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 莫比乌斯反演相关 整除分块 用于计算$\sum_{i=1}^n f(\lfloor{n/i} \rfloor)*i$之类的函数 整除的话其实很多函数值是一样的,对于每一块一样的商集中处理即可 若一个商的左边界为l,则右边界为$\lfloor{\frac{n}{\lfloor\frac{n}{l}\r 阅读全文
posted @ 2021-07-26 09:18 linzhuohang 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 前言 其实有相当大一部分的博弈论都是可以抽象成Nim及其扩展问题的,剩下的小部分结合题目具体分析。 本文主要讨论Nim有关的题目 nim的原型题结论:若$a_1 \ xor \ a_2 \ xor... a_n=0$则先手必败,否则必胜 证明: 终止局面显然满足等式 如果一个局面$a_1 \ xor 阅读全文
posted @ 2021-07-22 21:10 linzhuohang 阅读(499) 评论(0) 推荐(1) 编辑
摘要: 定义 满足$f(n)=f(a)*f(b)的性质 $(a与b互质)的函数被称为积性函数 求法 因为该函数有这种性质,我们不用对于每一项都单独求解,利用这个性质可以在$O(n)$的时间内求出1~n的所有函数值 这样对于每个n,拆分成$n=\prod p_i^{a_i}$,这样$f(n)=\prod f( 阅读全文
posted @ 2021-07-21 11:45 linzhuohang 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 是什么 常用于处理线性无关或最大异或和或最小异或表示集(即最小能用多少个数的异或和表示出原集合中的数)等问题 线性基,是一个向量集合,是一种压缩向量集合的手段,因此可以降低复杂度。 具体而言,就是线性基里的若干向量通过线性操作表示出原集合的每一个元素,且线性基内部的向量全部线性无关 因此线性基内的向 阅读全文
posted @ 2021-07-19 21:59 linzhuohang 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 拉格朗日乘数法 这玩意有什么用 拉格朗日乘数法是用于解决一类多变量的有限制最值。 具体而言,就是给定一条带有n个变量的等式,如$f(x_1,...,x_n)=0$作为限制 求一个包含n个变量的式子的最值,如$g(x_1,...,x_n)$ 这玩意怎么搞 我们把f和g的图像在坐标系中画出来 通过一堆复 阅读全文
posted @ 2021-07-15 21:42 linzhuohang 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 前言 考试时想着用每个点map维护加法操作,然后启发式合并乱搞,然而复杂度有两个log,而且这是个DAG... 最后打了暴力滚粗 题目 https://www.luogu.com.cn/problem/P7077 题解 首先我们可以建一个0号点,向序列中的所有函数结点连边,这样就变成了调用一次0函数 阅读全文
posted @ 2020-12-02 13:45 linzhuohang 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 题目 有一颗N个节点的树,其中1号节点是整棵树的根节点,而对于第ii个点(2≤i≤N),其父节点为PiPi 对于这棵树上每一个节点Snuke将会钦定一种颜色(黑或白),以及一个非负整数的点权。 Snuke有一个他最喜欢的整数序列,X1,X2,...,XN,他希望能够钦定这些点的点权和颜色。使得: 对 阅读全文
posted @ 2020-10-03 15:23 linzhuohang 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 题目 从前有棵树。 找出K个点A1,A2,…,Ak。 使得∑dis(Ai,Ai+1),(1<=i<=K-1)最小。 题解 先考虑几个显而易见的性质: 1.选出的点一定是相邻的(不然距离会更大) 2.对于选出的点,如果从ak再走回a1,那么就相当于每条边经过了两次 由于题目没有包含dis(ak,a1) 阅读全文
posted @ 2020-09-16 12:55 linzhuohang 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 前言 ntt和fft一样,都是用来处理卷积的,但用处不一样 fft因为浮点数的性质,系数的大小没有限制,但是会丢失精度 ntt是通过整数运算在剩余系下计算卷积,卷积后的系数不能超过整形的范围,但是速度较快,而且不掉精 如果系数不大,一般用ntt 如果系数大大,且不能取模,则用fft 理论 原根:一个 阅读全文
posted @ 2020-09-05 08:58 linzhuohang 阅读(402) 评论(0) 推荐(0) 编辑
摘要: #前言 在各种游戏中,常常有抽卡这一环节,一般游戏会给出每个物品的掉落概率 但一般稀有物品概率极少,所以需要评估现有的货币是否有足够大的概率抽到卡 #概率 设掉落概率为a,次数为x,设f(x)表示x次内抽到的概率(我们一般关注这个值) 考虑反向思维,用1-(x次都抽不中的概率)计算f(x) 抽不中的 阅读全文
posted @ 2020-08-27 22:23 linzhuohang 阅读(1397) 评论(0) 推荐(0) 编辑
摘要: 总结了lucas,中国剩余定理,BSGS 阅读全文
posted @ 2020-08-25 16:29 linzhuohang 阅读(562) 评论(0) 推荐(0) 编辑
摘要: 题目 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案。小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究。然而他很快发现工作量太大了,于是向你寻求帮助。你的任务很简单,小z会告诉你一个整数K,你需要回答 阅读全文
posted @ 2020-08-22 11:55 linzhuohang 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题目 题解 首先YY一个最简单的dp $dp[i][j]=min(dp[j][k]+(sum[i]-sum[j])^2 (sum[i]-sum[j]>=sum[j]-sum[k])$ $dp[i][j]$表示i为终点,j为上一段起点的最小代价。 上述过程其实就是在i的左端寻找满足条件的点,然后一一计 阅读全文
posted @ 2020-08-18 08:21 linzhuohang 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 题目 给一颗n个节点的树,边权均为1,初始点权均为0,m次操作:Q x:询问x的点权。M x d w:将树上与节点x距离不超过d的节点的点权均加上w。 $n,m<=10^5$ 题解 树上的题,要联想到用树链剖分或是点分治处理。 这题先用点分治建点分树, 修改时不能暴力修改,考虑打标记, 但一个点可能 阅读全文
posted @ 2020-08-13 20:33 linzhuohang 阅读(162) 评论(0) 推荐(1) 编辑
摘要: 题目 在一片美丽的大陆上有100000个国家,记为1到100000。这里经济发达,有数不尽的账房,并且每个国家有一个银行。某大公司的领袖在这100000个银行开户时都存了3大洋,他惜财如命,因此会不时地派小弟GFS清点一些银行的存款或者让GFS改变某个银行的存款。该村子在财产上的求和运算等同于我们的 阅读全文
posted @ 2020-08-11 16:51 linzhuohang 阅读(177) 评论(0) 推荐(1) 编辑
摘要: 题目 兔子们在玩k个串的游戏。首先,它们拿出了一个长度为n的数字序列,选出其中的一个连续子串,然后统计其子串中所有数字之和(注意这里重复出现的数字只被统计一次)。 兔子们想知道,在这个数字序列所有连续的子串中,按照以上方式统计其所有数字之和,第k大的和是多少。 题解 首先最简单的一个暴力想法就是枚举 阅读全文
posted @ 2020-07-30 14:20 linzhuohang 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题目 Description Alice和Bob在玩一个游戏。有n个石子在这里,Alice和Bob轮流投掷硬币,如果正面朝上,则从n个石子中取出一个石子,否则不做任何事。取到最后一颗石子的人胜利。Alice在投掷硬币时有p的概率投掷出他想投的一面,同样,Bob有q的概率投掷出他相投的一面。 现在Al 阅读全文
posted @ 2020-07-27 21:38 linzhuohang 阅读(313) 评论(2) 推荐(2) 编辑
摘要: 题目H有个一成不变的习惯,喜欢饭后百步走。所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离。 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回。 又因为HH是个喜欢变化的人,所以他每天走过的路径都不完全一样,他想知道他究竟有多 少种散步的方法。 现在给你学校的地图(假设每 阅读全文
posted @ 2020-07-24 22:35 linzhuohang 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 题目 题解 分数规划+树链剖分+维护凸壳 神题 所求答案是分数的形式,一眼分数规划。 二分mid后问题转化为判断 $y_i+q_j−mid(x_i+p_j)$ 的最大值是否大于0。 整理得 $(y_i−mid⋅x_i)+(q_j−mid⋅p_j) $最大,此时可以发现i 和 j不再有关系,分开考虑最 阅读全文
posted @ 2020-06-28 13:38 linzhuohang 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 题目 作为对奶牛们辛勤工作的回报,Farmer John决定带她们去附近的大城市玩一天。旅行的前夜,奶牛们在兴奋地讨论如何最好地享受这难得的闲暇。 很幸运地,奶牛们找到了一张详细的城市地图,上面标注了城市中所有L(2 <= L <= 1000)座标志性建筑物(建筑物按1..L顺次编号),以及连接这些 阅读全文
posted @ 2020-06-19 20:06 linzhuohang 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 题面 学校组织了一次新生舞会,Cathy作为经验丰富的老学姐,负责为同学们安排舞伴。有n个男生和n个女生参加舞会买一个男生和一个女生一起跳舞,互为舞伴。Cathy收集了这些同学之间的关系,比如两个人之前认识没计算得出 a[i][j] ,表示第i个男生和第j个女生一起跳舞时他们的喜悦程度。Cathy还 阅读全文
posted @ 2020-06-19 17:11 linzhuohang 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 前言 其实这只是一个用来转换问题模型的一个套路,没有固定的模板什么的。 问题描述 有一堆东西,每个东西有两个值$a_i, b_i$ 在这些物品中选一些,使得$sum(a_i) \over sum(b_i)$最大 方法 设最大值为a 则$a={sum(a_i) \over sum(b_i)}$ 即$s 阅读全文
posted @ 2020-06-19 16:59 linzhuohang 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 题目 题解 容易想到空格移动的路径是不会自交的。 因为空格移动的路径是黑白棋相间的 所以对棋盘进行黑白染色,建立二分图 如果黑白两格上的棋子不一样则可以连边 如果一个人(A)将空格移入了一个在最大匹配内的点,那么它的对手(B)就可以沿着匹配边前进(否则就相当于找到了一条新的匹配边) 而A只能沿着非匹 阅读全文
posted @ 2020-06-10 14:06 linzhuohang 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 第一道没看题解的网络流题目! 阅读全文
posted @ 2020-06-05 21:16 linzhuohang 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 题意 题解 先看一下 https://www.cnblogs.com/yoyoball/p/9397857.html 这里说个坑点 在跳的时候,可能会遇到这种情况 假设求的是3->4,体力为2 3,4跳一次只能到2号点 所以加起来要两次,然而你发现只要一次就够了 所以在跳的时候只能跳到lca以下,然 阅读全文
posted @ 2020-05-27 13:05 linzhuohang 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 题目 Farmer John 有一块大小为 $n*n$的网格形土地, 他想要在这片土地上种植甜玉米和紫苜蓿(mù xu),所以他需要安装一些特别的洒水器。 一个甜玉米洒水器(A)会为所有在左下角方向的格子洒水。 一个紫苜蓿洒水器(B)会为所有在右上角方向的格子洒水。 如果一个格子被一个或多个甜玉米洒 阅读全文
posted @ 2020-05-16 10:02 linzhuohang 阅读(248) 评论(0) 推荐(0) 编辑