自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 小红的区间修改(一)

摘要:题目描述一个初始全为0的无限数组,进行q次区间修改操作。每次操作给定区间[l,r],若区间全为0则修改为首项1、公差1的等差数列,否则不操作。每次操作后需输出当前数组中不同元素的个数。解题思路关键在于维护全0区间集合,使用有序集合存储未被修改的区间。每次操作时检查目标区间是否完全包含于某全0区间,若是则分割该区间并更新最大修改长度。不同元素个数即为最大长度+1(包含0)。算法时间复杂度为O(q log q),空间复杂度O(q)。

2025-11-30 15:54:36 678

原创 小天的 Minecraft(牛客)

摘要:本文介绍了Minecraft游戏中制作铜镐的概率计算问题。通过分析三种制作路线(铜、银、金工作台)及其概率分布,提出使用容斥原理计算总概率的方法。给出了C++、Python和Java三种语言的实现代码,核心思路是计算16次破坏沙砾时获得足够金属粒的概率组合(包括16铜粒或12铜粒+4银/金粒的情况)。代码通过枚举所有可能情况并计算概率,最终输出精确到10位小数的结果概率值。

2025-11-29 16:13:54 783

原创 迷途之家的大贤者(牛客)

摘要:本文介绍了牛客每日一题中的字符串博弈游戏问题。给定长度为n的字符串,小红和小紫轮流删除子串(不能删空),小红希望最终字符串字典序最大,小紫希望最小。关键思路是:小红可以删除中间部分,使剩余字符串仅保留首尾字符,小紫会删除较小的那个。因此最终结果就是字符串首尾字符中的较大者。解法时间复杂度为O(1),提供了C++、Python和Java三种实现代码。

2025-11-29 11:49:59 904

原创 小sun的假期(牛客)

摘要:题目要求计算在n天中,未被m个给定区间覆盖的最大连续放假天数。解题思路是:1)合并所有重叠或相邻的区间;2)计算合并后区间之间的空闲段长度;3)取最大值。算法步骤包括区间排序(O(mlogm))、合并(O(m))和计算空闲段。提供了C++、Python和Java三种实现,核心都是通过区间合并后检查首尾及中间的空闲段来求解最大放假天数。

2025-11-29 11:09:14 1057

原创 小红打怪(牛客)

文章摘要:本文介绍了一个解决小红打怪问题的算法。题目要求计算使用单体伤害(x)和群体伤害(y)技能击杀两只怪物(a,b血量)的最少次数。采用枚举法,遍历所有可能的群体技能使用次数k,计算剩余血量所需单体技能次数,取总次数最小值。由于数据范围小(1≤a,b,x,y≤20),算法效率有保障。提供了C++、Python和Java三种实现代码,均采用向上取整技巧计算补刀次数。该解法简单直观,适合初学者理解枚举算法在实际问题中的应用。

2025-11-26 10:00:27 251

原创 能量辐射(牛客)

本文介绍了一个关于发射站能量辐射的算法问题。题目要求找出接收能量最多的发射站,其中每个发射站只能向最近的更高发射站传递能量。为解决该问题,文章提出了使用单调栈的O(n)时间复杂度算法:通过两次扫描(从左到右和从右到左)处理能量传递关系,并记录每个站接收的总能量。文中提供了C++、Python和Java三种语言的完整实现代码,展示了如何使用单调栈高效解决问题。最后强调了该算法在处理大规模数据(n≤10^5)时的优越性能。

2025-11-26 09:27:44 310

原创 简单迭代法求单根的近似值

摘要:本文提供了三种编程语言(C++、Python、Java)实现方程求解的迭代算法。通过定义picard函数实现不同迭代公式(如x=1/(x^4)+3等),solve函数控制迭代过程直至达到精度要求(1e-6/1e-7)。代码包含输入处理、迭代过程输出及结果判断,适用于求解非线性方程在指定初值附近的根。各版本均采用类似结构,支持自定义初值和最大迭代次数,并输出中间迭代值便于调试。

2025-11-24 22:48:32 416

原创 robots(攻防世界)

本文介绍了robots协议的功能与应用。robots.txt文件用于指导搜索引擎的爬取行为,但缺乏强制约束力。文章通过实例说明如何利用robots.txt定位目标文件flag_ls_h3re.php,并最终获取flag值cyberpeace{6c46147f0f4799ce94ae216ca39bf591}。作者以轻松幽默的方式提醒读者关注更多技术内容。

2025-11-23 21:27:01 225

原创 小苯的计算式(牛客)

题目摘要:给定一个加法式子的和c及字符串总长度n,求满足"A+B=C"形式且字符串总长度为n的式子数量。算法遍历所有可能的a值(0到c),计算b=c-a,检查a和b的字符串长度之和是否等于n-len(c)-2(考虑"+"和"="两个字符)。提供C++、Python和Java三种实现方案,通过将数字转为字符串并比较长度来统计符合条件的式子数量。时间复杂度为O(c)。

2025-11-23 21:00:26 387

原创 view_source(攻防世界)

摘要:该Web入门题目提供了一个空白网页,仅显示"FLAGisnothere"且禁用右键。通过F12开发者工具查看网页源码,可在元素标签下找到隐藏的flag:cyberpeace{95c33736c304611cb0db9479eb3c25b1}。解题关键在于使用开发者工具查看网页源代码。

2025-11-22 21:25:12 358

原创 gif(攻防世界)

摘要:本文分享了一个CTF解题过程,通过分析黑白图片的二进制特征来获取flag。解题思路是:将白色图片(0xFA)视为0,黑色图片(0xAA)视为1,编写Python脚本批量读取104张图片的特定字节位置(0x270)并转换为二进制串。最终将二进制串"01100110..."转换为ASCII字符串,得到flag{FuN_giF}。文章还介绍了如何用010editor分析图片差异,并提供了完整的Python实现代码。

2025-11-21 14:58:45 261

原创 旅游(牛客)

本文讨论了如何解决一个带预算限制的最小生成树问题。题目描述有n个城市和m条双向道路,每条道路有一个损坏值。国家会免费修复损坏值≤p的道路,需要找到最小的p值使得牛牛在预算c内能修复剩余道路使所有城市连通。解题关键在于:1)使用Kruskal算法构建最小生成树;2)按损坏值从小到大计算修复成本;3)通过反向遍历找到临界p值,使得国家免费修复部分道路后总成本≤c。文章提供了C++、Python和Java三种实现方案,并分析了算法复杂度为O(mlogm)。

2025-11-19 22:59:33 1996

原创 坚持60s (攻防世界)

摘要:题目提供了一个可执行的Jar游戏文件,要求控制小蛋糕躲避绿帽子60秒。由于游戏难度过高,转而使用jd-gui反编译工具分析代码,在PlaneGameFrame类中发现加密的flag{RGFqaURhbGlfSmlud2FuQ2hpamk=}。通过Base64解码后获得最终答案flag{DajiDali_JinwanChiji}。解题过程展示了从游戏机制分析到逆向工程的技术路径。

2025-11-19 21:55:30 431

原创 give_you_flag(攻防世界)

本文介绍了一种从GIF动图中提取隐藏二维码的方法。通过暂停GIF并将帧数调到50,可以发现一个不完整的二维码。作者提出无需使用PS等复杂工具,只需复制二维码定位点图片调整大小后补全三个定位点,即可用微信或在线工具扫描获取flag。最终得到答案为flag{e7d478cf6b915f50ab1277f78502a2c5}。该方法简化了二维码补全过程,为类似题目提供了实用解题思路。

2025-11-18 23:09:43 215

原创 收集纸片(牛客)

本文介绍了一个旅行商问题(TSP)变种的解法,要求从起点出发访问所有纸片后返回,求最短路径。针对最多10个纸片的规模,采用全排列枚举所有可能路线(约362万种),通过预计算曼哈顿距离矩阵优化计算。提供了C++、Python和Java三种实现,核心思路都是:1)预计算点对距离;2)生成全排列;3)计算每种排列的总距离;4)维护最小值。算法利用剪枝优化,当当前路径超过已知最优解时提前终止计算。各语言版本均详细注释,展示了如何通过排列组合解决这类路径优化问题。

2025-11-18 15:14:43 352

原创 pdf(攻防世界)

摘要:通过分析附件PDF中的图片发现flag,使用快捷键Ctrl+F搜索关键词"flag"得到答案flag{security_through_obscurity}。另一种方法是将PDF转为Word后查找。两种方法结果一致,最终答案为flag{security_through_obscurity}。

2025-11-16 17:15:20 191

原创 this_is_flag(攻防世界)

这篇文章介绍了一道CTF入门题目"thisisflag",指出答案flag{th1s_!s_a_d4m0_4la9}就藏在题目中。作者幽默地表示这道题简单到像输出"HelloWorld"的算法题,并提醒读者CTF中要留意题目本身可能隐藏的flag。最后调侃自己为整理内容掉了几根头发,邀请读者点赞关注获取更多有趣内容。全文风格轻松诙谐,旨在降低CTF新手的学习门槛。

2025-11-16 15:18:51 147

原创 【模板】组合数(牛客)

本文介绍了组合数模质数的高效计算方法。通过预处理阶乘和阶乘逆元数组,利用费马小定理将除法转化为乘法逆元,实现O(1)时间复杂度的组合数查询。预处理阶段使用快速幂算法计算最大阶乘逆元,再递推得到所有阶乘逆元。该方法适用于多组查询场景,总时间复杂度为O(MAXN log MOD + T),空间复杂度O(MAXN)。文中提供了C++、Python和Java三种语言的实现代码,其中MAXN设为500000,模数为1e9+7。对于每组查询a,b,当a≤b时输出C(b,a)模1e9+7的结果,否则输出0。

2025-11-15 11:36:07 854

原创 easychallenge(攻防世界)

摘要:题目提供了一个pyc二进制文件,经反编译后得到加密代码。该代码通过三层加密(异或运算、加减运算、base32编码)处理输入的flag。通过逆向写出解密函数,对给定的密文"UC7KOWVXWVNKNIC2XCXKHKK2W5NLBKNOUOSK3LNNVWW3E==="进行解码,最终得到flag为"cyberpeace{interestinghhhhh}"。解题过程展示了逆向分析pyc文件和编写逆向解密函数的完整思路。

2025-11-13 17:36:29 257

原创 转轮机加密(攻防世界)

这是一道关于转轮机加密的解密题目。题目给出了13个不同字母序列的转轮和密钥顺序,要求根据密文"NFQKSEVOQOFNP"找出明文flag。解密过程需要按照密钥顺序重新排列转轮序列,然后逐列读取字符组合明文。经过Python程序辅助解密后,最终得到的flag是"fireinthehole"。解题过程体现了转轮机加密的基本原理:通过特定顺序排列转轮并提取列字符来还原明文。虽然手动解密较为复杂,但通过编程方法可以有效解决这类古典密码问题。

2025-11-11 21:01:09 1734

原创 GCPC总决赛(牛客)

【每日一题解析】题目要求计算两校队伍比赛的所有可能结果。给定两支队伍各n个成员的"大跌"数量,通过全排列匹配所有对战组合,统计DarknessCatcher校的胜、负、平局次数。解法分析:1. 使用全排列生成所有可能的对战组合2. 对每个组合计算双方总得分3. 根据得分比较统计结果数。提供C++/Python/Java三种实现,均采用标准库的排列函数(C++的next_permutation/Python的itertools.permutations/Java的回溯法),时间复杂度为O(

2025-11-11 19:59:15 246

原创 小红书推荐系统(牛客)

摘要:本文介绍了小红书推荐系统的关键词提取算法,要求从搜索记录中找出出现次数≥3次的单词,并按频次降序和字典序升序输出。解题步骤包括:1)分割字符串并统计词频;2)筛选高频词;3)自定义排序(先频次后字典序)。文章提供了C++、Python和Java三种实现代码,均通过调试验证。该算法适用于处理用户搜索记录分析等场景,核心在于哈希表统计和多重条件排序的实现。

2025-11-10 23:10:07 1857

原创 Training-Stegano-1

这篇文章介绍了三种图片隐写术的分析方法,旨在从.bmp格式的图片中提取隐藏信息。方法一使用Notepad++查看文件头信息,发现了"passwd:steganoI"的提示;方法二通过WinHex的十六进制视图同样获得了相同结果;方法三使用010Editor这款专业二进制编辑器进行分析。三种方法都指向同一个隐藏的密码"steganoI",这很可能就是题目要求的flag。文章还讨论了使用记事本查看时可能出现的乱码问题,并建议读者关注作者主页获取更多类似的技术内容。

2025-11-09 19:32:52 987

原创 擅长解密的小红同学(牛客)

本文介绍了牛客网每日一题中"擅长解密的小红同学"的解题思路。题目要求计算小红破解密码的期望尝试次数,密码由0-9数字组成且数字出现次数固定。解题关键在于使用多重集全排列公式计算可能组合数,通过预处理阶乘数组和快速幂求逆元来实现。文章提供了C++、Python和Java三种语言的实现方案,均使用费马小定理处理模数运算。核心算法包括阶乘预处理、快速幂计算和逆元求解,时间复杂度为O(n)。文章以轻松幽默的语言风格呈现,适合算法爱好者参考学习。

2025-11-09 16:14:24 509

原创 easy_RSA(攻防世界)

摘要:本文介绍了RSA加密算法中私钥d的计算方法。给定参数p=3487583947589437..., q=8767867843568..., e=65537,通过公式d≡e⁻¹(modφ(n))计算私钥,其中φ(n)=(p-1)*(q-1)。使用Python的gmpy2库实现计算过程,最终得到私钥d=125631357777427553。文章还解释了模逆元的计算原理,并验证了计算结果。最终答案为cyberpeace{125631357777427553}。

2025-11-08 23:03:33 678

原创 告诉你个秘密(攻防世界)

题目解析过程:首先将十六进制字符串解码得到Base64编码,再通过Base64解码获得字符组。最后通过观察键盘布局,发现每组字符围绕出一个字母,从而拼出最终flag"TONGYUAN"。解题涉及十六进制转换、Base64解码和键盘位置分析三重步骤,展现了从数据编码到空间思维的解题路径。

2025-11-08 15:49:28 757

原创 幂数加密(攻防世界)

摘要:本文解析了一道幂数加密题,密文"8842101220480224404014224202480122"通过分解为8个小块并求和,得到数字序列2351212415145,对应字母"WELLDONE"。解题过程展示了幂数加密原理:将字母序号表示为2的幂次组合(如D=2^2=4),解密时逆向求和还原。最终答案为cyberpeace{WELLDONE}。文章提供了两种解法思路,并附上Python实现代码。作者幽默提醒解题掉发,邀请读者关注更多类似挑战。

2025-11-07 22:35:59 1048

原创 绝命沙虫(牛客)

【摘要】题目"绝命沙虫"要求通过购买和出售点数获得利润与经验,需注意浮点数精度问题。解题思路是将所有钱用于购买点数,计算获得的红点和绿点数量,然后分别出售获取经验值和回本资金。关键公式为:绿点=min(10000, 100×N×(M-1)),红点=N×100。循环操作直到资金耗尽,累计总经验值。提供C++、Python、Java三种实现方案,均通过强制类型转换解决浮点精度问题。代码已测试通过,欢迎点赞关注。

2025-11-07 15:57:22 368

原创 【模板】二维前缀和 (牛客)

【二维前缀和模板题解】该题要求对一个n×m矩阵进行多次子矩阵求和查询。解法核心是构建二维前缀和数组:先按行累加列方向前缀和,再按列累加行方向前缀和。查询时通过四个矩形区域的加减运算(大矩形-左矩形-上矩形+左上矩形)快速得到结果。预处理时间复杂度O(nm),查询复杂度O(1)。提供C++/Python/Java三种实现,均采用类似思路。该方法通过空间换时间,显著提高了查询效率,适用于大规模矩阵的快速求和操作。

2025-11-06 22:25:35 371

原创 不仅仅是Morse(攻防世界)

这篇文章详细解析了一个密码破解过程:首先通过摩斯密码解密得到提示,再用培根密码进行二次解码,最终获得"attackanddefenceworldisinteresting"的答案。尽管题目暗示答案与食物相关,但作者通过系统性的密码分析得出了最终解。文章展现了密码学的趣味性和解题思路,并幽默地提到解题过程中"掉了几根头发",同时邀请读者关注更多类似内容。

2025-11-05 21:59:17 1596

原创 回文日期(牛客春招)

本文介绍了如何计算给定日期区间内的回文日期数量。回文日期指8位YYYYMMDD格式的数字本身是回文数。解题思路是枚举所有可能的月份和日期,反推出对应年份构成回文数,再检查该日期是否合法且在给定区间内。文章提供了C++、Python和Java三种实现代码,通过预定义每月天数(2月按29天处理)简化闰年判断,虽然存在对平年2月的处理漏洞,但可以满足大部分测试用例。该方法巧妙地将复杂日期验证转化为简单的数字生成和范围判断。

2025-11-05 16:48:17 962

原创 飞幕效果(Python)

本文分享了一个使用HTML、CSS和JS实现的页面飞幕效果代码。该效果通过随机生成的彩色弹幕消息从不同方向飞入屏幕中心,包含300条温馨祝福语。代码使用VSCode开发,包含完整的HTML结构、CSS动画样式和JS逻辑,可实现自动播放和重放功能。作者以轻松幽默的口吻邀请读者点赞关注,并表示会分享更多"计算机的浪漫"创意代码。整体技术实现涉及CSS动画、随机颜色生成、动态DOM操作等前端技术,适合用于制作创意表白页面或特殊活动效果。

2025-11-04 23:31:25 168

原创 组队(牛客)

摘要:本文分享了团队组队问题的滑动窗口解法。题目要求在n个人中选择最多成员组成团队,要求团队中任意两人能力值差不超过k。解题思路:1. 对能力值数组排序;2. 使用队列维护滑动窗口,保证窗口内最大值与最小值差≤k;3. 窗口右扩时移除不满足条件的左侧元素;4. 记录最大窗口大小作为答案。提供了C++、Python和Java三种实现代码,均通过排序后维护滑动窗口来高效解决问题,时间复杂度为O(nlogn)。该解法适用于大规模数据(n≤2e5),是典型的滑动窗口应用场景。

2025-11-04 23:14:27 415

原创 爱心代码(Python)

本文介绍了如何使用Python绘制精美图形和动画,重点演示了爱心图案和库洛米形象的实现方法。文章详细讲解了所需开发环境(Python编译器和运行环境)和关键技术(turtle图形库),并提供了完整的爱心生成代码示例。该代码通过数学函数生成心形坐标,结合随机颜色和祝福语实现动态弹窗效果。同时展示了一个复杂的库洛米绘图案例,演示了turtle库的绘图技巧。文末还暗示提供更多类似效果的实现代码,鼓励读者点赞关注获取更多编程创意资源。

2025-11-03 17:45:23 476

原创 挡住洪水 (牛客)

本文介绍了使用BFS算法解决洪水淹没问题的三种语言实现(C++/Python/Java)。题目要求统计矩阵中不被洪水淹没的"0"的数量,而非区域数量。关键在于从矩阵外的(0,0)位置开始BFS,标记所有可达区域,最后统计未被标记的"0"数量。文章详细讲解了算法思路、边界处理(将矩阵外扩一层)、方向数组使用等要点,并提供了完整代码实现,包含注释说明各关键步骤。核心思想是利用BFS模拟洪水扩散过程,找出所有能被洪水淹没的区域,从而计算安全区域的数量。

2025-11-03 17:18:05 534

原创 CTF常用工具推荐

摘要:本文简要介绍了新手打CTF(Capture The Flag)的注意事项,推荐了几个适合练习的CTF平台如Bugku、攻防世界等,同时列举了常用的在线工具,包括Base64编解码、凯撒密码解密、摩斯密码翻译等基础工具,以及Wireshark、Foremost等专业分析工具。这些资源可以帮助初学者逐步掌握CTF解题技巧。(98字)

2025-11-02 21:32:17 161

原创 耕种时间到!(牛客)

本文将一道关于小麦种子等级转换的算法题进行了详细解析。题目要求计算在种植和收割过程中,特定等级种子的最大数量。文章首先以幽默的打油诗引入,随后给出问题描述:种子等级x收割后会产生2枚⌈x/3⌉等级的种子。通过模拟种植和收割过程,持续统计目标等级种子的数量,直到所有种子等级都小于目标值。提供C++、Python、Java三种语言的解决方案,核心思路是:1)初始化统计;2)循环模拟等级转换;3)每次转换后数量翻倍;4)记录最大值。时间复杂度为O(n*log1e9),适用于大规模数据。文末附完整代码和示例说明。

2025-11-02 21:14:10 614

原创 Railfence (攻防世界)

本文分享了作者作为Web安全新手在解决密码学题目"Railfence"时的经验。作者通过分析题目发现这是栅栏密码问题,使用在线工具BugkuCTF进行解密测试。经过多次尝试不同栅栏数,最终发现当栅栏数为5时能得到有意义的结果,成功获得flag:cyberpeace{railfence_cipher_gogogo}。文章以新手友好角度详细记录了整个解题过程,并鼓励读者留言互动,旨在帮助同为新手的同学更好地理解密码学题目解法。

2025-11-02 20:39:34 133

原创 Broadcast (攻防世界)

新手密码学解题分享:通过分析Broadcast题目附件,发现关键.py文件包含flag{fa0f8335-ae80-448e-a329-6fb69048aae4}。作者建议新手不要焦虑,通过积累经验逐步提升解题能力。文末幽默呼吁点赞关注,并表示会持续分享有价值的内容。

2025-11-02 19:23:27 217

原创 Caesar(攻防世界)

本文是一篇针对网络安全新手的解题教程,以攻防世界Crypto新手区的Caesar题目为例。作者通过凯撒密码解密方法,详细演示了如何从密文"oknqdbqmoq{kag_tmhq_xqmdzqp_omqemd_qzodkbfuaz}"中破解出flag。文章特别强调了对题目关键词"Caesar"的理解,介绍了凯撒密码的偏移量解密原理,并分享了在线解密工具的使用技巧。最终通过尝试不同偏移量(特别是偏移12时)成功获取了flag。作者以新手视角耐心讲解,鼓励读者积累经验,不要

2025-11-01 18:12:00 478

空空如也

空空如也

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

TA关注的人

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