自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第八届“英拿科技杯”上海高校金马程序设计联赛暨东华大学邀请赛

I. 孤星2.0 sec512 MB𝑛(1≤103) 个干员,每个干员工资为 𝑤𝑖(1≤𝑤𝑖≤105),贡献值为 𝑣𝑖(1≤𝑣𝑖≤102)。给出 𝑚(1≤𝑚≤105)次询问,每次询问:当你能承受的总工资为 𝑊(0≤𝑊≤109) 时,能收获最大的贡献值是多少。

2024-05-25 12:24:50 344

原创 出栈的顺序的个数

宁宁同学在复习栈的基本概念时,想到了一个书上没有讲过的问题,而他自己无法给出答案,所以需要你的帮忙。宁宁考虑的是这样一个问题:一个操作数序列,1,2,…,n(图示为 1 到 3 的情况),栈 A 的深度大于 𝑛n。你的程序将对给定的 𝑛n,计算并输出由操作数序列 1,2,…,n 经过操作可能得到的输出序列的总数。我自己用的dfs打表写的,这是看的大佬题解,但是感觉大佬题解有点没看懂,自己理解了一下,应该是没有问题的。栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。

2024-05-10 23:37:18 392

原创 2022 Jiangsu Collegiate Programming Contest

思路:这题其实一早就看出来,其实就是首先删AC,然后剩最后一个了,最好删B,因为删AC有可能两边正好是AC就能继续删,但是删了B的话就没法继续了,但是如果是删了AC的话,剩下的A就是偶数位了,所以要删一个前面的B才能继续删A,这样的话就是我们最后一个最好删B的原因。思路:这题是玥佬读得题,然后给了公式,然后我完善了一下,其实就是一个求公式的题目,网上的题解说什么二进制啥的,我没有看,大概就是求一个公式的解,反正解很多,用什么方法都一样。然后就是不用担心没有解,题目给你了,相信姐,一定会有解。

2024-05-04 18:36:01 966

原创 2024牛客五一集训派对day2

这套题目我总结一下就是 python嘎嘎乱杀,真的嘎嘎乱杀,我真的长见识了,我真的,真的佩服来源:牛客网。

2024-05-03 09:42:32 722 2

原创 2024牛客五一集训派对day1

来源:牛客网。

2024-05-02 01:02:59 1075 6

原创 L3-1 社交集群

当你在社交网络平台注册时,一般总是被要求填写你的个人兴趣爱好,以便找到具有相同兴趣爱好的潜在的朋友。一个“社交集群”是指部分兴趣爱好相同的人的集合。你需要找出所有的社交集群。

2024-04-21 12:18:33 194

原创 7-32 出栈序列的合法性

给定一个最大容量为 m 的堆栈,将 n 个数字按 1, 2, 3, ..., n 的顺序入栈,允许按任何顺序出栈,则哪些数字序列是不可能得到的?例如给定 m=5、n=7,则我们有可能得到{ 1, 2, 3, 4, 5, 6, 7 },但不可能得到{ 3, 2, 1, 7, 5, 6, 4 }。

2024-04-21 12:16:25 177

原创 7-25 名人堂与代金券

对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,总评成绩必须达到 60 分及以上,并且有另加福利:总评分在 [G, 100] 区间内者,可以得到 50 元 PAT 代金券;在 [60, G) 区间内者,可以得到 20 元PAT代金券。全国考点通用,一年有效。同时任课老师还会把总评成绩前 K 名的学生列入课程“名人堂”。本题就请你编写程序,帮助老师列出名人堂的学生,并统计一共发出了面值多少元的 PAT 代金券。

2024-04-21 12:13:18 205

原创 7-23 分而治之

分而治之,各个击破是兵家常用的策略之一。在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破。为此参谋部提供了若干打击方案。本题就请你编写程序,判断每个方案的可行性。

2024-04-21 12:06:31 123

原创 7-21 链表去重

给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉。即对每个键值 K,只有第一个绝对值等于 K 的结点被保留。同时,所有被删除的结点须被保存在另一个链表上。例如给定 L 为 21→-15→-15→-7→15,你需要输出去重后的链表 21→-15→-7,还有被删除的链表 -15→15。

2024-04-21 12:03:34 124

原创 L2-4 部落

在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。

2024-04-21 12:00:11 145

原创 L2-3 图着色问题

图着色问题是一个著名的NP完全问题。给定无向图G=(V,E),问可否用K种颜色为V中的每一个顶点分配一种颜色,使得不会有两个相邻顶点具有同一种颜色?但本题并不是要你解决这个着色问题,而是对给定的一种颜色分配,请你判断这是否是图着色问题的一个解。

2024-04-21 11:56:39 240

原创 L2-2 重排链表

给定一个单链表 L1​→L2​→⋯→Ln−1​→Ln​,请编写程序将链表重新排列为 Ln​→L1​→Ln−1​→L2​→⋯。例如:给定L为1→2→3→4→5→6,则输出应该为6→1→5→2→4→3。

2024-04-21 11:55:09 188

原创 7-16 功夫传人

一门武功能否传承久远并被发扬光大,是要看缘分的。一般来说,师傅传授给徒弟的武功总要打个折扣,于是越往后传,弟子们的功夫就越弱…… 直到某一支的某一代突然出现一个天分特别高的弟子(或者是吃到了灵丹、挖到了特别的秘笈),会将功夫的威力一下子放大N倍 —— 我们称这种弟子为“得道者”。这里我们来考察某一位祖师爷门下的徒子徒孙家谱:假设家谱中的每个人只有1位师傅(除了祖师爷没有师傅);每位师傅可以带很多徒弟;并且假设辈分严格有序,即祖师爷这门武功的每个第i代传人只能在第i-1代传人中拜1个师傅。

2024-04-21 11:52:42 279

原创 7-15 悄悄关注

新浪微博上有个“悄悄关注”,一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户。

2024-04-21 11:39:15 288

原创 L2-2 小字辈

本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。

2024-04-18 23:28:24 144

原创 L1-1 天梯赛座位分配

天梯赛每年有大量参赛队员,要保证同一所学校的所有队员都不能相邻,分配座位就成为一件比较麻烦的事情。为此我们制定如下策略:假设某赛场有 N 所学校参赛,第 i 所学校有 M[i] 支队伍,每队 10 位参赛选手。令每校选手排成一列纵队,第 i+1 队的选手排在第 i 队选手之后。从第 1 所学校开始,各校的第 1 位队员顺次入座,然后是各校的第 2 位队员…… 以此类推。如果最后只剩下 1 所学校的队伍还没有分配座位,则需要安排他们的队员隔位就坐。

2024-04-18 19:26:25 727

原创 小红不想做模拟题

看题解有大佬有线段树,这题不是直接模拟就完了吗,L1 5分水题。

2024-04-08 21:50:54 128

原创 7-15 估值一亿的AI核心代码

函数封装,含一个字符串中的所有的某个字串全部替换成另一个的函数,还有判断是否独立的函数以上图片来自新浪微博。!

2024-04-07 09:15:16 435

原创 L2-2 口罩发放 (25 分)

需要注意的是,不要在同一天内看到满足要求的就直接发放口罩,有可能发完之后发现后面的人的时间更早。应该就是题目要求的身份证号唯一。然后是时间相同按照申请记录排序。然后是相同的人同一天多次申请。

2024-04-06 12:30:04 221

原创 L2-3 病毒溯源

很简单的题目,其实就是一个查集往上找根,因为我们把所有点的初始父点都设为-1,在加入所有节点的父节点之后,从叶子结点一直向上找,由于源头只有一个,所以必定会自然的找到一个节点,其父节点是-1,这也是唯一一个没有直接源病毒的节点,因为其就是源病毒。笔者其实最一开始就写对了,但是一直用的字符串排序,一直错搞心态,因为数字很大的时候字符就表示不了了,所有很多时候不能用数字转字符进行比较,虽然字符串比较大小比较方便,但也要注意范围啊!

2024-04-05 02:20:08 218

原创 7-43 哲哲打游戏

哲哲是一位硬核游戏玩家。最近一款名叫《达诺达诺》的新游戏刚刚上市,哲哲自然要快速攻略游戏,守护硬核游戏玩家的一切!为简化模型,我们不妨假设游戏有 N 个剧情点,通过游戏里不同的操作或选择可以从某个剧情点去往另外一个剧情点。此外,游戏还设置了一些,在某个剧情点可以将玩家的游戏进度保存在一个档位上,读取存档后可以回到剧情点,重新进行操作或者选择,到达不同的剧情点。为了追踪硬核游戏玩家哲哲的攻略进度,你打算写一个程序来完成这个工作。

2024-04-05 01:06:51 257

原创 7-42 清点代码库

上图转自新浪微博:“阿里代码库有几亿行代码,但其中有很多功能重复的代码,比如单单快排就被重写了几百遍。请设计一个程序,能够将代码库中所有功能重复的代码找出。各位大佬有啥想法,我当时就懵了,然后就挂了。。。这里我们把问题简化一下:首先假设两个功能模块如果接受同样的输入,总是给出同样的输出,则它们就是功能重复的;其次我们把每个模块的输出都简化为一个整数(在范围内)。于是我们可以设计一系列输入,检查所有功能模块的对应输出,从而查出功能重复的代码。你的任务就是设计并实现这个简化问题的解决方案。

2024-04-05 01:04:43 424

原创 最长对称子串

对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定,最长对称子串为,于是你应该输出11。

2024-04-05 00:51:49 144

原创 L2-3浪漫侧影

侧影”就是从左侧或者右侧去观察物体所看到的内容。例如上图中男生的侧影是从他右侧看过去的样子,叫“右视图”;女生的侧影是从她左侧看过去的样子,叫“左视图”。520 这个日子还在打比赛的你,也就抱着一棵二叉树左看看右看看了……我们将二叉树的“侧影”定义为从一侧能看到的所有结点从上到下形成的序列。例如下图这棵二叉树,其右视图就是 { 1, 2, 3, 4, 5 },左视图就是 { 1, 6, 7, 8, 5 }。

2024-03-28 00:34:18 213

原创 动态规划的几个经典问题

输出分3部分,第1部分输出二维数组C的值,每个元素占3列,然后输出一个空行,第2部分输出二维数组B的值,也是每个元素占3列,再输出一个空行,第3部分输出最长公共子序列,每个字母后加1个空格。输出分3部分,第1部分输出二维数组m的值,每个元素占8列,然后输出一个空行,第2部分输出二维数组s的值,也是每个元素占8列,再输出一个空行,第3部分输出加括号的方式。输入有2行,第1行输入一个整数n,第2行输入n个矩阵的维度值p0,p1,...,pn。输出加括号的格式需要用一个递归函数。输入分2行,分别输入2个序列。

2024-03-25 09:20:02 816

原创 2023 CCPC Henan Provincial Collegiate Programming Contest

这道题我们一开始的思路是dfs,非常简单的dfs,但是官方明显想到了这一层,就是卡你时间,然后我们就用了dp,但是超内存,然后优化了一下,运用了01背包的解法,也就是把钥匙(x)看成背包容量,把分数看成价值,滚动数组解决问题,这里参考了大佬的题解,这里值得注意的是,初始化的时候当起点是1的时候,不放钥匙也有分数,这时候i即使是0最大价值也是1更不用说多放几把钥匙了,而是?的时候,只有放了钥匙变成1才能有分数,所以i要从1开始,Problem E. 矩阵游戏。

2024-03-23 18:59:10 171

原创 L2-1 插松枝

【代码】L2-1 插松枝。

2024-03-23 02:04:46 135

原创 最大子段和问题的两种解法

【代码】最大子段和问题的两种解法。

2024-03-21 19:57:28 87 1

原创 求解完全背包问题,输出优化函数,标记数组,并标记放入的物品的编号和数量

这里是参考了大佬的博客,也就是先假设当前背包是满的,因为这是一个从满到空的过程,也就是在我们计算其中的一种物品要不要拿的时候其他的物品是已经固定的了,所以我们要从后往前遍历,换种说法,其实如果从前往后的话,我们假设已经取到了某个中间的物品i的状态,因为当前我们不可能再去取之前i- k的物品,所以不能从前i个物品里面去选,所以我们要从后往前遍历。记f[i+1][j]为从0到i这i+1的物品中挑选总重量不超过j的物品时的最大值;

2024-03-14 18:35:39 419 1

原创 L2-4 寻宝图

大家加油,昨天被小鱼哥鼓励到了,一定要努力努力啊!大家也一定要在自己的方向上不断加油啊!简单做下dfs的题目,太简单了,大家自己体会吧,已经懒得写思路了。

2024-03-13 23:13:05 375

原创 L2-3 锦标赛

最近做了一点天梯赛的题目,发现老蒋同志选的一道题很有意思有 2k 名选手将要参加一场锦标赛。锦标赛共有 k 轮,其中第 i 轮的比赛共有 2k−i 场,每场比赛恰有两名选手参加并从中产生一名胜者。第 k 轮唯一一场比赛的胜者就是整个锦标赛的最终胜者。已知每一名选手都有一个能力值,其中第 i 名选手的能力值为 ai​。在一场比赛中,若两名选手的能力值不同,则能力值较大的选手一定会打败能力值较小的选手;若两名选手的能力值相同,则两名选手都有可能成为胜者。令 li,j​ 表示第 i 轮第 j 场比赛。

2024-03-13 18:06:31 1056

原创 2023 中国大学生程序设计竞赛(CCPC)新疆赛区

第二周打卡,这次选了新疆的ccpc题目,大家早上起的太早了,都没咋睡醒,感觉这次题目都是题面十分简单,然后做起来相当复杂。来源:牛客网现有一个长度为 nnn 的数组 aaa,从左到右依次编号为 111 到 nnn,其中第 i(1≤i≤n)i (1 \leq i \leq n)i(1≤i≤n) 个元素的值为 aia_iai​。Sang 最初位于第 111 个元素的位置,他想要到达第 nnn 个元素的位置,即从最左端到最右端。为此,他需要在数组上进行移动。在一次操作中,他可以向移动。

2024-03-09 20:16:57 899 1

原创 2020 CCPC Henan Provincial Collegiate Programming Contest

这道题就是个大模拟,注意相关细节 比如当前人类或者虫子是否死亡,人类移动距离不要和攻击范围弄混,还有就是相同距离的虫子要先攻击早出现的等等,这里比较好理解的就是做两个结构体分别去存储这些虫子或者人类的各种属性,非常方便,但是在后期输出每一条的状态的时候会出现问题,不知道按什么顺序输出,这时候就可以专门弄一个数组用来存储当前事件是虫子还是人,从而按照其对应的顺序进行输出。第二个样例中,可以考虑只在第 6 集投放广告,能获得的总收益为 5 × 97 = 485,这是能够取到最大的收益和的一个方案。

2024-03-03 23:15:52 819

原创 用递归和栈找迷宫最短路

其实没什么东西,就是搜索,用的话记得给博主点个赞哦,我会持续更新,关注不迷路#include "iostream"#include "vector" #include "queue"#include "string.h"using namespace std;typedef long long ll;const ll N = 1e4;int dir[8][2] = {{0, -1}, {0, 1}, {-1, 0}, {1, 0}, {-1, -1}, {-1, 1}, {1, -

2023-12-15 15:35:15 426

原创 2023年中国大学生程序设计竞赛女生专场(ccpc女生赛)

实际上在赛场上做这题的时候我们甚至都还不知道什么叫拓扑排序,之后上数据结构课才知道,当成一个思维题来做的,当时离结束就半小时左右了吧做的这道题,我用了两分钟就写完了,其实主题思路就是从最小的那个递增子序列长度从一开始排列,碰到一样长度的就从后往前排列(这样可以保证递增序列长度不变),然后当递增的序列断档也就是不连续的时候该序列不合法,很容易明白的道理。“ 就是,就是暴力嘛,每一种属性都有0到K种选择,求出得分最高的一套选择就一个个试,试n的K次方次就可以了。就是一个大模拟,具体的见我之前的博客,

2023-12-02 16:20:14 1144 7

原创 Search For Mafuyu

感觉实力还是不太行,今天做的2021年济南站ICPC的题,一个水题竟然做了好长时间,把这个题想成最短路了,其实期望的话,只需要把所有的房间全部走一遍最后除以房价数减一就可以了,不应该在最短路上纠结这么长时间的,还是要充分理解题目啊。

2023-11-26 21:26:03 448 5

原创 C Optimal Strategy(数论,费马小定理)

这道题目就是一个贪心+动态规划的题目,和队友做了好久没做出来,后来看的大佬的题解,就是如果当前价值最大的是奇数的话,那就一定先拿最大的,如果是偶数的话,可以随便拿,但是一旦你前面的人拿了最大的,你就一定要也跟着拿最大的,否则就会输,所以就是两个相同价值的一定要成对出现,这样的话,我们从最小的开始(因为最小的话,拿的顺序其实是个全排列,这个既然都是最小了就不在意谁先拿谁后拿,反正都要拿走), 然后在这个的基础上,每增加一个就添加进一个n对(可以有单)的排列组合,以此类推,直到排列完最后一种数字。

2023-11-26 21:04:04 425 5

原创 史上最清晰的求一个序列的所有出栈顺序

【代码】史上最清晰的求一个序列的所有出栈顺序。

2023-11-22 00:32:34 70 5

原创 2021-2022 ICPC Asia Pacific - Seoul Regional L题Trio

接下来就是一个find函数,用来查询和某一个数的某一位相等还是不想等的元素的个数,如果相等,就找全部都相等的相加,如果不相等,就加上所有含当前位(与与要寻找的数的当前位不相等的数的个数)的数,然后减去和a当前位相等的,和b当前位相等的数的个数,也就是符合题目要求的三个数的某一位都不相等的数的个数。这样的话 ,我们就能通过标记数组通过某个数位的相等与否直接得到第三个数的所有取值可能,从而把三层循环降为两层。cnt标记数组,标记和要寻找的第三个数的每一位的相等或者不相等的数的个数的数组。

2023-11-21 18:01:35 193 2

空空如也

空空如也

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

TA关注的人

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