- 博客(11)
- 收藏
- 关注
原创 指针常量和常量指针,以及复合型定义其内部细节
而后面是int *p指针类型,按照通用定义模式,该p指针所存储的数据就是常量,因此无法改变。如int* const p ,int *规定了其存储数据类型是指针,只不过使用p这个存储结构来存储的,而p这个数据类型是const型,所以无法修改p的值,也就无法改变指针的转向。指向特定空间,这种空间可以是能存储各种类型的数据对象(包括数组,变量,new出来的空间等等),因此,指针可以指向所有地方,且唯一。指针常量,其内涵为指针类型的常量,意思是他本质是存储了一个常量,只不过数据存储的结构是指针。
2024-01-11 15:58:26
387
1
原创 动态规划之状态压缩初步(一)
什么是状态压缩顾名思义,状态压缩指的是对状态的压缩。通过压缩状态使得数组能够存下他们每一种状态。而这里压缩具体指的是什么?举个例子,在学01背包的时候,是不是我们进行了n次决策(选或不选),那么将1……n选或不选的状态转变成由0或1来表示,也就是二进制优化的思路。什么情况下使用?1)出现棋盘类(像围棋的棋盘那样格子与格子之间分开),且棋盘的长度或宽度不会很大,因为一般使用数组的一维来表示因为二进制表示状态的情况有2^m种m是宽度或长度。计算时间复杂度的时候也得枚举每一种状态即乘上2 ^ m。(2 ^
2022-04-18 22:05:49
675
原创 动态规划之0-1背包问题【优化】
问题背景有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<vi,wi≤1000朴素版(会的直接跳过
2022-04-11 11:42:40
366
原创 递推和递归理解
递推先放出两道题翻硬币小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:oo*oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作。输入格式两行等长的字符串,分别表示初始状态和要达到的目标状态。输出格式一个整数,表示
2022-03-30 14:14:07
3523
原创 日志统计题目的单调队列优化
单调队列对于处理冗余元素以及快速操作有效元素有着重要作用,其思想往往能降低复杂度、优化重复操作等等,和双指针思想有着密切关系,是一个重要的工具。单调队列——滑动窗口给定一个大小为 n≤106 的数组。有一个大小为 k 的滑动窗口,它从数组的最左边移动到最右边。你只能在窗口中看到 k 个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为 [1 3 -1 -3 5 3 6 7],k 为 3你的任务是确定滑动窗口位于每个位置时,窗口中的最大值和最小值。输入格式输入包含两行。.
2022-03-26 15:27:44
77
原创 灌溉农田贪心和社交距离I贪心对比(原标签可以用二分答案)
社交距离 I一种新型疾病,COWVID-19,开始在全世界的奶牛之间传播。Farmer John 正在采取尽可能多的预防措施来防止他的牛群被感染。Farmer John 的牛棚是一个狭长的建筑物,有一排共 N 个牛栏。有些牛栏里目前有奶牛,有些目前空着。得知“社交距离”的重要性,Farmer John 希望使得 D 尽可能大,其中 D 为最近的两个有奶牛的牛栏的距离。例如,如果牛栏 3 和 8 是最近的有奶牛的牛栏,那么 D=5。最近两头奶牛新来到 Farmer John 的牛群,他需要决定将
2022-03-24 15:52:25
89
原创 放养但没有完全放养(两序列相对位置题)
Farmer John 的奶牛正在 mooZ 视频会议平台上举行每日集会。她们发明了一个简单的数字游戏,为会议增添一些乐趣。Elsie 有三个正整数 A、B 和 C (A≤B≤C)。这些数字是保密的,她不会直接透露给她的姐妹 Bessie。她告诉 Bessie 七个范围在 1…109 之间的整数(不一定各不相同),并宣称这是 A、B、C、A+B、B+C、C+A 和 A+B+C 的某种排列。给定这七个整数,请帮助 Bessie 求出 A、B 和 C。可以证明,答案是唯一的。输入格式输入一行,包
2022-03-15 09:10:41
252
原创 Codeforces Round #775 (Div. 2)(含B题的贪心证明)
Codeforces Round #775 (Div. 2, based on Moscow Open Olympiad in Informatics)Game of Ball Passing 贪心证明
2022-03-07 20:12:28
277
原创 二分图匹配——匈牙利算法(时间复杂度O(nm))
什么是匈牙利算法匈牙利算法是在两个集合中,各选出一个元素,若这两个元素情投意合,那么这两个元素就会脱离他们对应的集合,直到剩余集合中元素不能再组成配对为止(即在两个箱子里拿小球,如果这两个小球能消消乐,那么就拿到不能再消为止),匈牙利算法目的则是让匹配对数最多。就像极度理性的男女分配一样,假如男1喜欢女1,男1也喜欢女2,但男2只喜欢女1,,那么在匹配的过程中,男2就找男1谈:“诶,我们都是兄弟,你看,我就只喜欢女1,喜欢其它人那不如让我狗带,你不也喜欢女2么,这不是两全其美。”(我纯爱战士表示狂怒,就
2022-02-06 17:16:07
3937
原创 Dijkstra堆优化算法(时间复杂度:mlogn)
Dijkstra——邻接表存储的堆优化算法在明白原理后(上一篇讲过),发现朴素算法的时间复杂度太大,在找最短的距离需要枚举n个方案,但是在优先队列里面的小跟堆直接找堆顶就行。优化思路:用邻接表存图,然后用类似bfs宽搜的原理来更新各个点代码:#include <iostream>#include <queue>#include <vector>#include <cstring>using namespace std;typedef p
2021-08-27 15:11:05
2745
原创 Dijsktra的算法理解---朴素算法(n2+M)
Dijsktra的算法理解—朴素算法(n2+M) **请注意:下面的理解方式及其残忍(doge),Dijkstra算法我尽量会用通俗的故事去解释帮助理解,之后会更新堆优化版dijsktra(mlogn)。如有雷同,纯属巧合。**一、题目分析:给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为正值。请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1。二、思路分析:求1到n点的最短距离,可能会出现重边和自环,不会出现负权的边,且为有向
2021-08-26 17:54:30
403
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人