自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 P3842 [TJOI2007] 线段

这篇文章描述了作者使用动态规划解决一个线段行走问题的过程,包括解题思路、问题代码及最终解决方法。问题要求计算从点 (1,1) 出发,走遍所有线段并最终到达 (n,n) 的最短路径。作者首先分析了相邻两行端点之间的关系,并使用动态规划记录上一行以该端点为结尾的情况下最短路径和。然而,初始代码存在两个问题:一是未考虑每行左右端点可能互相影响的情况,二是忽略了最终到达 (n,n) 点的限制。最终,作者通过引入临时变量存储中间计算结果,并修改最后一行计算方式,成功解决了这两个问题,并给出了AC代码。

2024-07-11 15:45:27 725

原创 【记录与感想】CS61b-21sp project0(2048游戏)

这篇文章记录了作者完成CS61B课程第一个项目——2048游戏的经历和感想。改游戏在4×4网格上移动和合并方块以获得高分。项目要求编写游戏核心逻辑,包括实现三个测试函数和一个核心函数。作者首先实现了判断棋盘是否有空格、最大值图块以及有效移动的方法,提供了详细的代码示例。在核心逻辑部分,作者描述了棋盘移动与合并的实现难点,包括坐标设定、不同语言环境下箭头键识别问题及核心逻辑实现。总结部分,作者分享了学习CS61B的收获,包括编程技能、自学能力和解决问题的能力,并反思了国内外计算机教育的差距。

2024-06-13 01:46:01 871 1

原创 P1294 高手去散步

作者在大一结束时决定改变学习策略,放弃内卷课程成绩保研的想法,转而为考研和就业做准备的过程。作者计划重点学习数据结构、计算机网络、操作系统,并通过国外课程和算法竞赛提升自己的竞争力。接着文章解决算法问题:如何在鳌头山上规划一条最长路径,使高手和心上人散步时间最长。作者提供了初步和最终的解决方案,通过深度优先搜索(DFS)算法在图中找到最长路径。最后,作者反思了初始代码中的问题,并提出了改进方法,使算法能够正确运行并输出预期结果。

2024-06-11 10:41:20 839

原创 [NOIP1996 提高组] 挖地雷

这篇文章提供了解答NOIP1996提高组编程题“挖地雷”的思路和代码。解题思路主要使用深度优先搜索(DFS)和回溯,且地窖只能按照初始输入的顺序挖,不能反向走。初始代码可以正确输出最大的地雷数量。为了解决路径问题,改进思路中在DFS中多传一个参数表示当前步数,并用数组存储当前路径。如果找到的路径是最大的,就将其同步到答案中。最后给出的改进后的C++代码可以正确输出挖得最多地雷时的挖地雷的顺序和最多的地雷数。

2024-04-17 23:51:08 840

原创 P1434 [SHOI2002] 滑雪

这篇文章是一份解决滑雪问题(SHOI2002)的编程教程。作者首先介绍了自己的编程背景和学习心态,然后详细描述了滑雪问题的规则和输入输出格式。接着,作者提出了一个一个初步的解决思路,基于动态规划的解决方案,并手写了代码实现,但发现输出结果不符合预期。作者通过模拟分析发现,问题出在计算每个点的最长滑坡长度的顺序上。如果一个点的下面的点的高度更高,而这个点的最长滑坡长度还没有被计算,就会出现错误。于是提出了使用记忆化搜索和深度优先搜索的修正方法,并成功实现了预期结果。

2024-04-12 22:14:10 556

原创 P5194 [USACO05DEC] Scales S

这篇文章是关于一个编程问题的解决方案。问题是约翰有一个天平和一些已知质量的砝码,他需要用这些砝码来称牛的重量。天平有一个最大承重能力,如果超过这个重量,天平就会被损坏。砝码按照它们的质量大小被排成一行,从第三个砝码开始,每个砝码的质量至少等于前面两个砝码的质量的和。约翰想知道,用他所拥有的这些砝码以及这架天平,能称出的质量最大是多少。解决方案包括使用深度优先搜索(DFS)算法,以及一些剪枝和记忆化的技巧来优化性能。

2024-03-13 23:33:35 835

原创 记录天选4第一次拆机

这是一篇关于如何自行给天选4电脑加装内存的文章。作者因为经常开启多个网页和后台音乐/服务,导致电脑突然蓝屏重启,认为可能是内存不足,因此决定自行增加内存。作者购买了两条国产光威的内存条,然后按照拆卸螺丝、掀开盖头、清理灰尘、安装内存条、测试的步骤完成了整个过程。文章中还包含了详细的图片说明,以帮助有同样需求的读者进行参考。

2024-03-13 20:32:46 778

原创 P1019 [NOIP2000 提高组] 单词接龙

这篇文章是对NOIP2000 提高组的单词接龙题目的解析。题目要求找出以给定字母开头的最长“龙”,每个单词都最多在“龙”中出现两次。文章详细阐述了使用深度优先搜索(DFS)的解题思路和代码实现,包括如何判断两个单词的重叠部分,如何记录单词的使用次数,以及如何传递DFS的参数等关键步骤。最后,文章给出了题目的AC代码。

2024-03-13 00:04:04 1017

原创 [NOIP2012 提高组] 借教室

这道问题涉及在大学期间租借教室的安排,其中有多天的教室可供租借,而每份订单描述了租借者在一定时间范围内所需的教室数量。要求通过编程解决问题,判断是否存在订单无法完全满足,并通知相应的申请人修改订单。解决方案采用了差分数组和前缀和的方法,通过二分查找优化算法,提高了效率。采用差分数组记录每天需要的教室数量变化,然后通过前缀和检查每天的剩余教室是否满足订单要求。利用二分查找优化算法,有效减少时间复杂度。如果所有订单均可满足,则输出0;否则,输出-1和需要修改订单的申请人编号。

2024-02-29 00:16:35 854

原创 P1387 最大正方形

这个问题要在一个大小为n×m的矩阵中找到不包含0的最大正方形,并输出其边长。初始代码通过从每个元素的左上角开始逐步扩展,但未考虑到某些情况,导致测试样例不通过。最终的AC代码对左上角元素的边长进行了更细致的检查,从大到小依次尝试,确保找到合适的正方形边长。此外,代码在检查横竖两条边界时注意到了从大到小遍历,保证了正确性。

2024-02-21 22:46:24 1040

原创 P3131 [USACO16JAN] Subsequences Summing to Sevens S

这个问题要求找出一个由整数数组中的元素组成的连续子数组,使得其元素之和为7的倍数,并输出该子数组的长度。一开始使用了暴力的前缀和方法,但随后进行了两次优化。第一次优化使用了较大数的差值计算,减少了max函数的调用,但仍未达到最优解。第二次优化考虑了余数的特性,即若两个数的差模7为0,则它们模7的余数相同。最终的AC代码在遍历数组的同时,计算了每个元素的余数,并记录了每个余数第一次和最后一次出现的位置,通过这些位置信息计算出满足条件的子数组的长度,并输出结果。

2024-02-21 14:13:51 986

原创 P3612 [USACO17JAN] Secret Cow Code S

概要:题目要求根据给定的初始字符串s和索引N,通过将字符串s与其右移一个字符形成的新字符串不断连接的规则生成无限长度的字符串。然后,找到无限字符串中第N个位置的字符。解题方法是动态调整字符串长度m,通过观察规律,将N映射到原字符串中的位置,最终输出对应位置的字符。

2024-02-07 20:25:52 732 1

原创 P1010 [NOIP1998 普及组] 幂次方

该代码解决了一个数学问题,即将正整数表示为 2 的幂次方的括号形式。采用深度优先搜索(DFS)的算法,通过递归遍历,将给定的正整数转换为符合规定的括号表示法。代码使用局部变量而非全局变量,确保递归调用时不影响计数器的值。最终的输出满足题目要求,不含多余空格。

2024-02-07 14:55:43 492 1

原创 P1309 [NOIP2011 普及组] 瑞士轮

本文介绍了瑞士轮赛制在双人对决竞技性比赛中的应用。该赛制是淘汰赛与循环赛的折中,确保比赛稳定性同时避免过长。通过2×N名选手进行R轮比赛,每轮结束后按总分排序,总分相同则按编号排序。比赛规则包括每轮的对阵和得分规则。通过结构体存储选手信息,自定义比较规则排序,使用归并排序处理比赛结果。最终,输出排名第Q的选手编号。AC代码通过STL的sort和merge函数实现排序和合并,确保正确输出。

2024-02-05 00:03:20 389 1

原创 P5461 赦免战俘

这篇文章记录了作者解决一个关于作弊者命运的问题的过程。通过模拟递推的方法,作者处理了一个正方形矩阵,根据一定规则划分并确定作弊者的赦免情况。文章提供了具体的解题思路和AC代码,是一篇对解题方法进行了简要记录的文章。

2023-12-12 20:33:50 509

原创 P1598 垂直柱状图

这个程序的目标是读取四行大写字母,然后输出每个字符在输入文件中出现的次数的柱状图。程序的输入包含四行大写字母,每行不超过100个字符。输出包括若干行,其中前几行由空格和星号组成,最后一行是由空格和字母组成的。在输出的每一行末尾都不能有多余的空格,也不能有任何空行。程序的主要步骤包括输入字符串,统计字符出现次数,排序字符以便后续输出不出现多余空格。然后,遍历字符数组,如果是本行最后一个(即最高的),就给下一个元素赋值,等输出到该元素时就换行。最后,在字符数组中的相应位置输入星号。输出时要注意不要有多余的空。

2023-12-10 22:03:44 509

原创 P1217 [USACO1.5] 回文质数 Prime Palindromes

这篇文章讨论了题目 P1217 [USACO1.5] 回文质数 Prime Palindromes。要求找出给定范围 [a, b] 内的所有回文质数。文章提到了遍历范围的关键要点,包括跳过偶数、排除偶数位数的数字等。给出了一个 AC 代码,通过限制 b 的最大值为 9999999,解决了超时问题。

2023-11-15 16:58:30 103

原创 C++ L1-025 正整数A+B(15分)

题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。

2023-09-28 00:24:47 238 1

空空如也

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

TA关注的人

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