iOS

算法总结

前言: 有关于算法的一切的大合集 基本数据结构及排序方法手撸 完全二叉树/满二叉树 红黑树 节点分为红色或者黑色; 根节点必为黑色; 叶子节点都为黑色,且为null; 连接红色节点的两个子节点都为黑色(红黑树不会出现相邻的红色节点); 从任意节点出发,到其每个叶子节点的路径中包含相同数量的黑色节点; 新加入到红黑树的节点为红色节点; AVL树 B树/B+树,为什么B+树做数据索

C++ 函数指针与Lambda匿名函数

函数指针 c语言学过了,这里简单记一下,下面举例一个用法就行: 比如这个代码,foreach便利出数据,具体执行什么操作,就可以通过函数指针传入。 Lambda匿名函数 匿名函数结构 捕获 捕获可以让函数使用外部的值。 [] 什么都不捕获 [&] 引用捕获,可以修改值 [=] 按值捕获,不可以修改值 例子 因为不需要修改c的值,所以按值捕获。结果是4.

C++ Template

Template 模板,其他语言叫泛型,或者说是泛型的爷爷的爷爷( 模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。 直接上例子 例一 先看这段代码: 这是一个打印内容的函数,但是如果我们想要打印一个整数就不行了,因为需要的参数是string。这时候就有小伙伴说了

c++算法之动态规划:01背包

什么是动态规划? 动态规划算法(dynamic programing),是一种由递推为基础的比贪心更稳定的一种优化策略,为运筹学的一部分。就是通过以递推为基础的手段非暴力求出最值。 它的总体思想其实就是一个比较过程:假如你有一个数据,它的价值是x,代价为y,如果用动态规划就是和你不加这个元素和你加上这个元素的价值减去他的代价的二值做最值比较。 动态规划的思想用的很多就比如:经济上的盈亏、概率等。

AtCoder 题目集1

AtCoder 题目集1 这是一个AT个人刷题总结的开始,感觉确实应该做一做这种总结,如果只是不断的刷题,感觉貌似也没有什么意思,还不如时常适当的回望一下过去的好题。希望能一直做下去吧。 update(22.12.14): AT赛后总结归为另外一栏,此处为过去AT题目的记录。 总结了一些比较有趣或者有思维的题(对于我这个菜鸡)。 编号(NO.) 题目 难度 类型 1 ARC060E

P4 UVA11400 Lighting System Design

很好的一道 DP 题。 首先按照电压排序。 然后考虑 (dp[i]) 表示前 (i) 盏灯的最小花费,则应该有 (dp[i]=min(dp[j]+(s[i]-s[j])*c[i]+k[i])),其中 (s[i]) 表示前 (i) 盏灯的总需求数。 为什么可以这样子直接用前缀,而不用考虑 "跳着选" 呢?是因为如果跳着选,就说明有一盏灯在一盏更优灯的前面,那么先前在这盏更优灯的时候就应该已经更新过了

P5 UVA1308 Viva Confetti

这道题主要是去理解所谓的 "看得见" 的面积是怎么组成的。 对于每个露出来的面积,其实是由多个圆弧所组成的。是的,这就是为什么要以圆弧为引入点来解决此题的原因。 那该怎么找露出来的面积呢?题目有说,在一定范围内不影响答案,所以考虑找每个圆弧的中点,然后平移一点点距离,再从覆盖顺序看最上层盖住这个点的圆是谁,如果有盖住此点的圆,就说明这个圆是露出来的。

C++ 输入输出 字符串 技巧

———————————————— 版权声明:本文为CSDN博主「zombo_tany」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_46640863/article/details/126705009 7.计算行数据和,每行数据总数未知,总行数未知且任意结尾 链接:https://ac.nowcode

单条件和

题目: p→q,p为前件,q为后件 真值表如下: p q p→q 1 1 1 1 0 0 0 1 1 0 0 1 异或和定义为:a1⊕a2⊕...⊕an 同理定义单条件和:a1→a2→...→an 代码:

B. 攻防演练 (倍增)

攻防演练 来源 2021年中国大学生程序设计竞赛女生专场 https://codeforces.com/gym/103389/problem/B 题解 注意倍增的递推顺序还有 (0,n+1) 的情况!!!

对称三进制

题目背景 进制转换公式 [x=sum_{i=0}^{n-1}{a_i times p^i} ](i) 是从右往左数的位数,从第 (0) 位开始。 对称三进制转十进制 输入输出: 代码: 十进制转对称三进制 输入输出: 代码:

【LuoGu 1363】幻象迷宫——深度优先搜索 + 读题

幻象迷宫 题目背景 (喵星人 LHX 和 WD 同心协力击退了汪星人的入侵,不幸的是,汪星人撤退之前给它们制造了一片幻象迷宫。) WD:呜呜,肿么办啊…… LHX:momo...我们一定能走出去的! WD:嗯,+U+U! 题目描述 幻象迷宫可以认为是无限大的,不过它由若干个 (Ntimes M) 的矩阵重复组成。矩阵中有的地方是道路,用 (verb!.!) 表示;有的地方是墙,用 (verb!#!

[HZOJ普及模拟2]

(Hugecolor{7ff77f}{打了一场模拟赛,又垫底了。qwq}) (Hugecolor{12f4ff}{快}) (Hugecolor{f9f98f}{V}) (Hugecolor{ff1256}{本}) (Hugecolor{ff4514}{蒟}) (Hugecolor{7ffff7}{蒻}) (Hugecolor{3f3f3f}{5}) (Hugecolor{f54321}{0})

P1518 [USACO2.4] 两只塔姆沃斯牛 The Tamworth Two

题目描述 两只牛逃跑到了森林里。Farmer John 开始用他的专家技术追捕这两头牛。你的任务是模拟他们的行为(牛和 John)。 追击在 10×1010×10 的平面网格内进行。一个格子可以是:一个障碍物,两头牛(它们总在一起),或者 Farmer John。两头牛和 Farmer John 可以在同一个格子内(当他们相遇时),但是他们都不能进入有障碍的格子。 一个格子可

【洛谷 1157】组合的输出

# 组合的输出 ## 题目描述 排列与组合是常用的数学方法,其中组合就是从 $n$ 个元素中抽出 $r$ 个元素(不分顺序且 $r le n$),我们可以简单地将 $n$ 个元素理解为自然数 $1,2,dots,n$,从中任取 $r$ 个数。 现要求你输出所有组合。 例如 $n=5,r=3$,所有组合为: $123,124,125,134,135,145,234,235,245,345$。 ##

【csp-3】排列与组合

组合:n个数选m个数,从小到大第k个选择是什么 排列:n个数,第m大个全排列 另一种方法求解:  

8.19 模拟赛小结

前言 结束了 也许这几天很苦 但也是最有意义的几天 这篇写简单一点吧 T1 颠倒黑白 很强的构造题 根据打表找出思路 因为最左下角的是一定要点的 就考虑它 如果是先手 左下角有黑色 就把它点了 后手只能帮我们把其它黑色点了 最后还是我们先点完 若是后手 左下角是白色 与先手同理 一个简单判断即可 T2 糖果数 原题 题意:给定一个 (nspace (nleq 10^{18})) 求在 (n

矩形的对角线经过的小方格数量

题目:   对于一个长度为m,宽为n的矩形,均分成m*n的小方格,求 从左上角到右下角的对角线 穿过多少个小方格? 题解1: #include <iostream> #include <cmath> using namespace std; int main() { int n = 1, t, a1 = 0, b1 = 0, a2, b2; // n 计数器,a1

寻宝 题解

寻宝 题目大意 存在 (n) 个点和两种有向边: 一类边分 (m) 组,每组的边权相同,从 ([s_l,s_r]) 中的所有点连向 ([t_l,t_r]) 中的所有点。 二类边存在于任意两点 (i,j) 间,从 (i) 连向 (j) 的二类边的边权为 (|i-j|times a_i)。 求从点 (1) 到 (n) 的最短路及方案。 思路分析 神仙题。 一类边比较好处理,可以直接用区间向

【12.0】前台页面搭建

【一】首页原型图 【二】页头 【1】分析 页头包括两部分 一部分是最上边的 一部分是路飞学城的 logo + 课程分类 + 登录注册 【2】实现 lufycity_websrccomponentsHeader.vue 【三】轮播图 【1】分析 轮播图要实现图片的轮转 直接找 elementui 复制即可 点击图片跳转到指定的链接地址 内部链接 外部链接要做区

【16.0】前端登陆页面

【一】分析 登录,注册,都写成组件----》在任意页面中,都能点击显示登录模态框 写好的组件,应该放在那个组件中----》不是页面组件(小组件) 点击登录按钮,把Login.vue 通过定位,占满全屏,透明度设为 0.5 ,纯黑色悲剧,覆盖在组件上 在Login.vue点关闭,要把Login.vue隐藏起来,父子通信之子传父,自定义事件 【二】登陆模态框引入 【1】父组件 he

ubuntu与windows双系统时间同步

windows认为,BIOS时间就是当地时间。所以windows会直接显示BIOS时间。 ubuntu认为,BIOS时间应当是UTC时间(格林尼治标准时间)。所以ubuntu会将BIOS时间加8小时后再显示出来(中国,UTC+8)。 解决方案是,在ubuntu终端中输入: 这句话的作用是让ubuntu将系统时间和BIOS时间同步。现在,ubuntu和windows一样,都认为BIOS时间就是当地

AGC029E Wandering TKHS

没有简要题意了,哈哈! 分析一下题目给出的过程。直觉告诉我们关键在于点 (r) 到 (1) 的这条路径。一个结论是整个过程中访问的编号最大的点就是这条路径上的最大点,证明可以考虑如果访问了不在路径上的更大的点,在此之前一定可以够到 (1),于是矛盾。 于是可以发现最大值很重要,那么直觉告诉我们首先观察一下全局最大值,假设这个点是 (s)。这个点很厉害,所有在它子树外的点都永远不会进入它这个子树。所

P9571 Horizon Blue 题解

原题链接 题目大意: 有三个操作,分别为 加入一条直线。 查询与一条直线相交但不重合的直线条数。 删除所有与一条直线相交或重合的直线。 注意:后面两个操作的直线并不需要加入。 显然,两条直线相交不重合,当且仅当其 (k) 值不同。 所以可以把所有直线按 (k) 值分类,则第二个操作的查询答案显而易见,为直线总数减去 (k) 为给出 (k) 值相同的直线条数。 然后看到第三个操作,需要删除与其

Gale-Ryser 定理

证明 给定两个非负整数数列 (p_1 ge p_2 ge dots ge p_n) 以及 (q_1 ge q_2 ge dots ge q_m) 满足 (sum_{i = 1}^n p_i = sum_{i = 1}^m q_i),存在一个简单二分图使得左部点的度数分别为 (p_1, p_2, dots, p_n)、右部点的度数分别为 (q_1, q_2, dots, q_m) 的充要条件为 (f

P4197 Peaks 题解

P4197 Peaks 题解 题目描述 在 Bytemountains 有 (n) 座山峰,每座山峰有他的高度 (h_i)。有些山峰之间有双向道路相连,共 (m) 条路径,每条路径有一个困难值,这个值越大表示越难走。 现在有 (q) 组询问,每组询问询问从点 (v) 开始只经过困难值小于等于 (x) 的路径所能到达的山峰中第 (k) 高的山峰,如果无解输出 (-1)。 对于 (100%) 的数据,

CSP模拟25

炒币、凑数、同构、最近公共祖先 A. 炒币 举个栗子,对于序列 [1,4,5 ]在 (1) 处买进,在 (5) 处卖出是最优的选择。 为什么不选择在 (4) 处买,因为 (4) 处成本更高,所以我们可以把一段递增或递减的序列缩成几个互不相同的点。 例如 [1,3,5,3,2,7 ]变成 [5,2,7 ]只有这几个点是需要操作的。 若操作后的序列长度为偶数,直接输出;如果长度为奇数,不在第最后一

[转]Clion中如何使用矩阵库eigen

CMakelist文件内容如下: 其中第一行为确定cmake的最低版本,第二行为项目名称,第三行是确定Cpp的标准,第五行为添加执行文件,eigen库的调用关键在于第四行: 我们只需要下载eigen库,然后括号内写入库的文件位置(这里我直接放在下载路径下),即可直接调用。提供如下测试代码: 上述代码运算结果为: 附:eigen库的下载链接  当然,如果在此基础上又

非线性方程的解

非线性方程的解 From 2022-12-2 To 2022-12- Learning from 物理学中的非线性方程的逐步搜索法和二分法 求解非线性方程的迭代法 弦截法 目录非线性方程的解逐步搜索法二分法简单迭代法(不动点迭代法)例:求(e^{2x} + x - 4 = 0)的根迭代函数收敛判定迭代函数收敛定理加速算法 - 埃特金(Aitken)法收敛定理例:求(e^{2x} + x - 4

<<  <  296  297  298  299  300  301  302  303  304  305  306  >  >>