<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Pantheraonca的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Pantheraonca</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Pantheraonca]]></copyright><item><title><![CDATA[【小知识——关键字解析】几种“使用”修饰变量或函数的关键字—register、extern、auto、static和inline详解]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/145064659</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/145064659</guid><author>Pantheraonca</author><pubDate>Sun, 28 Jun 2026 16:59:03 +0800</pubDate><description><![CDATA[要了解，就要先了解寄存器。    寄存器是CPUCPUCPU内部用来存放数据的一些小型存储区域，用来暂时存放参与运算的数据和运算结果。    在C++C++C++中，关键字的作用主要是作为对编译器的一个建议，提示该变量可能会被频繁访问，因此将其存储在中可能会提高程序的性能。    然而，关键字的实际效果完全取决于编译器的实现和优化策略，编译器可以选择忽略该建议。因为寄存器是临时储存的，所以寄存器的空间比较小，但是访问速度却变快了。    使用示例如下：
    需要注意的是，在C++11C++11C++11]]></description><category></category></item><item><title><![CDATA[【题解】【贪心】【优先队列】【哈夫曼树】——[NOI2015] 荷马史诗]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/162198789</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/162198789</guid><author>Pantheraonca</author><pubDate>Sun, 28 Jun 2026 16:58:24 +0800</pubDate><description><![CDATA[她喜欢在一个慵懒的午后，细细地品上一杯卡布奇诺，静静地阅读她爱不释手的《荷马史诗》。但是由《奥德赛》和《伊利亚特》 组成的鸿篇巨制《荷马史诗》实在是太长了，Allison 想通过一种编码方式使得它变得短一些。，才能使替换以后得到的新的《荷马史诗》长度最小。，然后进行合并即可。直到所有结点都被合并成了一个大结点，结束程序，输出答案。与最优方案相比，文章的长度相同，但是最长字符串的长度更长一些。个，靠近根节点的位置反而没有被好好利用起来，而且合并也会失败。个结点，最后合并的时候，如果可以合并的结点数量不足。]]></description><category></category></item><item><title><![CDATA[【题解】【二分】——[COCI 2011/2012 #5] EKO / 砍树]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/162359058</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/162359058</guid><author>Pantheraonca</author><pubDate>Sat, 27 Jun 2026 10:35:36 +0800</pubDate><description><![CDATA[Mirko 非常关注生态保护，所以他不会砍掉过多的木材。请帮助 Mirko 找到伐木机锯片的最大的整数高度。对 Mirko 来说这是很简单的工作，因为他有一个漂亮的新伐木机，可以如野火一般砍伐森林。例如，如果一排树的高度分别为。Mirko 的伐木机工作流程如下：Mirko 设置一个高度参数。”，再结合题目要求“高度尽量要高”，可以考虑二分答案，尽量让。（米），伐木机升起一个巨大的锯片到高度。米的高度，切割后树木剩下的高度将是。个整数，表示锯片的最高高度。，使得他能得到的木材至少为。的升高，得到的木材也会“]]></description><category></category></item><item><title><![CDATA[【题解】【二分】——[NOIP 2001 提高组] 一元三次方程求解]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/162359635</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/162359635</guid><author>Pantheraonca</author><pubDate>Sat, 27 Jun 2026 10:35:19 +0800</pubDate><description><![CDATA[NOIP 2001 提高组第一题。]]></description><category></category></item><item><title><![CDATA[【指针之旅4】你真的知道什么是数组名吗？——重新认识数组名]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/146294972</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/146294972</guid><author>Pantheraonca</author><pubDate>Fri, 26 Jun 2026 22:42:41 +0800</pubDate><description><![CDATA[表达式行为类型大多数表达式退化为首元素指针int*代表整个数组int[5]，求数组总字节数&arr取整个数组的地址int (*)[5]公众号上会及时提供信息学奥赛的相关资讯、各地科技特长生升学动态、还会提供相关比赛的备赛资料、信息学学习攻略等。]]></description><category></category></item><item><title><![CDATA[【题解】【洛谷P2048】【贪心】【前缀和】【ST表】【堆】——[NOI2010] 超级钢琴]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/162197687</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/162197687</guid><author>Pantheraonca</author><pubDate>Fri, 26 Jun 2026 22:42:01 +0800</pubDate><description><![CDATA[我们定义一首乐曲的美妙度为其所包含的所有超级和弦的美妙度之和。我们定义超级和弦的美妙度为其包含的所有音符的美妙度之和。两个超级和弦被认为是相同的，当且仅当这两个超级和弦所包含的音符集合是相同的。小 Z 是一个小有名气的钢琴家，最近 C 博士送给了小 Z 一架超级钢琴，小 Z 希望能够用这架钢琴创作出世界上最美妙的音乐。按照常理，我们应该储存的是区间的左右端点。为左端点的（以其它位置为左端点的情况我们在其它区间处理，这里只关注这一类以。同理，都是因为在我们的思路中需要用到这些信息，所以才需要储存。]]></description><category></category></item><item><title><![CDATA[【题解】【洛谷P5019】【分治】【ST表】【贪心】——[NOIP 2018 提高组] 铺设道路]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/162197476</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/162197476</guid><author>Pantheraonca</author><pubDate>Wed, 24 Jun 2026 22:49:35 +0800</pubDate><description><![CDATA[本文讲述了[NOIP 2018 提高组] 铺设道路与众不同的分治（模拟做法）和主流的贪心做法]]></description><category></category></item><item><title><![CDATA[【小知识】灵活的关键字——const修饰指针和修饰函数的用法]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/145064252</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/145064252</guid><author>Pantheraonca</author><pubDate>Wed, 24 Jun 2026 22:46:12 +0800</pubDate><description><![CDATA[const修饰指针是一个比较容易混淆的语法点。需要大家多多注意，上文主要使用代码帮助读者在实操中懂得每一个const的作用。写法指向内容指针本身适用场景不可变可变读取字符串/数组，保护数据不被修改可变不可变固定硬件地址（如单片机寄存器映射）不可变不可变只读的固定映射表不可变（引用）大对象传参，避免拷贝且只读（C++）不可变（成员）成员函数中只读取、不写入（C++）公众号上会及时提供信息学奥赛的相关资讯、各地科技特长生升学动态、还会提供相关比赛的备赛资料、信息学学习攻略等。]]></description><category></category></item><item><title><![CDATA[【题解】【洛谷P14359】【贪心】【位运算】【哈希】——[CSP-J 2025] 异或和]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/162197575</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/162197575</guid><author>Pantheraonca</author><pubDate>Mon, 22 Jun 2026 22:59:34 +0800</pubDate><description><![CDATA[二叉搜索树”同样也需要“有序”，不可使用，只剩下哈希。再这样，根据每一个右端点，我们最多能找到一个“符合条件且有可能用得上”的区间，时间复杂度基本降到了。，分别表示小 R 的序列长度和小 X 给小 R 的非负整数。输出一行一个非负整数，表示小 R 能选出的区间数量的最大值。你需要帮助小 R 求出他能选出的区间数量的最大值。可以证明，小 R 能选出的区间数量的最大值为。可以证明，小 R 能选出的区间数量的最大值为。可以证明，小 R 能选出的区间数量的最大值为。，一个表示“筛选”操作，一个表示“贪心”操作。]]></description><category></category></item><item><title><![CDATA[【题解】【洛谷P11231】【贪心】——[CSP-S 2024] 决斗]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/162197398</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/162197398</guid><author>Pantheraonca</author><pubDate>Mon, 22 Jun 2026 22:58:29 +0800</pubDate><description><![CDATA[因为根据上述贪心策略，当前“进攻牌”和“被进攻牌”通常是“紧密贴合”的（位置差不了多少），考虑使用一个指针。此时没有退出游戏的怪兽都进行过攻击，游戏结束。小 Q 希望决定一组攻击顺序，使得在游戏结束时，未退出游戏的怪兽数量尽可能少。“留在场上的最小值”不好求，可以求出“下场的最大值”，使用。因此可以考虑同时枚举“进攻牌”和“被进攻牌”。当未退出游戏的怪兽都已发起过攻击时，游戏结束。输出一行包含一个整数表示游戏结束时未退出游戏的怪兽数量的最小值。一场游戏分为若干回合。更大的卡牌留给后面的“被进攻”的卡牌。]]></description><category></category></item><item><title><![CDATA[【数据结构讲解】【树：二叉树，完全二叉树】——树的简单概念入门和二叉树介绍及题目推荐]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/162087288</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/162087288</guid><author>Pantheraonca</author><pubDate>Sat, 20 Jun 2026 08:58:52 +0800</pubDate><description><![CDATA[读者见过大树吗？一般来说，树有一个粗壮的树干，在网上面熟感就会分成两岔或者多岔，接着树枝会一直继续分下去，一直分到末端的叶子位置。事实上，C++中也有与树相类似的数据结构，只不过是倒过来的。这个“粗壮的树干”（也就是“根”）在上面，茂盛的树叶在下面。如果你想表示“数据之间的指向关系”或者“数据之间的层次关系”，可以考虑使用“树”这一数据结构。本文将介绍一些关于树的基本概念，并且详细介绍一种特殊的树——二叉树。]]></description><category></category></item><item><title><![CDATA[【题解】【洛谷P1315】【贪心】【递推】——[NOIP 2011 提高组] 观光公交]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/162087173</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/162087173</guid><author>Pantheraonca</author><pubDate>Sat, 20 Jun 2026 08:57:34 +0800</pubDate><description><![CDATA[一个乘客的旅行时间，等于他到达目的地的时刻减去他来到出发地的时刻。换句话说，某段路加速的效益，会沿着线路一直往后传导，直到遇见第一个“车等人”的站点为止（或者一直传到终点）。，当然，底下给出的两段代码是等价的，你也可以使用更容易理解的下面的版本，如下：（有一些细节请读者自行注意）至于另外一个影响因素，如果使用加速器的话是会动态变化的，即使使用前缀和也不好维护。的限制，所以这个修改产生的影响不一定是实际上产生的影响。下车的人数，在输入时就预处理了。位乘客来到出发景点的时刻，出发的景点编号和到达的景点编号。]]></description><category></category></item><item><title><![CDATA[【数据结构讲解】【集合：哈希】——哈希算法和map介绍及题目推荐]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/162033392</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/162033392</guid><author>Pantheraonca</author><pubDate>Thu, 18 Jun 2026 08:41:47 +0800</pubDate><description><![CDATA[这是解决哈希冲突最常见的方法，也是最正宗的“哈希表”。我们通过将所有“哈希冲突”（即键不同，值相同）的元素保存起来，随后一一比对。其它的哈希函数的设计思想包括“滚动哈希”，“Rabin-Karp 哈希”等。这样一来，一个数字就有一组对应的哈希值了，共两个。事实上，可以证明即使是上面设计的如此精妙的哈希函数，也不能完全实现“一个确定的。想要解决这样一个问题，最简单的暴力法就是使用一个字符串数组储存每一个出现过的字符串，然后遍历一一比对。冲突，直接向后找“空位”，找到空位就把当前的值“放上去”。]]></description><category></category></item><item><title><![CDATA[【题解】【洛谷P2114】【贪心，位运算】——[NOI2014] 起床困难综合症]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/162034058</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/162034058</guid><author>Pantheraonca</author><pubDate>Thu, 18 Jun 2026 08:40:04 +0800</pubDate><description><![CDATA[世纪，许多人得了一种奇怪的病：起床困难综合症，其临床表现为：起床难，起床后精神不佳。通过研究相关文献，他找到了该病的发病原因：在深邃的太平洋海底中，出现了一条名为 drd 的巨龙，它掌握着睡眠之精髓，能随意延长大家的睡眠时间。drd 有着十分特殊的技能，他的防御战线能够使用一定的运算来改变他受到的伤害。为了节省体力，他希望通过选择合适的初始攻击力使得他的攻击能让 drd 受到最大的伤害，请你帮他计算一下，他的一次攻击最多能使 drd 受到多少伤害。，因此 atm 的一次攻击最多使 drd 受到的伤害值为。]]></description><category></category></item><item><title><![CDATA[【题解】【洛谷P1102】【二分、哈希map、双指针】——A-B 数对]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/161978691</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/161978691</guid><author>Pantheraonca</author><pubDate>Mon, 15 Jun 2026 23:24:30 +0800</pubDate><description><![CDATA[相同的题目看多了也会有审美疲劳，于是我舍弃了大家所熟悉的 A+B Problem，改用 A-B 了哈哈！把这个序列排序后，这个序列就有单调性了。上面的代码之所以复杂度高，是因为有两重循环，同时枚举。的值域过大，用数组不太方便。的数对的个数（不同位置的数字一样的数对算不同的数对）。本身就可以看做一个比较智能的，下标为任意数据类型的数组。可能没有，也可能有多个），然后累加到答案中去即可。想到统计一个数的出现次数，自然也可以想到“根据双指针，先排序，枚举每一个位置的。读者可以详细的比较其异同，这里不多赘述。]]></description><category></category></item><item><title><![CDATA[【题解】【洛谷P5020】【动态规划】——[NOIP 2018 提高组] 货币系统]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/161774191</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/161774191</guid><author>Pantheraonca</author><pubDate>Mon, 15 Jun 2026 23:23:48 +0800</pubDate><description><![CDATA[都是使用一些小的数“拼接”，放到大背包里面去。是货币系统中的货币，因为我们只要考虑货币系统中的货币是否能被替换）的货币，可以先用一张货币。是由多少张纸币凑出来的，也不知道是哪些纸币凑出来的。，说明能够用其他的货币表示出来（因为现在还没有开始做处理）。然而， 在网友的国度中，货币系统可能是不完善的，即可能存在金额。，你可以假设每一种货币都有无穷多张。，它要么均可以被两个货币系统表出，要么不能被其中任何一个表出。行，对于每组数据，输出一行一个正整数，表示所有与。在一个完善的货币系统中，每一个非负整数的金额。]]></description><category></category></item><item><title><![CDATA[【算法讲解】【前缀和、差分、离散化】简单的算法优化策略介绍1]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/161752590</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/161752590</guid><author>Pantheraonca</author><pubDate>Sun, 14 Jun 2026 14:04:11 +0800</pubDate><description><![CDATA[前缀和以及差分是一对“孪生算法”，十分相似。在具体使用中，不一定要用来处理“前缀和”。事实上，只要是具有“区间可合并”特性的运算都可以使用前缀和。比如异或，可以得到的值，但是取最小值、最大值却不行。因为及时确定了1~y最小/大值和1~x-1最小/大值，也不一定能确定1~y的最小值。虽然说这三个优化算法的推荐题目较少，但是后续的练习中读者可能反反复复碰到它们，请务必掌握它们各自的特征，以确保在考场时可以识别出来并应用。]]></description><category></category></item><item><title><![CDATA[【题解】【洛谷P14361】【反悔贪心】——[CSP-S 2025] 社团招新]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/161774151</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/161774151</guid><author>Pantheraonca</author><pubDate>Sun, 14 Jun 2026 14:01:45 +0800</pubDate><description><![CDATA[也就是说，如果我们按照正常的步骤进行贪心，很有可能会出现某个部门“太过受欢迎”，从而爆满的情况。对于每组测试数据，输出一行一个非负整数，表示满足小 L 要求的分配方案的满意度的最大值。”的部门即可，能够保证这样的方法最优（反证法可证）。定义一个分配方案的满意度为所有新成员对分配到的部门的满意度之和，也就是说，若将第。小 L 是学校算法协会的成员。你需要帮助小 L 求出，满足他要求的分配方案的满意度的最大值。最简单的，把每个学生都安排到“最满意的部门”。对于每一个人，直接让他去“最满意的部门”然后统计答案。]]></description><category></category></item><item><title><![CDATA[【数据结构讲解】【集合】—— 集合的引入和STL中的集合set及题目推荐]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/161772157</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/161772157</guid><author>Pantheraonca</author><pubDate>Sun, 07 Jun 2026 15:36:28 +0800</pubDate><description><![CDATA[有的时候，并不关心数据之间的前后关系，也不关心数据的层次关系。一些确定的元素只是单纯地聚在一起，这样的元素聚集体被称为集合，可以类比数学之中的集合来理解。当希望直到某个数据是否存在一个集合之中，或者两个元素是否在同一个集合之内，就需要使用一些几何数据结构来维护集合元素之间的关系。接下来为大家介绍STL中的集合以及使用场景。// 定义一个内部元素为int的集合,int可替换成任意数据类型// 把a[0]~a[4]的元素拷贝进s2// 把s2中的元素拷贝到s3内// 初始化列表，自动排序。]]></description><category></category></item><item><title><![CDATA[【题解】【洛谷P14635】【反悔贪心】【前缀和】【排序】——[NOIP2025] 糖果店]]></title><link>https://blog.youkuaiyun.com/Pantheraonca/article/details/161751430</link><guid>https://blog.youkuaiyun.com/Pantheraonca/article/details/161751430</guid><author>Pantheraonca</author><pubDate>Sun, 07 Jun 2026 15:35:54 +0800</pubDate><description><![CDATA[反之，如果策略2购买两种以上的糖果，一定可以通过替换成“一套”价格最小的糖果（很简单：糖果“奇数颗”单价就已经包含在里面了（即最开始的一颗），和策略2是不冲突的。：（这三种购买策略的发现读者可以看一看如果只有一颗糖果怎么购买最划算，这里由于太简单就直接省略了，考场上面还是很容易发现的）根据解释，最优方案即为购买 1 颗第一种糖果、1 颗第二种糖果与 6 颗第三种糖果，共花费。至此，贪心策略已经明了，请读者自行尝试总结（采用策略1+策略2的形式）考虑如何衡量一种购买方式“值不值”，很简单，同样的价格，买的。]]></description><category></category></item></channel></rss>