自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 圈乘运算问题

的位数,各位数字之和,各位数字中的最大值,各位数字中的最小值,进行。运算可以组成各种不同的表达式。十进制整数 Y 的最大数字 + Y 的最小数字。对于给定的十进制整数 X 和 K,由 X 和。运算组成的值为 K 的表达式最少需用多少个。中结论我们可以很容易想到,每个数都有对应的。Y = 十进制整数 X 的各位数字之和。改变时,结果不会继续改变,此时我们输出。每一行有两个十进制整数 X 和 K。运算个数输出,如果没有答案,输出。,因为一位和两位的数字在。关于整数的2元圈乘运算。运算能得到的最大值。

2024-04-26 20:39:19 588

原创 头歌 实训四:数据的保护与共享进阶项目(构造函数与静态成员)火星战士自主进攻

后面的输出,这是调用copy2函数产生的2个sm, 体会函数的作用域 4 体会构造函数和析构函数何时被调用 5 观察生成火星战士名字后缀,以及当前的火星战士总数,体会静态成员的价值和使用 6 学习对象指针和对象数组的使用与初始化 7 为什么程序结束后,仍然有几个活着的火星战士?从类的封装性的角度思考一下,对于更复杂的场景,不仅仅有火星战士,还有更多类型的士兵,或者同时有多个用户、或者多个函数、多个进程都可能产生火星战士,使用全局计数器是否存在安全隐患?后面的输出,体会循环语句的块作用域 3 观察。

2024-04-19 17:23:55 857

原创 PTA L3-035 完美树(树形DP)

给定一棵有N个结点的树(1N1每个结点有一种颜色,或为黑,或为白。称以结点u为根的子树是 好的,若子树中黑色结点与白色结点的数量之差的绝对值不超过1。称整棵树是 完美树,若对于所有1≤i≤N,以结点i为根的子树都是好的。你需要将整棵树变成完美树,为此你可以进行以下操作任意次(包括零次):选择任意一个结点i1≤i≤N),改变结点i的颜色(若结点i目前是黑色则将其改为白色,若结点i目前是白色则将其改为黑色)。这次操作的代价为Pi​。

2024-04-18 16:58:09 1036

原创 树状数组求逆序对

在计算机科学和离散数学中,逆序对是指序列中的两个元素,它们的顺序与它们在原始序列中的顺序相反。更具体地说,对于一个包含nnn个元素的序列,逆序对是指满足aiajijai​aj​ij的索引对ij(i, j)ij的数量,其中aia_iai​和aja_jaj​分别表示序列中的第iii和第jjj个元素。在离散数学和计算机科学中,离散化是指将连续的数据或变量转换为离散的值或类别的过程。

2024-03-31 21:26:31 914

原创 牛客练习赛123 A~C

【代码】牛客练习赛123 A~C。

2024-03-30 13:49:38 433

原创 洛谷P2034 选择数字(单调队列优化DP)

很明显这是一个滑动窗口求区间最小值,因此我们使用单调队列来优化这个动态规划的实现。个连续的数字被选择。你的任务是使得选出的数字的和最大。现在你可以选择其中若干个数,但不能有超过。将题意重新理解一下,将连续选数不超过。的区间内选择一个数删掉,那么我们定义。行,每行一个整数表示。个抽象为每隔长度小于。输出一个值表示答案。

2024-03-28 20:35:00 761

原创 两个有序序列的中位数(全网首篇递归、分治解决)

题目描述已知有两个等长非降序序列S1​和S2​。先将S1​和S2​合并为S3​,求S3​的中位数。

2024-03-28 09:07:02 876

原创 洛谷P4556 [Vani有约会] 雨天的尾巴 /【模板】线段树合并

深绘里一直很讨厌雨天。灼热的天气穿透了前半个夏天,后来一场大雨和随之而来的洪水,浇灭了一切。虽然深绘里家乡的小村落对洪水有着顽固的抵抗力,但也倒了几座老房子,几棵老树被连根拔起,以及田地里的粮食被弄得一片狼藉。无奈的深绘里和村民们只好等待救济粮来维生。不过救济粮的发放方式很特别。

2024-03-25 11:41:08 766

原创 Codeforces Round 935 (Div. 3) F. Kirill and Mushrooms(主席树求区间第k大值)

个数时,我们一定是取当前可以取出当前可取数之中最大的前。由此我们很容易想到的是要是权值最大,当我们要取。,即得此时权值的最大值,因此我们只需枚举一下。,求出权值最大的序列权值及其序列长度。中选到,那我们不妨将序列直接按照。个数,也就是说我们只要找到序列。个数时,我们能找到的序列一定从。首先我们很容易想到,当我们选。

2024-03-22 20:44:17 918

原创 【算法设计与分析】众数问题 - 递归与分治(排序与非排序求解)

对于这种问题的时间复杂度来说,排一下序找一下最长的连续数集就能通过这个问题,时间复杂度为排序的 $O(nlogn+n)$ ,当然既然我们是学算法的,那我们就需要优化一下这个时间复杂度。

2024-03-21 15:17:15 693

原创 洛谷P8972 『GROI-R1』 一切都已过去(树上前缀和+运算符重载)

悦关上窗,拉上帘布。果然还是想不起来啊。隐约记得曾和什么人一起做过这样的事。仰面躺下,手执一只木笺。「究竟如何,才能拥有“过去”啊……」她闭上双眼。「6 岁前的记忆……究竟如何才能寻回?

2024-03-17 21:03:11 923

原创 宝物筛选(二进制优化多重背包)

终于,破解了千年的难题。小 FF 找到了王室的宝物室,里面堆满了无数价值连城的宝物。这下小 FF 可发财了,嘎嘎。但是这里的宝物实在是太多了,小 FF 的采集车似乎装不下那么多宝物。看来小 FF 只能含泪舍弃其中的一部分宝物了。小 FF 对洞穴里的宝物进行了整理,他发现每样宝物都有一件或者多件。他粗略估算了下每样宝物的价值,之后开始了宝物筛选工作:小 FF 有一个最大载重为W的采集车,洞穴里总共有n种宝物,每种宝物的价值为vi​,重量为wi​,每种宝物有mi​件。

2024-02-22 15:47:09 336 1

原创 顺序栈(数组模拟)

栈是一种比较常用的数据结果,其特性是先进后出,常用于某些递归问题非递归求解,单调栈等,顺序栈实际上就是数组模拟栈。

2023-10-25 09:39:53 120

原创 对批改网禁止复制粘贴问题的破解

点击鼠标右键选择文本,并选择编辑为HTML。之后鼠标点击作文框,检查框会跳转到文本。在文本内写入内容点击空白处退出即可。右击鼠标显示弹窗选择检查。

2023-10-24 19:14:06 1866 1

原创 AtCoder Beginner Contest 127 F - Absolute Minima(对顶堆求动态中位数)

我们可以发现 | x - a | 可以抽象成位置 x 与位置 a 之间的距离,而 b 并不会受到 x 变化的影响。所以我们只需要距离已存在的位置 a 中距离其他点距离之和最小就可以了,很明显的可以看出 这个 a 是所有点中距离中位数最近的点。但是操作1会改变序列 a 的中位数,所以我们需要对顶堆来实现动态中位数的求解。操作1:输入 1 a b ,将 f(x) 替换为 f(x) + | x - a | + b;操作2:输入 2,找出最小的 x 使得 f(x) 的值最小;

2023-10-18 20:53:44 208

原创 情感理论(单调栈模拟)

叶妍霜正在研究一个关于人类情感的数学理论,她最近的研究是将每一天的情感值以一个非负整数表示为一个数组序列arr[],现在她要找出一个区间[L,R],使得(arr[L]+…+arr[R])×arr[k]的值最大,其中arr[k]为区间[L,R]中的最小值。可以把这个问题抽象为求最大矩形面积,我们把arr[i]看作一个边长为arr[i]的正方形,那么对于区间[L,R]中的最小值就可以看成是区间可以构建矩形的最大高。构建单调不递减栈来实现这个问题的求解。第一行为最大值,第二行为L和R的位置。

2023-09-19 20:44:26 154

原创 单向链表(c/c++)

链表是一种常见的数据结构,其中运用到了结构体指针,链表可以实现动态存储分配,换而言之,链表是一个功能强大的数组,可以在某个节点定义多种数据类型,可以实现任意的添加,删除,插入节点等。(废话结束。

2023-09-05 20:36:42 371 2

原创 文件操作(c/c++)

在c语言中我们一般使用fwrite()或者fprintf()这两个函数来向文件中写入内容,两者的区别就在于前者用于二进制处理,所以执行该操作后文件中的内容不能直观的观察出来,因此我们主要介绍fprintf()来对文件写入。我们在文件操作后,写入的数据内容会寄存在一个缓存区中,在我们关闭文件后,才能让文件转移到内存中,我们使用fclose()来完成这个操作。我们通过FILE*来把一个指针来指向要处理的文件,如下我们定义了一个名为fp的文件指针。文件不存在时会建立一个新文件。文件不存在时会建立一个新文件。

2023-09-02 17:12:04 477

原创 2023年杭电多校第一场

题目大意是给定n,m,d,将n分成m份时,判断是否存在任意一种可能使得其中某数大于d。匹配字符串是否存在循环状态,可以考虑把字符串都转换为字典序最大的状态,时间复杂度为。典型的树状dp,某点的选择与子节点与父节点之间互相影响,因此共三个状态。这个问题用到了鸽笼原理。,之后每次查询的时间复杂度就降低为。

2023-07-21 21:37:24 119

原创 曲阜师范大学2023年暑期大一新生排位赛 题解

/整除分块​​​​​​​ //字符串dp​​​​​​​ ​​​​​​​ //素数筛变式​​​​​​​ ​​​​​​​ //树形dp//几何​​​​​​​ //二分答案//贪心​​​​​​​ //位运算​​​​​​​ //模拟。

2023-07-19 08:52:18 158

原创 线性DP———最长公共子序列问题(LCS)

接下来两行,每行为n个数,为自然数1-n的一个排列(1-n的排列每行的数据都是1-n之间的数,但顺序可能不同,比如1-5的排列可以是:1 2 3 4 5,也可以是2 5 4 3 1)。映射为高度,然后求b序列的最长单调递增队列,将LCS转换为LIS问题,当然这种方法只适用于。给出1-n的两个排列P1和P2,求它们的最长公共子序列。(n是5~1000之间的整数)的时间复杂度已经解决不了这个问题了,有一种。一个整数,即最长公共子序列的长度。,可以处理n

2023-07-18 20:48:42 161

原创 线性DP——最长单调序列问题(LIS)

如果n的数据规模较大时,这种方法就不是很适宜了,那么我们可以使用二分搜索+记忆化搜索来优化LIS,时间复杂度为。来表示下标i位置可以找到的具有单调性的最长子序列的长度,使用两层for循环就可以解决此问题,时间复杂度为。,可以处理n

2023-07-18 17:59:12 111

原创 SUM(整除分块)

第一行一个正整数 T(1≤T≤100), 表示测试用例的数目。每个测试用例占一行。接下来的 T 行,每行两个正整数 x, y。行,每个一个正整数,表示答案。给定 x ,y , 求。

2023-07-18 09:48:01 111

原创 F (6). 小狗散步(二分图,匈牙利算法)

Candy喜欢游览沿途的景点,不过会在给定的N个点和主人相遇。小狗和李旭琳同时从(X1,Y1)(1,1)点出发,并同时在\$(X_n,Y_n)\$点汇合。小狗的速度最快是李旭琳的两倍。你现在的任务是:为Candy寻找一条路线(有可能与主人的路线部分相同),使它能够游览最多的景点,并能够准时与主人在给定地点相遇或者汇合。输入第二行的N个坐标给出了李旭琳的散步路线,即Candy和主人相遇地点;第一行是经过的点数,第二行依次为经过的点的坐标(直角坐标系)。输入第三行的M个坐标给出了所有Candy感兴趣的景点。

2023-05-30 07:43:53 115

原创 E (5). 卡片覆盖(二分图,匈牙利算法)

有许多大小为1×2的小卡片,有一个m×n棋盘,上面有k个洞。可以将卡片覆盖在棋盘上(卡片必须整个覆盖在棋盘上),正好覆盖一个1×2的空间,但是不能覆盖有洞的棋盘格子。图显示了覆盖是否合法。因为一张小卡片需要相邻两个格子组成,我们将整个棋盘将相邻的格子染上不同颜色,就像是国际象棋棋盘一样,如下图。有多组数据,每组数据第一行有三个整数m,n,k(0<m,n≤32 0≤k<m×n),随后k行,每行两个整数,表示洞的坐标。若删去格子数为偶数时,则若最大匹配数==剩余格子数/2时,覆盖合法,否则不合法。

2023-05-30 07:43:11 87

原创 D (4). 交换(二分图,匈牙利算法)

给定一个N×N的矩阵,矩阵中元素只有0和1,问能不能通过交换任意两行或任意两列的方式,使矩阵主对角线上的元素均为1,若可以,输出交换次数和交换步骤,否则输出-1,注意交换次数不能超过1 000次。对于每一组数据,第一行输出一个整数M表示交换次数,随后M行输出格式形如“R a b”或“C a b”,表示交换a和b两行或a和b两列(1≤a,b≤N)。如果无法实现,则输出“-1”。有多组测试数据,每组测试数据第一行为一个整数N(1≤N≤100),随后N行,每行包括N个数(0或者1),表示N×N的矩阵。

2023-05-29 20:49:28 54

原创 ACM实训-二分图(匈牙利算法)

【代码】ACM实训-二分图(匈牙利算法)

2023-05-29 20:37:39 153

原创 ACM实训-搜索与回溯(DFS)

【代码】ACM实训-搜索与回溯(DFS)

2023-05-29 20:21:20 135

原创 Educational Codeforces Round 148 (Rated for Div. 2) A,B,C

刚开始想要贪心,如果最小值+次小值>=最大值就减最大值,否则减最小值+次小值,之后发现子序列。要求:给出一个序列,通过q次操作 总和(减去(最小值+次小值)或 最大值)得到最大的序列和。要看到 2-1+3-2是等于3-1的,即对比值为6-1,所以最短为2,而如果序列为递减序列也是这种情况。不能满足情况,贪心时为(tot-(10+11)-22),但实际应该为(tot-22-15);遍历一下,看序列的变化性(递增\递减),若变化性变化,长度+1;要求:求出a最短的子序列b,满足a的对比值=b的对比值。

2023-05-13 10:40:42 470

原创 牛客小白月赛72 C.操作数组 D.遗迹探险

将a,b数组转换为c数组(c=a-b),之后对于c数组的总和,每次操作的增值为0,也就是只有c数组中正值等于负值时是可以转换的,而正值总和即为答案,否则应该输出-1;其实是一个比较简单的线性DP,但是宝箱的价值可能为负,Debug了半天;

2023-05-13 09:49:51 116

原创 ACM实训-分治算法(二分,递归分治,归并排序)

【代码】ACM实训-分治算法(二分,递归分治,归并排序)

2023-04-30 21:33:13 1113

原创 找礼物(分治,二分)

新年到了,你的好友和你(共K个人)的周围满是礼物,你让你的好友先拿,但是每个人只能拿当前离自己最近的礼物[当然如果有并列的多个礼物离你的距离相等(精确到小数点后四位,所有运算均为去尾),这些礼物就都属于这个人]。现在告诉你每个礼物的坐标,还有每个礼物是谁送的。要你找出你的礼物离你多远,你能拿到多少礼物,这些礼物是谁送的。第2到N+1行:每行先是赠送礼品人的姓名,然后是礼物的坐标(x,y)(坐标绝对值小于10^6)。第1行:D和U表示礼物距你多远(只要去尾后的整数)和你能拿到多少礼物。

2023-04-29 13:33:49 183

原创 循环赛问题(递归,分治)

N阶方阵A[1..n,0..n−1],当j>0时,A[i,j]表示第i名运动员在第j天所遇到的比赛对手(A[i,0]=i),每个数据占5位宽度。设有n个选手的网球循环比赛,其中n=2^k(0≤k<7)。历时三天,终于解决。放弃循环,苦想递归!(难道循环难吗,不难,只是阻挡我装伯夷的步伐。(3)整个比赛共进行n−1天,要求每天没有选手轮空。(1)每名选手要与其他n−1名选手都进行一次比赛;选手人数n(n≤100),n只能为2的整数次幂。(2)每名选手每天只赛一次;

2023-04-27 20:05:19 277

原创 ACM实训-贪心算法

【代码】ACM实训-贪心算法。

2023-04-25 20:07:40 296

原创 L2-042 老板的作息表(pair+string+优先队列,贪心)

新浪微博上有人发了某老板的作息时间表,表示其每天 4:30 就起床了。但立刻有眼尖的网友问:这时间表不完整啊,早上九点到下午一点干啥了?本题就请你编写程序,检查任意一张时间表,找出其中没写出来的时间段。

2023-04-16 19:49:54 70

原创 兔子繁殖(int128+重载运算符 处理Fibonacci)

兔子有很强的繁殖能力。1对成年的兔子每个月可以生育一对幼年的兔子,而1对幼年的兔子经过m个月之后,就会长成1对成年的兔子。当一开始有1对成年兔子时,经过d个月以后,共有多少对兔子?你的任务是计算出一对成年兔子经过d个月后,共有多少对兔子,假设整个过程中没有兔子死亡。输入有多组数据,每组占1行,为两个整数m,d(1≤m≤10,1≤d≤100),当m=d=0时表示结束。每行为每组数据对应最后得到的兔子数。

2023-04-10 20:50:33 356 1

原创 爸爸请给我零花钱 (位运算+递推)

自称清楚系 Vtuber,然而在初配信中说出了大量问题发言, 是所谓的恶俗系主播。其粉丝被称为财布,并且她又在最近的直播中与直播间的财 布们互动,财布们打赏会被 mea 叫爸爸,一时间打赏不断。小 m 也想打赏 mea,但是自己的财布似乎没有这么厚,于是 他想画一幅话送给 mea。小 m 也是一位学计算机的学生,他想 用他最熟悉的 console 画一幅字符串$堆砌的画,你能帮帮他 吗?所有的画都与前一幅的画有关,都是由前一幅的画上面一 个下面两个按照格式堆砌而成的。对于每组测试数据,输出对应的画。

2023-04-09 00:53:29 55

原创 ACM实训-递归递推(递归实现+DFS+优化搜索)

【代码】ACM实训-递归递推。

2023-04-06 23:21:17 358

原创 2023首届大学生算法大赛——正式赛 5、7(DFS)

如果你被给予一个整数N,包含1到9的数字,你可以在这个整数的任意位置插入加号。可以在多个位置插入加号,或者一个也不插入,但是在一个位置上只能插入一个加号,不得连续插入多个加号。请计算出按这种方法得到的所有整数的总和。老板说,有个问题你如果能答上来,就能得到这份工作。数字8、2、6、9是大多数中国人中最喜欢DFS的幸运数字。这几个数字的组合也被视为幸运数字,例如88。8、2、6、9中的每个数字至少在这个整数中出现一次,而且没有除了这四个之外的其他数字。打印输出按这种添加加号的方法得到的所有整数的总和。

2023-04-02 20:01:21 709 6

原创 算法学习-根据后续和中序遍历输出前序遍历

第一行给出正整数N(≤30),是树中结点的个数。随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。在一行中输出Preorder: 以及该树的先序遍历结果。

2023-03-28 16:38:28 502

实验四 图的创建与遍历-鲁东大学-信息与电气工程学院-雷鹏

从文件创建一个图,分别用邻接矩阵和邻接表存储。分别用深度和广度优先策略遍历。

2023-11-21

鲁东大学软件工程22级数据结构实验报告代码(云班课-雷鹏) 实验一 线性表的建立与应用

鲁东大学软件工程22级数据结构实验报告代码(云班课-雷鹏) 实验一 线性表的建立与应用 要求:建立一个有n个结点的单链表,进行查询、修改、删除和插入操作

2023-10-29

鲁东大学软件工程22级数据结构实验报告代码(云班课-雷鹏) 实验二 二叉树的创建与遍历

鲁东大学软件工程22级数据结构实验报告代码(云班课_雷鹏) 实验二 二叉树的创建与遍历 要求:从文件读取数据建立二叉树,进行该树的先根、后根和中根递归与非递归遍历

2023-10-29

鲁东大学软件工程22级数据结构实验报告代码(云班课-雷鹏) 实验三Huffman编码

鲁东大学软件工程22级数据结构实验报告代码(云班课_雷鹏) 实验三Huffman编码 要求:从文件读取n个字符的出现概率,建立哈夫曼树,建立哈夫曼编码

2023-10-29

基于双亲表示法的三种遍历方式.cpp

使用双亲表示法构建一棵树,通过遍历的方式完成先序遍历、中序遍历、后续遍历。

2023-10-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除