iOS
基础算法(十一)二维差分---以题为例
输入一个 n 行 m 列的整数矩阵,再输入 q 个操作,每个操作包含五个整数 x1,y1,x2,y2,c,其中 (x1,y1)和 (x2,y2) 表示一个子矩阵的左上角坐标和右下角坐标。 每个操作都要将选中的子矩阵中的每个元素的值加上 c。 请你将进行完所有操作后的矩阵输出。 输入格式 第
P8338 [AHOI2022] 排列
建边:(i to p_i),这样会形成若干个置换环,每次操作相当于每个点同时走一步。 记置换环的数量为 (m),从 (1) 到 (m) 编号,第 (i) 个置换环的大小是 (s_i),(bel_i) 为点 (i) 所属的置换环编号。 显然 (f(i, j) = 0) 的充要条件是 (i, j) 在同一置换环上,否则 (f(i, j) = operatorname{lcm}{{s_k | k ne
hdu 1240 Asteroids! (三维BFS)
Problem - 1240 (hdu.edu.cn) 三维的BFS,存在一个坐标点的变换,即输入的是 (y , z , x),进行转换即可
Find The MultipleC++
这题就是找N的倍数m,M要求是由1和0组成且非0。 可以用图来看,从1出发临边是1和0,然后广度遍历,第一个能能整除N的数输出就行。 #include<iostream> #include<queue> using namespace std; int main(){ int n=-1; while(cin >> n){ if
Windows Server 2022 OVF, updated Jan 2024 (sysin) - VMware 虚拟机模板
Windows Server 2022 OVF, updated Jan 2024 (sysin) - VMware 虚拟机模板 2024 年 1 月版本更新,现在自动运行 sysprep,支持 ESXi Host Client 部署 请访问原文链接:https://sysin.org/blog/windows-server-2022-ovf/,查看最新版。原创作品,转载请保留出处。 作者主页:s
c++20模块化编程与传统区别
传统:main.cpp + a.cpp(存放定义) + a.h(存放声明) c++20: main.cpp + a.cppm(存放定义,在定义前面写export即可) 模块化编程好处: 不再需要修改了函数到对应修改声明,两头跑 编译更快,模块只在修改后才重新编译 模块化编程举例:
P10118 『STA - R4』And 题解
题目 看到位运算,直接二进制拆分考虑。 首先 (x operatorname{AND}y=B),设 (x=B+m),(y=B+n),知道 (x+y=A),所以设 (W=n+m=A-2times B),(y-x) 等价于 (n-m)。 因为已知 (xoperatorname{AND}y=B),所以 (noperatorname{AND}m=0),着意味着在二进制下 (n) 和 (m) 不存在某一位上
12. C++ 类其实也是一种作用域
C++ 类其实也是一种作用域 类其实也是一种作用域,每个类都会定义它自己的作用域。在类的作用域之外,普通的成员只能通过对象(可以是对象本身,也可以是对象指针或对象引用)来访问,静态成员既可以通过对象访问,又可以通过类访问,在类内用 typedef 定义的类型只能通过类来访问。 下面的例子使用不同的方式访问了不同的成员: 联系QQ:1304286168
【工具】依赖已捕获的tcpdump/wireshark码流快速模拟测试场景
初衷: 以http为例,大多数场景下已有成熟的测试工具能够通过构造报文来模拟测试场景,如postman、jemter等,但对接的第三方可能具有某些特定或约定好的机制,针对此类机制构造用例往往要花不少时间 而调测阶段通常可以通过tcpdump极快的获取到范例报文,因此如果可以直接根据范例报文来构造用例要轻松不少 思路: 1、获取到范例报文(以下图为例) &nb
P2178 [NOI2015] 品酒大会 题解
P2178 [NOI2015] 品酒大会 题解 纪念一下第一道完全自己想出来的紫NOI题。 思路 由于 r 相似有单调性的性质,题目中也提示了这一点,考虑按 (height_i) 从大到小把所有相邻的 (sa) 数组内两个后缀合并,用并查集维护,发现第一问的答案就是 [sum_{i是并查集的根}binom{size_i}{2} ]因为同一个并查集内的所有后缀两两 LCP 一定不小于当前枚举的 (r
U404643 帕鲁大陆染色的一天 题解
题目链接:帕鲁大陆染色的一天 注意到每种颜色是独立的,所以我们能够比较容易地得知每种颜色在一系列操作中的出现和消失时间。我们注意到每个操作加入以后会有两个影响,对它后面的操作显然颜色总数都会 (+1),对前面操作的影响来说,显然会覆盖掉某些颜色,导致某些颜色消失,换句话来讲消除了前面操作对后面操作的影响 (1)。 基于上述的过程,其实这是在时间轴的操作影响,并且询问也是基于时间轴,所以我们可以在时
FastGateway 一个可以用于代替Nginx的网关
在我本人研究Yarp的时候经常用于公司项目的业务网关代理,这时候就个大佬问我是否可以实现动态加载HTTPS证书?那时候我说不太可能实现,然而在某一天我看到 微软使用Yarp代替了Nginx吞吐量提升了百分之八十! 这个时候我就萌生了自己使用yarp造一个Gateway的项目,应为我本身也经常使用nginx作为网关,但是nginx的使用总得写conf,然后重启我的nginx,并且还需要配置证书重启
基础算法(八)前缀和模板---以前缀和题目为例
题目如下 输入一个长度为 n的整数序列。 接下来再输入 m个询问,每个询问输入一对 l,r。 对于每个询问,输出原序列中从第 l 个数到第 r个数的和。 输入格式 第一行包含两个整数 n 和 m。 第二行包含 n 个整数,表示整数数列。 接下来 m 行,每行包含
(坚持每天写算法)算法学习与复习part1基础算法1-13——位运算
最近确实有在写算法,在写dp,之前学的时候不全,被计数,树型等dp折磨了一下。 位运算是将重点放在数字的位上,通常作为辅助行动,比如状态dp,有的时候是为了节省时空复杂度而使用的。 这是今天的题目: 位运算应用的情况除了上面讲的,还有单纯的位问题,上面的题目就是一个例子。 这道题的思路运用到了一个lowbit运算,lowbit运算是获取一个二进制数中最右边的1所对
C++ GDAL提取多时相遥感影像中像素随时间变化的数值数组
本文介绍基于C++语言GDAL库,批量读取大量栅格遥感影像文件,并生成各像元数值的时间序列数组的方法。 首先,我们来明确一下本文所需实现的需求。现在有一个文件夹,其中包含了很多不同格式的文件,如下图所示。 其中,我们首先需要遍历这一文件夹,遴选出其中所有类型为.bmp格式的栅格遥感影像文件(一共有6个),并分别读取文件(已知这些遥感影像的行数、列数都是一致的);随后,将不同遥感影像的
计算机名是什么 为什么 是在网络中唯一标识一台计算机的名称。它使得网络中的其他计算机可以通过这个名字找到并与之通信。
在Windows操作系统中,有几个关键的系统属性和功能可以帮助用户管理和识别网络中的计算机。以下是这些属性的详细介绍: 1. 计算机名(Computer Name) 计算机名是在网络中唯一标识一台计算机的名称。它使得网络中的其他计算机可以通过这个名字找到并与之通信。例如,在一个家庭网络或公司网络中,每台计算机都应该有一个独特且易于识别的名字,以便用户能够轻松地区分和访问不同的设备。 2. 计算机描
【学习笔记】DP 套 DP
DP 套 DP 的题目一般大致要求为求满足某个要求的元素数量。而对于其要求的判定需要 DP 来解决。因此我们将判定 DP 的结果作为计数 DP 的状态来进行计数。 [TJOI2018] 游园会 首先考虑如何求出两个字符串 (S, T) 的 LCS,设 (f_{i, j}) 表示 (Sleft[1, iright]) 和 (Tleft[1, jright]) 的 LCS 长度。发现其有如下转移: [
24/02/02 按钮
题目描述 有一排按钮,编号为 (0 sim n-1)。现在有两种操作: (p) (l) (r):表示把编号在 ([l,r]) 范围内的按钮都按下去。 (r) (l) (r):表示把编号在 ([l,r]) 范围内的按钮都提一格。保证这个操作与之前某个按下操作的区间一样,且一次按下只会释放一次。 如下图,是一个有6个按钮的初始情况: 按下 ([0,2]) 和 ([2,3]) 的结果:
AT_past202107_l 题解
Solution 题目来源:AT_past202107_l(in AtCoder | in luogu) 用线段树维护区间最小值。单点修改很好写,我们看怎么区间寻找最小值位置。 对于每次询问,我们先求出所查询区间 ([x_i, y_i]) 的最小值 (p),然后写一个寻找函数。对于当前区间 ([l, r]),分以下情况来看: 如果当前区间长度 (> 1)、并且并不包含在所查询区间内(即 (
P4064 [JXOI2017] 加法 题解
P4064 [JXOI2017] 加法 题解 思路 一眼二分答案,这种区间的题很难不排序,可以考虑这个贪心 check: 区间左端点升序排序之后,每次遇到一个点,判断这个点是否合法,如果不合法就在所有左端点在这个点左边的区间里选择右端点最大的一个。 感性证明:这个点之前的点已经保证合法了,所有左端点在这个点左侧的区间左端点到这个点这部分只对当前点造成贡献,对后面无影响,所以显然选择右端点最大的可
Codeforces Round 734 (Div. 3)B2. Wonderful Coloring - 2(贪心构造实现)
思路: 分类讨论: 当一个数字出现的次数大于等于k,那么最多有k个能被染色, 当一个数字出现的次数小于k,南那么这些数字都可能被染色 还有一个条件就是需要满足每个颜色的数字个数一样多,这里记出现次数小于k的所有数字的出现次数总和为sum,将所有这些数字排序后,前sum-sum%k个数字是都可以被染色的,按照1~k的顺寻依次染色即可。 主要是有点不太好实现。 对于这种我们需要统计每个数字有多少个,同
Dart core library
Dart core library Dart IO class File & class Directory(两个均是继承自 abstract FileSystemEntity) FIle 仅仅用来操作真正的文件 Directory 仅仅针对文件夹(即使按照规定Directory也是特殊文件) File FileRead read file async FileW
记录一次实机安装linux的经历
众所周知,不会玩linux的程序员不是一个合格的程序员。 为了能更好地装逼学习linux,我打算自己动手在实体电脑上安装一下linux。并将这次经历记录下来,以便日后查看。 安装前的准备 为了方便蹭公司的电 我这次选择笔记本电脑来安装linux,来看看这次用来装系统的电脑配置 除了一块固态128G硬盘,另外还有一块500G的机械硬盘 选择发行版 linux有众多发行版,鉴于自己是个经验丰富的菜
【CCF CAT 】全国算法精英大赛2024年2月1日
赛时我们通过了7题,排名25。 A 摩斯电码 队友代码 B 光线折射 多画一画,多特批一下就行了 C 多项式还原 题目保证了有唯一解,所以可以把(m)转换成(n+1)进制数。这个思路是队友想的。 D 开心消消乐 (n,m)都很小,所以可以直接暴力搜索。为了方便处理,我把整个图旋转一下,来改变重力的方向。 对于当前的状态,直接bfs染色,同时统计每种颜色出现的次数。然后枚举每个个数大于等于3的
int main(int argc,char* argv[]) 参数详细说明
argc:参数个数 argv[]:参数内容 注意: 当程序直接运行,没有额外的命令行参数时,argc为1, 因此argc至少为1,argv[]至少长度为1,即argv[0] 存储程序的名称,argv[1] 以后的元素为空 上述两个参数在编译器内部运行无效, 在命令行或终端运行发挥作用 举例:假设需要两个整数参数进行加法操作 在编译器内部运行无效: 在命令行必须“路径+程序名+参数”三者全部
std::endl与"\n"区别
使用 std::endl 插入到输出流中时,它不仅会在流中插入新的一行,还会强制刷新(flush)流的缓冲区。这意味着它会确保输出被立即写入到目标设备(例如终端或文件),而不是等待缓冲区被填满或显式刷新。 使用 'n' 字符在流中插入新行,但不会强制刷新缓冲区。这意味着如果有缓冲区,它可能会等到缓冲区被填满或手动刷新时才将内容写入目标设备。 总体来说,使用 'n' 在大多数情况下更加高
CF620E New Year Tree (线段树维护 dfs 序)
CF620E New Year Tree 题意:给出一棵 n 个节点的树,根节点为 1。每个节点上有一种颜色 ci。m 次操作。操作有两种: 1 u c:将以 u 为根的子树上的所有节点的颜色改为 c。 2 u:询问以 u 为根的子树上的所有节点的颜色数量。 1 <= c <= 60。 由于 c 的范围,可以用一个整数来表示每棵子树的状态。 将树上问题转化为序列问题,当然可以树剖