iOS
CF1239E Turtle 题解
Description 一只乌龟从 (2 times n) 的棋盘的左上角走到右下角,只能往下或往右,需要给出一种方案来分配 (2n) 个数字使得乌龟走过的路径上的数之和的最大值最小。 (2leq nleq 25,0leq a_{1,i},a_{2,i}leq 5times 10^4)。 Solution 设 (pre_{i}=sum_{j=1}^{i}{a_{1,i}},suf_i=sum_{j
P5975 photo 题解
Solution 先离散化,记 (f(l,r,p)) 为覆盖了 ([l,r]) 区间内纵坐标 (ge p) 的点最少矩形个数。则: [ f(l,r,p)=min(f(l,r,p),f(l,mid,p)+f(mid+1,r,p)) ][ f(l,r,p)=min(f(l,r,p),f(l,r,res)+1) ]令 (h) 为用面积为 (S) 的矩形去覆盖 ([l,r]) 区间的高度,即 (S/(r-
P6292 区间本质不同子串个数
Solution 与“区间本质不同回文子串个数”类似,但没有等差数列那样优美的性质了……下面是一个更通用的做法。 考虑移动一次右端点 (r),就相当于把 parent 树上一条到根链的 last endpos 设为 (r). 把这个看成 access 操作. 考虑用 LCT 维护 parent 树的链,维护一个性质:一条实链的 last endpos 都相同。可以发现这条实链代表的字符串长度连续
P9192 Pareidolia 题解
Statement 给串 (t),定义 (B(s)) 为 (s) 删一些字符后能出现最多多少个 bessie,(A(t)) 表示对 (t) 的所有子串 (s) 求 (B(s)) 的和,有 (q) 次单点修改,每次改完输出 (B(s)). Solution 动态 dp,但是带矩乘 (6^3) 常数,不好. 还是考虑分治咋做. 现在有区间 ([l,mid],[mid+1,r]) 对于一个跨过中点的区间
P3703 树点涂色 题解
Statement 树,每个点有一个颜色,初始每个点颜色互不相同 到根链涂上新颜色 链颜色数 (u) 子树内点 (v) 到根路径的最多颜色数 Solution 首先,相同颜色的点一定构成一条从下往上的链 考虑 LCT,维护一个性质:一条实链的点的颜色相同. 于是 (u) 到根的颜色数 (=) (u) 到根的虚边数加一,记虚边数为 (f(u)). 于是第二个询问,等于 (f(u)+f(v)-2c
c++中字符/串->整数
char字符->整数数字:std::isdigit 用于判断某个字符是否为数字(0-9)。 字符串->数字:std::stoi 用于将字符转换为整数。 isdigit 参数: ch:一个整数类型的参数,通常是一个字符,代表需要判断的字符。 返回值: 如果 ch 是数字字符('0' - '9'),则返回非零值(通常为 1)。 如果 ch 不是数字字符,则返回 0。 用法: 你需
OpenCV(图像明度)
目录1. 图像明度(Brightness)2. 明度调整的原理3. 示例 1. 图像明度(Brightness) 明度(Brightness)是图像中反映光亮程度的一个属性,通常用于描述像素的亮度水平。 对于RGB图像,明度(Luminance)每个像素中红、绿、蓝通道的加权和。 [text{Luminance} = 0.299 times R + 0.587 times G + 0.114
【巧用set实现对有序数组O(logn)时间复杂度增、删、查、改、二分操作】codeforces 1041 C. Coffee Break
题意 第一行输入三个整数 (n,m,d(1 leq n leq 2 * 10^5, n leq m leq 10^9, 1 leq d leq n)),第二行输入 (n) 个整数,保证每个数均不大于 (m)。 在每一天你都可以任意选择一个未选过的数 (a_i),随后可以继续选任意一个大于 (a_i + d) 的数 (a_j);接下来可以再选任意一个大于 (a_j + d) 的数 (a_k);最后重
OpenCV(图像对比度)
目录1. 图像对比度2. 对比度调整的原理3. 示例4. 调整对比度的效果 1. 图像对比度 图像对比度是指图像中亮部和暗部之间的差异程度。对比度越高,亮区更亮,暗区更暗;对比度低时,亮区和暗区的差异不明显,图像显得平淡。 2. 对比度调整的原理 图像对比度可以通过线性变换实现,公式如下: [I_{out} = alpha cdot I_{in} + beta ] (I_{in}) 是输入
P1969 [NOIP2013 提高组] 积木大赛
[NOIP2013 提高组] 积木大赛 题目背景 NOIP2013 提高组 D2T1 题目描述 春春幼儿园举办了一年一度的“积木大赛”。今年比赛的内容是搭建一座宽度为 $n$ 的大厦,大厦可以看成由 $n$ 块宽度为 $1$ 的积木组成,第 $i$ 块积木的最终高度需要是 $h_i$。 在搭建开始之前,没有任何积木(可以看成 $n$ 块高度为 $0$ 的积木)。接下来每次操作,小朋友们可以选择一段
P5019 [NOIP2018 提高组] 铺设道路
[NOIP2018 提高组] 铺设道路 题目背景 NOIP2018 提高组 D1T1 题目描述 春春是一名道路工程师,负责铺设一条长度为 $n$ 的道路。 铺设道路的主要工作是填平下陷的地表。整段道路可以看作是 $n$ 块首尾相连的区域,一开始,第 $i$ 块区域下陷的深度为 $d_i$ 。 春春每天可以选择一段连续区间 $[L,R]$ ,填充这段区间中的每块区域,让其下陷深度减少 $1$。在选择
智能指针之手撕共享指针shared_ptr
要点 成员是指向实例的指针和应用计数 应用计数也应该是一个共享的int指针,因为这个计数需要各个共享指针同步维护 需要重载的函数有:用指针构造;拷贝构造;赋值运算符=;解地址运算符*;指针调用成员的运算符->;析构函数; 涉及到计数的部分: 构造时初始化:1 拷贝构造:+1 赋值=:原有-1,新对象+1。注意-到0时,要执行析构; 析构函数:-1。注意-到0时,要执行析构; 贴个代
502 Bad Gateway
最优数学期望的分界点并不在区间中点处,因此需要整数三分,应当可以通过l=lmid+1、r=rmid-1收缩区间 ACM时代,应当可以通过__gcd函数求最大公约数,不用自己手写了。【就算会编译错误也不计入罚时,试错成本极低】 对double比较相对大小的精度还是要有信心的,虽然这道题其实用不上double,稍微变形一下就好了 赛场上忘开long long了,万幸本题三分的结论应该是落在根号处,不
CF2006B Iris and the Tree
题目链接 题解 知识点:DFS序。 编号已经满足 dfs 序,因此对于边 (t_v = (u,v), u < v) ,有且仅有两条路径 (v - 1 to v, R_v to R_v bmod n + 1) 会经过这条边,前者是进入子树 (v) 时经过,后者是离开子树 (v) 时经过。其中 (R_v) 表示子树 (v) 内的最大编号,我们可以用 dfs 预处理。 显然,当一条路径存在未确
牛客周赛 Round 61
A-Letter Song 签到题 代码 B-简单图形问题 思路 正方形面积:(x^2),正三角形面积:(frac{sqrt{3}}{4} x^2),判断一下能组成什么就行。 代码 C-小红的差值构造 思路 根据给出的目标点(x, y),如果x>0,显然U操作数量一定要比x值大,否则就不可能到达,同理其他情况也一样。 接下来讨论可行的方案数,同样以x>0的情况讨论,假设用u记录一共
【LGR-199-Div.3】复旦勰码基础赛 #16 & FSLOI Round 1
P11076 「FSLOI Round I」单挑 思路 最多连续胜利的场数最少是多少,其实就是在剩余的S里面插入F的连续胜场的最大值是多,以为要先小S获胜,可以插入的空的数量就是剩余S的大小,平均值上取整就是答案。 代码 P11077 「FSLOI Round I」石子 思路 不可行的情况明显是对于一个不等于平均值的数,无论如何加减k值都不可能到达平均值。 接下讨论可行情况的胜负,明显的对于一个
2024 Noip 做题记录(二)
(text{By DaiRuiChen007}) Round #5 - 2024.9.14 A. [P9906] Cover Problem Link 题目大意 给定长度为 (k) 的序列,从一个点出发,每次向左或向右一步,共走 (n) 步,每个位置上显示最后一次被经过的时刻,求能生成多少合法序列。 数据范围:(n,kle 5000)。 思路分析 注意到能到达的点一定是一段区间,可以倒序
程序像河水一样流动着
摘要 “程序像河水一样流动着” 主要探讨了程序执行的流程及相关概念。 首先介绍了程序计数器(PC)在确定程序执行顺序中的关键作用,它如同指挥棒决定着下一条指令的地址。 接着阐述了条件分支和循环机制,条件分支根据特定条件改变程序的执行路径,而循环则通过重复执行一段代码实现特定功能。 同时,详细说明了标志寄存器在条件判断中的重要性,其存储的标志位可反映运算结果的状态,为条件分支提供
Cloudflare WARP+ 又能用了!2024年9月22日,新增MASQUE协议
大概三个月前,cloudflare warp+在中国大陆被全面封禁,导致广大用户无法使用warp+,纷纷转投cf worker。 今天,它带着新增MASQUE协议强势回归,只要切换到新协议,就又能用了。 1. Windows用户 1.1 WARP+官网下载客户端 WARP+官网: 进入WARP+官网,下载对应客户端。 双击运行,完成安装。 1.2 新建mdm.xml文件 在 C:Pro
P3478 题解 & 换根 dp 学习笔记
换根 dp,又叫二次扫描,属于树形 dp 的范畴。一般具有一下几个特点: 当指定的根节点不同时,题目求解的答案不同。 在转移期间需要不止一个节点的信息。 需两次 dfs,第一次为预处理,第二次为 dp 过程。 预处理 本题需要记录每个节点的两个信息: 节点 (u) 的深度 (d_u)。 当树根为 (1) 时,以节点 (u) 为根的子树的节点数 (mathit{sz}_u)。易得 (math
leetcode 算法题目学习笔记 - 序号2
2. 两数相加 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 可用的模板 初始想法 暴力求解,将两个链表里面的数拿出来变成完整数字,求和,再转换为链表倒序存储 点击查看代码 思路很简单 但是简单的令
【Ynoi 2019 模拟赛】Yuno loves sqrt technology II
Luogu P5047 Yuno loves sqrt technology II 题意 给定一个长度为 (n) 的序列 (a)。 有 (m) 次询问:查询区间 ([l,r]) 中的逆序对数。 数据范围与约定 (1 le n,m le 10^5),(0 le a_i le 10^9)。 题解 看到区间问题,先思考线段树。发现用线段树没法合并两个区间的信息。所以考虑分块。分块确实能做,但是这题卡空间