<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>冰轮韵</title>
		<link>https://lunarithm.space/</link>
		<description>Recent content on 冰轮韵</description>
		<generator>Hugo</generator>
		<language>zh-cn</language>
		
		
		
		
			<lastBuildDate>Mon, 27 Jul 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://lunarithm.space/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>雨夜月全食</title>
				<link>https://lunarithm.space/posts/life/rain-eclipse/</link>
				<pubDate>Mon, 08 Sep 2025 00:00:00 +0000</pubDate>
				<guid>https://lunarithm.space/posts/life/rain-eclipse/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;在校。22时临时起意去看月食。捎上明日当早餐的全麦面包和牛奶，背包出门。先去操场，再到图书馆后面的空地，最后来到教二去图书馆、被两片湖夹着的水泥小径。或是坐在石凳上，或是铺好防潮袋躺于地面——耳边循环着《Fly Me to the Moon》《The Dark Side or the Moon》，默默地观赏星月。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;第一次亲眼看月食。&lt;/p&gt;&#xA;&lt;p&gt;天气不算很好，但能看。四五阵小雨后，拨云见月，众星捧月，一股救赎感油然而生。&lt;/p&gt;&#xA;&lt;p&gt;食甚时的红月，最适合观星。月光黯然失色，星光闪烁，肉眼可见至少一两百颗星星。特别是昴星团，格外引人注目。铺好防潮袋，屈膝仰卧，舒展筋骨，星光和红月尽收眼底。暗云涌动，犹如翻飞的笔墨。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Fly me to the moon - I&amp;rsquo;ll see you on the dark side of the moon.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;蝉鸣、红月、繁星、静湖，空气混杂着潮湿的气息——我大概永运也忘不了这个夜晚，它已成为我人生的一部分。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/rain-eclipse-%e7%ba%a2%e6%9c%88.png&#34;&#xA;  alt=&#34;rain-eclipse&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/rain-eclipse-%e6%98%9f%e7%a9%ba.jpg&#34;&#xA;  alt=&#34;rain-eclipse&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;</description>
			</item>
			<item>
				<title>时间感密度</title>
				<link>https://lunarithm.space/posts/life/temporal-experience-density/</link>
				<pubDate>Mon, 19 May 2025 00:00:00 +0000</pubDate>
				<guid>https://lunarithm.space/posts/life/temporal-experience-density/</guid>
				<description>&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/%e6%97%b6%e9%97%b4%e6%84%9f%e5%af%86%e5%ba%a6.jpg&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;正文&#34;&gt;正文&lt;/h2&gt;&#xA;&lt;p&gt;我自造的一个概念：在一定时间段内，所接收的非熟悉的信息密度越大，&lt;strong&gt;时间感密度&lt;/strong&gt;就越大，而体感上时间的流逝就越慢。这里&lt;strong&gt;非熟悉信息&lt;/strong&gt;可定义为日常生活中不容易重复的经历，是全新的体验。常见于旅行、参加同人展会、听 Live 、参加大型比赛等。&lt;/p&gt;&#xA;&lt;p&gt;比如这次的 2025 广州THO &amp;amp; 东方乐典 ，三天两夜的行程，就好像过了三周。大概是因为日常平平无奇，每天的日程都差不多，接触的大多是熟悉信息；而这次行程排得满满当当——跟群友网友面基、玩无线电、跑 THO、听 Live，刺激了松驰已久的神经，无时无刻不是新鲜的体验。&lt;/p&gt;&#xA;&lt;p&gt;不知心理学是否已有类似的概念？问了一下 LLM，还真有。&lt;/p&gt;&#xA;&lt;h2 id=&#34;llm---chatgpt-4o-深度研究&#34;&gt;LLM - ChatGPT-4o 深度研究&lt;/h2&gt;&#xA;&lt;p&gt;明白了，我会帮你查找心理学中是否存在与你提出的“时间感密度”概念相近的理论或术语，包括认知心理学、时间知觉、注意力与记忆等领域，覆盖中文与英文资料。&#xA;我会尽快整理并告诉你有哪些已有概念与“在有限时间内经历越多新鲜信息，体感时间越慢”这一体验有关联。&lt;/p&gt;&#xA;&lt;h3 id=&#34;时间感密度现象概述&#34;&gt;“时间感密度”现象概述&lt;/h3&gt;&#xA;&lt;p&gt;用户提出的“时间感密度”指在同一段时间内经历的事件或新奇信息越多，主体感知到的时间就越“慢”。这种现象与旅行、展会、演唱会等丰富刺激场景相关。心理学研究表明：&lt;strong&gt;回顾性地&lt;/strong&gt;看，经历丰富、多样的事件会让一段时间的记忆更加充实，从而感觉&lt;strong&gt;更漫长&lt;/strong&gt;。例如，有研究指出：“回程通常比去程感觉短，可能是因为沿路景象的新奇感消失了”；新闻报道也提到，首次去新的城市旅行会让人觉时间格外漫长。总之，在记忆层面，多事件、多变化对应更多编码内容，因而给人“时间延长”的印象。&lt;/p&gt;&#xA;&lt;h4 id=&#34;记忆视角情境变化与存储体积&#34;&gt;记忆视角：情境变化与存储体积&lt;/h4&gt;&#xA;&lt;p&gt;记忆模型（storage-size/contextual-change 模型）强调，一段时间内被记忆下的事件越多、越复杂，&lt;strong&gt;回顾&lt;/strong&gt;时感觉持续时间越长。经典研究发现：包含多种不同任务或事件的时段，被试回忆时会感觉&lt;strong&gt;更长&lt;/strong&gt;。James (1890) 和 Ornstein (1969) 均指出：“记忆的多产性越高”，信息储存容量越大，主观持续感就越长。例如，孩子在童年经历许多“第一次”，这些新奇体验在脑海中印象深刻，回忆时倍感充实；而成年后生活趋于日常重复，回忆内容减少，导致感觉时间压缩、过得更快。这些证据与“时间感密度”强调的多经历→时间拖长相符。&lt;/p&gt;&#xA;&lt;h4 id=&#34;注意力与认知负荷&#34;&gt;注意力与认知负荷&lt;/h4&gt;&#xA;&lt;p&gt;从&lt;strong&gt;前瞻性时间估计&lt;/strong&gt;看，注意力和任务负荷起关键作用。注意力-门控模型认为，当注意力更多地集中于当前事件（而非时间本身），内部时钟脉冲增多、持续时间被低估；相反，当空闲无聊时，注意力会落到时间流逝上，感觉时间变慢。元分析发现：&lt;strong&gt;高认知负荷&lt;/strong&gt;下进行时间估计，若被试&lt;strong&gt;事先知道要计时&lt;/strong&gt;（前瞻性任务），主观时间比率降低（低估时长）；但若在&lt;strong&gt;事后回忆&lt;/strong&gt;（回顾性任务），高负荷反而让时长感增大。换言之，在繁忙复杂的体验中，当事人往往觉得“时间飞快”，而回头看却会觉得“经历了更多”，反映负荷与时间感知的双向影响。就“时间感密度”而言，如果将其视为回顾式感觉，那么高事件密度确实与更长的时间感相符；但从前瞻性角度，这与常说的“多任务时光飞逝”相反。&lt;/p&gt;&#xA;&lt;h4 id=&#34;新奇性影响&#34;&gt;新奇性影响&lt;/h4&gt;&#xA;&lt;p&gt;新奇刺激通常会&lt;strong&gt;扩张&lt;/strong&gt;主观时间感。重复出现的刺激因神经适应而被感知更短，而突然出现的新奇刺激则被感觉更长。Eagleman 等人发现，相同时长的视频片段若以慢动作播放（新奇度低），观察者反而认为经过的时间更短；大量心理学研究也表明，新奇事物会让人感觉持续时间异常漫长。类似地，在“稀有刺激”实验（oddball paradigm）中，低概率出现的新奇刺激往往被估计为持续时间更长（即主观时间扩张）。这一切说明：&lt;strong&gt;新颖性&lt;/strong&gt;会抓住注意力并丰富信息编码，从而拉长时间感。这与用户所说的“越多新奇信息→时间越慢”是一致的。&lt;/p&gt;&#xA;&lt;h4 id=&#34;相关术语&#34;&gt;相关术语&lt;/h4&gt;&#xA;&lt;p&gt;心理学文献中没有“时间感密度”这一标准术语，但有几个相关表达可参照：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;体验/事件密度 (event density/experience density)&lt;/strong&gt;：指单位时间内经历或记忆的事件数量。文献中的“事件密度假说 (event-density hypothesis)”提出，事件数量影响时间感，尽管该假说一般用来解释“事件多→感觉时间压缩（快过）”的情况。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;主观时间扩张/膨胀 (subjective time expansion/dilation)&lt;/strong&gt;：用于描述新奇刺激或情感高涨时主观持续延长的现象。在研究中，新奇/稀有刺激常被认为“看起来持续更长”。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;存储量假说 (storage-size hypothesis)&lt;/strong&gt;、&lt;strong&gt;情境变化假说 (contextual-change hypothesis)&lt;/strong&gt;：强调记忆编码量或认知情境变化与时长估计的关系。虽然不是用来描述“体验密度”，但含义接近。&lt;/li&gt;&#xA;&lt;li&gt;在中文网络或科普中，人们也会用“体验密度”、“事件密度”等说法来形容类似感觉。例如，有文章指出“新鲜体验会让大脑形成更深刻记忆，第一次去一个新城市旅行感觉时间特别漫长”。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;中文讨论与比较&#34;&gt;中文讨论与比较&lt;/h4&gt;&#xA;&lt;p&gt;国内媒体和论坛已有类似讨论。例如《新浪财经》专栏提到“第一次坐火车时觉得时光漫长”，“童年很多‘第一次’，新鲜独特的经历都深深印刻在脑海”；温哥华天空健康专栏也强调“新奇事物让大脑处理更积极，记忆更丰富”，因此回忆过去时“感觉时间更长”。这些讨论与“时间感密度”概念吻合：新奇体验越多，回忆时觉得时间越多、越慢。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;总结：&lt;/strong&gt; “时间感密度”与已有心理学概念最接近的是&lt;strong&gt;记忆模型中的事件/体验密度&lt;/strong&gt;。相关理论（如存储量假说、情景变化假说）都认为多事件或新奇经历会拉长主观时长。英文中可近似说为“experience/event density”或“subjective time expansion”。需注意的是，传统前瞻性时间感研究（注意力门控模型等）往往指出&lt;strong&gt;事件越多、任务越复杂&lt;/strong&gt;人们会感觉时间&lt;strong&gt;过得越快&lt;/strong&gt;；这与“时间感密度”假设的&lt;strong&gt;越多体验→越慢&lt;/strong&gt;存在差异。总体而言，用户概念更契合于回顾性时间知觉和记忆丰富度的视角，这在心理学中已被多项研究所验证，但学术术语主要围绕“事件密度”、“时间扩张”等来表述。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;主要参考文献：&lt;/strong&gt; Block 和 Reed (1978) 等关于情景变化模型的经典研究；Eagleman (2009) 等关于重复与新奇刺激对时间知觉影响的研究；以及近年来对时间知觉与事件密度的综述。中文网络文章如《新浪财经》、《温哥华天空》等也提供了对该现象的通俗解释。以上资料帮助我们理解“时间感密度”这一概念的心理学背景和相似概念。&lt;/p&gt;</description>
			</item>
			<item>
				<title>记一次CD保护盒定制</title>
				<link>https://lunarithm.space/posts/life/cd-box/</link>
				<pubDate>Thu, 24 Apr 2025 00:00:00 +0000</pubDate>
				<guid>https://lunarithm.space/posts/life/cd-box/</guid>
				<description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;p&gt;作为一名&lt;del&gt;不&lt;/del&gt;资深“碟佬”（CD 爱好者），收藏常规 CD 的同时，自然也少不了一些奇奇怪怪的收藏。特别是一些古早的同人 CD，往往做得奇形怪状，例如 32 开本大小的 CD，跟普通 CD 放在一起，显得格格不入。&lt;/p&gt;&#xA;&lt;p&gt;前段时间有幸收到了 &lt;a href=&#34;https://thwiki.cc/%E7%8F%BE%E5%A4%A2_-genmu-&#34;&gt;《現夢 -genmu-》&lt;/a&gt; ——2011 年发售的东方 Project 同人 CD，包装是纯纸盒的，里面是两张光盘和两本小册子——可费了我不小的一笔零花钱。保护措施自然要拉满：&lt;strong&gt;防潮&lt;/strong&gt;、&lt;strong&gt;防压&lt;/strong&gt;、&lt;strong&gt;防震&lt;/strong&gt;，不然哪天发生什么意外——特别是毕业搬东西回家——把这宝贵的收藏给弄坏了，那是生理上（钱包）和心理上的双重打击。&lt;/p&gt;&#xA;&lt;p&gt;目前的保护措施仅做到&lt;strong&gt;防潮&lt;/strong&gt;：两个防潮自封袋，袋装盒，袋套袋。显然这点根本不够，有必要上保护盒了。&lt;del&gt;当成传家宝供起来（？）&lt;/del&gt; 一番研究后，我决定为 CD 定制一个保护盒。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/%e8%ae%b0%e4%b8%80%e6%ac%a1CD%e4%bf%9d%e6%8a%a4%e7%9b%92%e5%ae%9a%e5%88%b6.jpg&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;保护盒设计&#34;&gt;保护盒设计&lt;/h2&gt;&#xA;&lt;p&gt;CD 加上单层防潮袋的体积为：200x150x20 mm。&lt;/p&gt;&#xA;&lt;p&gt;于是，我打算定制一款书型翻盖式盒子（有点像月饼盒）。内衬用两块海绵：底下是 265x185x47.5 mm，中间挖去一个 200x150x20 mm 的凹槽；盖子是一块 265x185x27.5 mm。这么一来，CD 能完美地被固定在海棉中间，外层还有硬纸壳的保护，防潮、防压、防震三位一体，应该没什么问题了罢。&lt;/p&gt;&#xA;&lt;p&gt;底部的俯视图草图如下：&#xA;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/%e8%ae%b0%e4%b8%80%e6%ac%a1CD%e4%bf%9d%e6%8a%a4%e7%9b%92%e5%ae%9a%e5%88%b6-2.jpg&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;一波三折&#34;&gt;一波三折&lt;/h2&gt;&#xA;&lt;h3 id=&#34;纸盒定制&#34;&gt;纸盒定制&lt;/h3&gt;&#xA;&lt;p&gt;一开始，我打算直接在某宝、某鱼上定制整盒带内衬，但价格令人汗颜：动辄就要 200 元以上。因为这些商家大多是面向大批量订单的客户，像我这种“散户”，定制一个显然不划算，只能另辟蹊径。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/%e8%ae%b0%e4%b8%80%e6%ac%a1CD%e4%bf%9d%e6%8a%a4%e7%9b%92%e5%ae%9a%e5%88%b6-1.jpg&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;在某宝逛了一圈，突然想到可以买现成的盒子，然后定制内衬，不是会更划算吗？&lt;/p&gt;&#xA;&lt;p&gt;一不做二不休，还真给我找到了，尺寸和价格也合适：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/%e8%ae%b0%e4%b8%80%e6%ac%a1CD%e4%bf%9d%e6%8a%a4%e7%9b%92%e5%ae%9a%e5%88%b6.png&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;h3 id=&#34;内衬定制&#34;&gt;内衬定制&lt;/h3&gt;&#xA;&lt;p&gt;内衬我选了黑色 EVA：一种新型环保塑料发泡材料，具有良好的缓冲、抗震、隔热、防潮、抗化学腐蚀等优点，且无毒、不吸水，广泛用于电子电器的防震防滑、密封保温、各种包装盒和金属罐内衬等。虽然会有一点气味，但放室外通几天风基本也能散去。介意的朋友可以考虑其他材料。&lt;/p&gt;&#xA;&lt;p&gt;内衬的定制也没有想象中那么顺利。自然，EVA 裁剪也是面向批发，对于个人定制，大多要求开模，这样也是张口就要一两百：&#xA;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/%e8%ae%b0%e4%b8%80%e6%ac%a1CD%e4%bf%9d%e6%8a%a4%e7%9b%92%e5%ae%9a%e5%88%b6-3.jpg&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;所幸，最后还是有店家愿意为我手工裁切、粘贴。经交流，为避免开模（否则价格不菲），内衬尺寸改为：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;底：265x185x45 mm，凹槽 200x150x20 mm&lt;/li&gt;&#xA;&lt;li&gt;盖：265x186x25 mm&#xA;店家很耐心，&lt;del&gt;哪怕对面钱少事多。&lt;/del&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/%e8%ae%b0%e4%b8%80%e6%ac%a1CD%e4%bf%9d%e6%8a%a4%e7%9b%92%e5%ae%9a%e5%88%b6-4.jpg&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;最后的报价是——&#xA;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/%e8%ae%b0%e4%b8%80%e6%ac%a1CD%e4%bf%9d%e6%8a%a4%e7%9b%92%e5%ae%9a%e5%88%b6-1.png&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;19.21 + 20 = 39.21，不到 40 元就解决了之前要 240 才能定制的问题！&lt;/p&gt;</description>
			</item>
			<item>
				<title>月色入户，欣然起行</title>
				<link>https://lunarithm.space/posts/life/moon-walking/</link>
				<pubDate>Wed, 16 Apr 2025 00:00:00 +0000</pubDate>
				<guid>https://lunarithm.space/posts/life/moon-walking/</guid>
				<description>&lt;h2 id=&#34;正文&#34;&gt;正文&lt;/h2&gt;&#xA;&lt;p&gt;睡不着，爬起来发现今晚的月亮出奇地亮，能照出人影。空气异常干燥而清澈，满月甚至有点眩目，令点缀在其周围的星辰黯然失色，有如永夜抄的虚假之月。&lt;/p&gt;&#xA;&lt;p&gt;终于理解古人为何如此执着于“月“这一意象：&amp;ldquo;今人不见古时月，今月曾经照古人。古人今人若流水，共看明月皆如此。&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;真的很迷人呀。&lt;/p&gt;&#xA;&lt;p&gt;——2025.04.16 凌晨二时&lt;/p&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/moon-walking.jpg&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;</description>
			</item>
			<item>
				<title>剥一个橘子</title>
				<link>https://lunarithm.space/posts/life/peel-an-orange/</link>
				<pubDate>Mon, 14 Apr 2025 00:00:00 +0000</pubDate>
				<guid>https://lunarithm.space/posts/life/peel-an-orange/</guid>
				<description>&lt;h2 id=&#34;正文&#34;&gt;正文&lt;/h2&gt;&#xA;&lt;p&gt;今天是感冒的第三天。本来是风热感冒，仅仅咽喉肿痛。现在开始有痰、流清鼻涕，出现风寒症状，咽喉痛反而没那么引人注意了。寒热交织的感觉有点奇妙，风热为主，并不头晕头痛，精神状态良好。果然是作的，前些天吃过煎炒的饭菜，长跑后的一小时之后洗冷水澡，再加上流感，而且天气异常干燥，一下子就生病了。好在症状很轻，权当激活免疫力了，也是好事。欲速则不达，本来洗冷水澡是为了锻炼身体，下次还是选非跑步日洗冷水澡罢。&lt;/p&gt;&#xA;&lt;p&gt;感冒时对维生素 C 的渴求异常旺盛——平时稍显酸涩的柑橘，现在吃起来是格外酸甜——原来身体对某种营养的需求是这样体现出来的，有意思。电解质水也是，为长跑准备的宝矿力冲剂也派上用场了。&lt;/p&gt;&#xA;&lt;p&gt;结果下午感觉风寒开始占上风了，清鼻涕流水般止不住地渗，微微畏寒。舌苔一半黄一半白，舌尖甚至发红，红得要滴出血来。&lt;/p&gt;&#xA;&lt;p&gt;等好了，打算还跑步，也还洗冷水澡，只是顺着点来。不是不可以洗冷水澡，只是别在身体已经累了的时候再加一把劲。生活和身体，其实都讲个“宽”。小病一场，剥一个橘子，觉得日子也不坏。&lt;/p&gt;</description>
			</item>
			<item>
				<title>再度折腾博客</title>
				<link>https://lunarithm.space/posts/tech/hugo-papermod/</link>
				<pubDate>Tue, 08 Apr 2025 21:05:44 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/hugo-papermod/</guid>
				<description>时隔一年的回归</description>
			</item>
			<item>
				<title>当「爱」足以打破「命运」</title>
				<link>https://lunarithm.space/posts/life/%E5%BD%93%E7%88%B1%E8%B6%B3%E4%BB%A5%E6%89%93%E7%A0%B4%E5%91%BD%E8%BF%90/</link>
				<pubDate>Mon, 08 Jul 2024 00:54:00 +0800</pubDate>
				<guid>https://lunarithm.space/posts/life/%E5%BD%93%E7%88%B1%E8%B6%B3%E4%BB%A5%E6%89%93%E7%A0%B4%E5%91%BD%E8%BF%90/</guid>
				<description>&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/remilia-birth.jpg&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;剧透警告！！！&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;原作：&lt;a href=&#34;https://www.bilibili.com/opus/951384699732754439&#34;&gt;《蕾米的诞生》东方同人漫画（140页）A-XII背德组&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;分割线防剧透&lt;/em&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&lt;em&gt;防剧透结束&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;正文&#34;&gt;正文&lt;/h2&gt;&#xA;&lt;p&gt;东方同人史上绝对值得铭记的作品之一！&lt;/p&gt;&#xA;&lt;p&gt;蕾米莉亚是谁？她只是一个又一个「故事」中「虚构」的主人公：她是摇摇欲坠的君士坦丁堡的公主；她是极富野心的吸血鬼恶魔；她是因爱犯错的迷惘之人……但她始终具有一个不变的身份——她是芙兰朵露·斯卡蕾特口中的「姐姐大人」，是芙兰无条件信赖的至爱之人。&lt;/p&gt;&#xA;&lt;p&gt;而芙兰朵露又是谁？在冈格尼尔看来，她是一个「搅局者」，不应该出现在「故事」中。但在蕾咪眼中，她是至亲、是至爱、是无意识、是她自己的投影、是一切力量与希望的源泉。显然，芙兰是破局的关键，姐妹同心最终「破坏」了「命运」，谱写了我们所熟知的幻想乡的「故事」的「开端」。&lt;/p&gt;&#xA;&lt;p&gt;论剧情，倒叙和几个「故事」之间的穿插安排得恰当自然，「故事」本身也相当引人入胜：吸血鬼蕾米莉亚战鬼王伊吹萃香与小说《现梦》有异曲同工之妙；岛上暗杀将《蓬莱人形》和U.N.OWEN巧妙地结合起来，令人拍案叫绝……剧情上与《胜利之剑》的联动也十分惊喜，情节的情彩程度甚至超越了前作。正如港漫《海虎》三部曲所围绕的中心——「爱」是推动一切最终力量的源泉，而这份「爱」，足以打破一切「命运」，这就是所谓操纵命运程度的能力了吧。&lt;/p&gt;&#xA;&lt;p&gt;好几处细节和伏笔我相当喜欢。芙兰的「恋之瞳」，乍一看莫明奇妙，到了结尾才揭示了「故事」中的芙兰是蕾咪内心无意识的投影，而「故事」中蕾咪对芙兰的爱，正如恋恋的「无意识地爱与被爱」，看到这里，我只能深深折服于A-XII老师的浪漫。还有岛上暗杀，每个受害场面都有「目」的特写，打油诗式的案发评论也很有意思。另外也有不少neta，比如安德森神父的经典十字架pose令人会心一笑。&lt;/p&gt;&#xA;&lt;p&gt;最后，A-XII老师，再次感谢你为我们带来如此精彩的作品！和你一样，我也是喜欢浪漫之人！期待更多精彩作品！另外，也期待纸质版的发行，一定支持一份用来收藏！&lt;/p&gt;&#xA;&lt;p&gt;——Allen&#xA;2024.07.08&lt;/p&gt;&#xA;&lt;h2 id=&#34;评论注&#34;&gt;评论注&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;K: 岛上暗杀那一节捏他的是著名的推理小说《无人生还》，“打油诗”也是出自这部小说，不过作者将东方与这部小说完美的融合到了一起，虽然开头就发觉了，但是仍然不失精彩来。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Allen: 感谢提醒！这么说《蓬莱人形》应该致敬了《无人生还》吧，我抽空看看[幻想乡的日常 第1弹_打call]&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;D 回复 Allen: 就是照着无人生还写出来的，阿加莎这部作品太精彩了。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;作者回复&#34;&gt;作者回复&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;小熊你精彩绝伦的评论。我能感受到你享受了这个故事：我为此无比快乐。&lt;/p&gt;&#xA;&lt;p&gt;——A-XII-XII&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
			</item>
			<item>
				<title>红米Note 12 Turbo刷机小记</title>
				<link>https://lunarithm.space/posts/tech/redmi-note-12-trubo-flash/</link>
				<pubDate>Tue, 26 Mar 2024 20:32:38 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/redmi-note-12-trubo-flash/</guid>
				<description>&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/lineageos-download-rom-nougat.jpg&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;引言&#34;&gt;引言&lt;/h2&gt;&#xA;&lt;p&gt;无法忍受日渐卡顿和GPS定位出问题的&lt;code&gt;Honor Play&lt;/code&gt;，我换上了&lt;code&gt;Redmi Note 12 Turbo&lt;/code&gt;，而前者也终于结束了它将近五年的服役&lt;/p&gt;&#xA;&lt;p&gt;正是看中了 &lt;strong&gt;易刷机&lt;/strong&gt; 和 &lt;strong&gt;性价比高&lt;/strong&gt; 的特点，我才选了这款手机。于是，搁置多年的玩（折）机（腾）之旅又将继续（&lt;/p&gt;&#xA;&lt;p&gt;自然得玩玩类原生系统了。我选择刷入&lt;a href=&#34;https://lineageos.org/&#34;&gt;LineageOS&lt;/a&gt;，已经有大佬上传了非官方的ROM，非常方便&lt;/p&gt;&#xA;&lt;h2 id=&#34;刷机&#34;&gt;刷机&lt;/h2&gt;&#xA;&lt;h3 id=&#34;解锁bootloader&#34;&gt;解锁Bootloader&lt;/h3&gt;&#xA;&lt;p&gt;可以看看这篇教程&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;绑定小米账号&#34;&gt;绑定小米账号&lt;/h4&gt;&#xA;&lt;p&gt;一般新机需要绑定小米账号并插入SIM卡 &lt;strong&gt;168小时（一周）&lt;/strong&gt; 后才能解锁Bootloader。绑定步骤如下：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;一、开启 开发者选项：1.我的设备 – 2.全部参数 – 3.连击MIUI版本&lt;/li&gt;&#xA;&lt;li&gt;二、1.更多设置 – 2.开发者选项 – 3.设备解锁状态 – 4.绑定账号和设备（需要插入SIM卡）&#xA;等待一周后进入下一步&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;解锁bl&#34;&gt;解锁BL&lt;/h4&gt;&#xA;&lt;p&gt;这一步最好是在Windows系统下完成，虚拟机或wine可能会出现问题&lt;/p&gt;&#xA;&lt;p&gt;去&lt;a href=&#34;https://www.miui.com/unlock/download.html&#34;&gt;小米官网&lt;/a&gt;下载解锁软件，&#xA;解压后运行 &lt;strong&gt;MiUsbDriver.exe&lt;/strong&gt; ，登录后连接手机，按提示进入&lt;code&gt;Fastboot&lt;/code&gt;模式（关机状态下按&lt;code&gt;电源键&lt;/code&gt;+&lt;code&gt;音量下键&lt;/code&gt;）操作即可&lt;/p&gt;&#xA;&lt;h3 id=&#34;刷入lineageos&#34;&gt;刷入LineageOS&lt;/h3&gt;&#xA;&lt;p&gt;建议优先参考ROM提供者的教程&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;下载&#34;&gt;下载&lt;/h4&gt;&#xA;&lt;p&gt;下载&lt;a href=&#34;https://miracle.girlswithout.top/adrian/lineage-21/marble/&#34;&gt;此页面&lt;/a&gt;中除&lt;code&gt;lineage-21.0-20240306-UNOFFICIAL-marble.zip.sha256sum&lt;/code&gt;外的所有文件，即：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;*-marble-boot.img&lt;/li&gt;&#xA;&lt;li&gt;*-marble-dtbo.img&lt;/li&gt;&#xA;&lt;li&gt;*-marble-recover.img&lt;/li&gt;&#xA;&lt;li&gt;*-marble-vendor_boot.img&lt;/li&gt;&#xA;&lt;li&gt;*-marble.zip&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;刷入&#34;&gt;刷入&lt;/h4&gt;&#xA;&lt;p&gt;需要有基本的&lt;a href=&#34;https://en.wikipedia.org/wiki/Fastboot&#34;&gt;fastboot&lt;/a&gt;和&lt;a href=&#34;https://en.wikipedia.org/wiki/Android_Debug_Bridge&#34;&gt;adb&lt;/a&gt;相关知识&lt;/p&gt;&#xA;&lt;p&gt;在Arch Linux下安装fastboot和adb：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;paru -S android-tools&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;将手机连接到PC，手机进入fastboot模式，然后依次刷入下面四个img：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;fastboot flash boot &amp;lt;boot&amp;gt;.img&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;fastboot flash dtbo &amp;lt;dtbo&amp;gt;.img&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;fastboot flash vendor_boot &amp;lt;vendor_boot&amp;gt;.img&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;fastboot flash recovery &amp;lt;recovery_filename&amp;gt;.img&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这里的&lt;code&gt;&amp;lt;boot&amp;gt;.img&lt;/code&gt;代表你所下载的 &lt;code&gt;*-marble-boot.img&lt;/code&gt;，其他几个同理&lt;/p&gt;</description>
			</item>
			<item>
				<title>“范式杯”2023牛客暑期多校训练营1 K - Subdivision</title>
				<link>https://lunarithm.space/posts/tech/nowcoder-k-subdivision/</link>
				<pubDate>Tue, 18 Jul 2023 15:16:44 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/nowcoder-k-subdivision/</guid>
				<description>&lt;h2 id=&#34;原题&#34;&gt;原题&lt;/h2&gt;&#xA;&lt;h3 id=&#34;题目描述&#34;&gt;题目描述&lt;/h3&gt;&#xA;&lt;p&gt;You are given a graph with $n$ vertices and $m$ undirected edges of length $1$. You can do the following operation on the graph for arbitrary times:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Choose an edge $(u,v)$ and replace it by two edges, $(u,w)$ and $(w,v)$, where $w$ is a newly inserted vertex. Both of the two edges are of length $1$.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;You need to find out the maximum number of vertices whose minimum distance to vertex $1$ is no more than $k$.&lt;/p&gt;</description>
			</item>
			<item>
				<title>为什么有些人需要生活的仪式感？</title>
				<link>https://lunarithm.space/posts/life/ritual-sense-of-life/</link>
				<pubDate>Tue, 27 Jun 2023 10:37:07 +0800</pubDate>
				<guid>https://lunarithm.space/posts/life/ritual-sense-of-life/</guid>
				<description>&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/107796562_p0.png&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;正文&#34;&gt;正文&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;By &lt;a href=&#34;https://space.bilibili.com/362075592&#34;&gt;尼古拉斯·八重嘤&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;“仪式感”这个词对各位而言绝不陌生，它可以体现在一顿饭前的“我开动啦”，可以体现在考试后没挂科吃顿小烧烤的庆祝，也可以体现在生日小蛋糕上插的一根蜡烛……这都是仪式感的体现。但我相信，生活毫无仪式感的人也不在少数，我也是其中之一。&lt;/p&gt;&#xA;&lt;p&gt;我先亮明一下立场，无仪式感并不是带有贬义的形容词，本身这个词语就是中性词，带有过多的偏见去看待是不理智的。无用的话我也不会多说，直接过渡到正文。&lt;/p&gt;&#xA;&lt;p&gt;我的无仪式感生活是怎么样的？记得自己的生日，但如果别人不主动，自己其实不庆祝也毫无关系，不会发朋友圈发动态，依然保持原有的生活作息；过年完全没有节日感，如果家中的长辈不张罗年夜饭的准备，吃外卖煮泡面也完全能够接受，只不过是个长一些的假期；对于自身取得的成就，无论大小，完全无感，并没有想要庆祝的想法，比如高考考上了985,只是像喝水吃饭一样稀松平常，不会有过多的情绪波动。&lt;/p&gt;&#xA;&lt;p&gt;说到这里，没错，鲜有情绪波动既是无仪式感的体现，也是其原因，生活中可能会有太多的事分散了自己的感情，比如繁重的课业，琐碎的工作，复杂的人际关系，都会消耗我们自身的情绪，导致人长期处于一种“burn out”的状态，看似不以物喜，不以己悲，实则情绪枯竭，无力反应。&lt;/p&gt;&#xA;&lt;p&gt;节日和生日的意义不在于有多么大的排场，多么奢侈的体验，在于为自己找一个时间，找一个理由去享受生活，给自己的身体和心灵都放一个假。也就是说，其本质并不是不可或缺，如果一个人在普普通通的日子里也有自己寻找快乐的理由和时间，平凡的世界也不缺少独属于自己的节日。&lt;/p&gt;&#xA;&lt;p&gt;人最大的悲哀莫过于“向之所欣，俯仰之间，已为陈迹”，任何快乐都是有保质期的，而“仪式感”的存在更像是提醒我们去关注这些快乐，去享受这些快乐，不要活得像个苦行僧，自我折磨却安慰自己说这是天将降大任于斯人。人生得意须尽欢，莫使金樽空对月，花钱有花钱的快乐，不花钱有不花钱的快乐，快乐的意义在于给人带来快乐，忘却暂时的忧愁。“我没钱”和“我没时间”从来不是拒绝感受快乐的借口，读一本书可以感到快乐，思考哲学可以感到快乐，看个相声可以感到快乐，吃顿好的也可以感到快乐。&lt;/p&gt;&#xA;&lt;p&gt;人生短暂，不过百年，快乐与痛苦交织的生活是这世界上大多数人的主旋律，没有痛苦的快乐不是快乐，没有快乐的痛苦也不是痛苦。每个人都有身体的桎梏，但心灵的束缚却不是外人所能控制的，“因寄所托，放浪形骸之外”的乐趣未尝不可寻得。&lt;/p&gt;&#xA;&lt;p&gt;祝好，回见。&lt;/p&gt;&#xA;&lt;h2 id=&#34;夹带私货&#34;&gt;夹带私货&lt;/h2&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/2023-06-06_00.00.18.png&#34;&#xA;  alt=&#34;我的仪式感&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/2023-06-06_00.00.39.png&#34;&#xA;  alt=&#34;寄逍遥于MC&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Codeforces Round 874 (Div. 3) D.Flipper 题解</title>
				<link>https://lunarithm.space/posts/tech/contest-1833-d/</link>
				<pubDate>Thu, 25 May 2023 21:56:26 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/contest-1833-d/</guid>
				<description>&lt;h2 id=&#34;题目&#34;&gt;题目&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://codeforces.com/contest/1833/problem/D&#34;&gt;D. Flipper&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;题意：给出一个 $ n $ 排列&lt;code&gt;p[]&lt;/code&gt;，选择一个区间&lt;code&gt;[l, r]&lt;/code&gt; (l &amp;lt;= r)，构造一个新的排列：&lt;code&gt;a[r+1 : ] + a[l : r].reverse() + a[1 : l]&lt;/code&gt; (在这里我用 Python 切片表示，即左闭右开区间)，求能构造出的字典序最大的排列&lt;/p&gt;&#xA;&lt;h2 id=&#34;分析&#34;&gt;分析&lt;/h2&gt;&#xA;&lt;p&gt;假设答案用 $ ans_i $ 表示&lt;/p&gt;&#xA;&lt;p&gt;初步分析，当 $ r = n $ 时，$ans_1 = r_{n}$，否则 $ans_1 = r_{n+1}$。为了保证字典序最大，我们需要选取尽可能大的 $ r $&lt;/p&gt;&#xA;&lt;p&gt;易知当 $ p_1 = n $ 时，$ r $ 应选取 $ n-1 $，否则选取 $ n $&lt;/p&gt;&#xA;&lt;p&gt;确定 $ r $ 后再来看 $ l $，这里有个技巧：先输出&lt;code&gt;a[r+1 : ] + a[r]&lt;/code&gt;，再从&lt;code&gt;a[r-1]&lt;/code&gt;开始往前遍历，只要 &lt;code&gt;a[i] &amp;lt; a[1]&lt;/code&gt;（说明如果 $ l $ 选 $ i $ 的话，操作之后字典序反而变小，所以 $ l $ 选 $ i+1 $），就马上输出 &lt;code&gt;a[1 : i+1]&lt;/code&gt; (注意这里还是左闭右开区间)&lt;/p&gt;</description>
			</item>
			<item>
				<title>World, Hello!</title>
				<link>https://lunarithm.space/posts/tech/worldhello/</link>
				<pubDate>Wed, 24 May 2023 22:51:26 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/worldhello/</guid>
				<description>&lt;p&gt;正式拥有了属于自己的域名！&lt;/p&gt;&#xA;&lt;p&gt;有了域名后，博客的曝光率也会大一些了罢（大嘘）&lt;/p&gt;&#xA;&lt;p&gt;Anyway，在我的博客生涯中，这确实可以算是个有意义的节点&lt;/p&gt;&#xA;&lt;p&gt;于是&amp;hellip;&amp;hellip;&lt;/p&gt;&#xA;&lt;h3 id=&#34;world-hello&#34;&gt;World, hello&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-Rust&#34; data-lang=&#34;Rust&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fn&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;greet_world&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; southern_germany &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Grüß Gott!&amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; chinese &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;世界，你好&amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; english &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;World, hello&amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; japanese &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;世界よ、こんにちは&amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt; regions &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [southern_germany, chinese, english, japanese];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; region &lt;span style=&#34;color:#66d9ef&#34;&gt;in&lt;/span&gt; regions.iter() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;println!&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;region);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fn&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    greet_world();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;灵感来自：&lt;a href=&#34;https://course.rs/first-try/hello-world.html&#34;&gt;不仅仅是 Hello world&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div style=&#34;text-align: center;&#34;&gt;&#xA;  &lt;img src=&#34;https://lunarithm.space/images/world-hello.jpg&#34; alt=&#34;Koishi&#34; width=&#34;40%&#34;&gt;&#xA;&lt;/div&gt;</description>
			</item>
			<item>
				<title>ACM生涯，堂堂完结！</title>
				<link>https://lunarithm.space/posts/life/end-of-my-acm/</link>
				<pubDate>Wed, 17 May 2023 22:43:27 +0800</pubDate>
				<guid>https://lunarithm.space/posts/life/end-of-my-acm/</guid>
				<description>&lt;h2 id=&#34;20221211---20230517&#34;&gt;2022.12.11 - 2023.05.17&lt;/h2&gt;&#xA;&lt;p&gt;嘛，就像是一场梦。&lt;/p&gt;&#xA;&lt;p&gt;新生赛第六进入集训队的欣喜、codeforces 的下马威、寒假牛客训练营的坐牢、下午的 uva 刷题、集训的或是集体坐牢或是轮流 A 题、div.3 个人最好记录的自得、2023 GDCPC SZUT 的两日游（隔音奇差、每隔一个小时就被吵醒一次的屑酒店，GDCPC 的打铁）……&lt;/p&gt;&#xA;&lt;p&gt;竞赛这条路还是不太适合我啊（笑）&lt;/p&gt;&#xA;&lt;h2 id=&#34;后记&#34;&gt;后记（？）&lt;/h2&gt;&#xA;&lt;p&gt;没有什么遗憾 &lt;del&gt;（flag，快进到后知后觉）&lt;/del&gt; ，不过心情也是有一丝复杂。至少，我也在ACM的大门前往里看了几眼，仰望过高峰 _(:з」∠)_&lt;/p&gt;&#xA;&lt;p&gt;年仅半年的ACMer生涯，堂堂完结！&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;复活&#34;&gt;复！活！&lt;/h2&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/%e5%a4%8d%e6%b4%bb.jpg&#34;&#xA;  alt=&#34;复活&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;TNND，真是被看扁了呀！&lt;/p&gt;&#xA;&lt;p&gt;爱的力量，是无限的！（筋肉魔理沙.jpg）&lt;/p&gt;&#xA;&lt;p&gt;嘛，大概是一时脑抽了——毕竟长时间的高压训练和GDCPC的出师不利也挺打击学习的热情的。不过，现在我的看法是：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;只要我在无数次的 WA, TLE 后的 AC 仍能欣喜若狂，我就能打ACM.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;ACMer 生涯，堂堂连载！&lt;/p&gt;&#xA;&lt;p&gt;2023.05.18——&lt;/p&gt;&#xA;&lt;h2 id=&#34;acm生涯堂堂休刊&#34;&gt;ACM生涯，堂堂休刊！&lt;/h2&gt;&#xA;&lt;p&gt;看到已经到了旅途的终点了。&lt;/p&gt;&#xA;&lt;p&gt;一年的 ACMer 生涯，说长不长，说短不短——有欢笑，有泪水；有成功，有失败；有喜悦，有失望……牺牲了几乎所有的课余时间，换来的是什么呢？&lt;/p&gt;&#xA;&lt;p&gt;是了，队友——两位很好的队友，即便训练再苦再累、比赛再坐牢，仍能相互鼓励、笑对挑战——但我感觉自己亏欠了他们，因为是我首先提出离队的，在这里向他们道谢，谢谢一直以来的关心和宽容。&lt;/p&gt;&#xA;&lt;p&gt;其次是算法能力和抗压能力。长期的算法学习，使我面对算法题时，哪怕是从未见过的题型，也能给出大致方向，编程能力更是完全不虚；另一方面， &lt;del&gt;毕竟都见过 XCPC 这种大场面 XD，&lt;/del&gt; 面对压力场景，也能游刃有余。&lt;/p&gt;&#xA;&lt;p&gt;追风赶月莫停留，平芜尽处是春山。&lt;/p&gt;&#xA;&lt;p&gt;——2023.09.17&lt;/p&gt;</description>
			</item>
			<item>
				<title>Codeforces Round 867 (Div. 3) 题解</title>
				<link>https://lunarithm.space/posts/tech/contest-1822/</link>
				<pubDate>Tue, 25 Apr 2023 15:59:32 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/contest-1822/</guid>
				<description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;p&gt;题目链接：&lt;a href=&#34;https://codeforces.com/contest/1822&#34;&gt;Codeforces Round 867 (Div. 3)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;入坑以来打的最好的一次。特写此题解，记录一下心得&lt;/p&gt;&#xA;&lt;p&gt;A 题为完整代码，其他题目只有核心代码（省略了模板）&lt;/p&gt;&#xA;&lt;h2 id=&#34;正文&#34;&gt;正文&lt;/h2&gt;&#xA;&lt;h3 id=&#34;a-tubetube-feed&#34;&gt;A. TubeTube Feed&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;题意：给出数组&lt;code&gt;a[]&lt;/code&gt;（代表视频长度，单位：s）和&lt;code&gt;b[]&lt;/code&gt;（代表视频的“entertainment value”，我们用变量&lt;code&gt;fun&lt;/code&gt;来存储其最大值），整数&lt;code&gt;t&lt;/code&gt;（午餐时长）。对于一个视频，可以跳过（消耗1s）,也可以决定就看这个视频，但要保证消耗的时间和视频时长之和不超过&lt;code&gt;t&lt;/code&gt;。求选择观看哪一个视频（求出&lt;code&gt;a[]&lt;/code&gt;的下标），使得&lt;code&gt;fun&lt;/code&gt;最大&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;根据题意模拟即可&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-C++&#34; data-lang=&#34;C++&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;bits/stdc++.h&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#define _all(x) (x).begin(), (x).end()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#define _abs(x) ((x &amp;gt;= 0) ? (x) : (-x))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#define PII pair&amp;lt;int, int&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#define PLL pair&amp;lt;LL, LL&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#define PDD pair&amp;lt;double, double&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#define fi first&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#define se second&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;typedef&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;long&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;long&lt;/span&gt; LL;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;typedef&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;long&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;double&lt;/span&gt; LD;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;typedef&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;unsigned&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;long&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;long&lt;/span&gt; ULL;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; INF &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0x3f3f3f3f&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;double&lt;/span&gt; PI &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; acos(&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1.0&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;namespace&lt;/span&gt; std;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; N &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;50&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; n, t, a[N], b[N];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;init&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cin &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; n &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; t;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;; i &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; n; i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) cin &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; a[i];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;; i &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; n; i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) cin &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; b[i];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;solve&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; ans &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, fun &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;; i &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; n; i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (a[i] &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; t)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (fun &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; b[i]) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                ans &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; i;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                fun &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; b[i];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        t&lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cout &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; ans &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    IOS&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; test_case;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cin &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; test_case;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; (test_case&lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        init();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        solve();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;b-karina-and-array&#34;&gt;B. Karina and Array&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;题意：给出一个数组，找到两个数，使得这两个数的积最大&lt;/p&gt;</description>
			</item>
			<item>
				<title>GDCPC 2022 E 黑白大陆</title>
				<link>https://lunarithm.space/posts/tech/gdcpc-2022-e/</link>
				<pubDate>Tue, 11 Apr 2023 13:17:06 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/gdcpc-2022-e/</guid>
				<description>&lt;h2 id=&#34;题目&#34;&gt;题目&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;代码长度限制&lt;/strong&gt; 16 KB&lt;br&gt;&#xA;&lt;strong&gt;Java (javac)&lt;/strong&gt;&lt;br&gt;&#xA;时间限制 2000 ms&lt;br&gt;&#xA;内存限制 512 MB&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;其他编译器&lt;/strong&gt;&lt;br&gt;&#xA;时间限制 1000 ms&lt;br&gt;&#xA;内存限制 512 MB&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;毕业出了魔法学院的 YahAHa 回到了他的家乡&amp;mdash;黑白大陆。&lt;/p&gt;&#xA;&lt;p&gt;黑白大陆是一块由 $n \times m$ 个格子组成的方形大陆，在每一个格子上标有黑色或白色，在黑白大陆上，不同颜色的相邻格子之间时常会发生战争。&lt;/p&gt;&#xA;&lt;p&gt;热爱和平的 YahAHa 想要把黑白大陆统一成象征和平的白色。&lt;/p&gt;&#xA;&lt;p&gt;YahAHa 会一种神奇的魔法，他可以把&lt;strong&gt;连通的白色区域变成黑色&lt;/strong&gt;，&lt;strong&gt;连通的黑色区域变成白色&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;YahAHa 不想消耗太多法力，于是他想知道，把整个黑白大陆变成白色最少需要使用几次魔法。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&lt;strong&gt;输入格式&lt;/strong&gt;&lt;br&gt;&#xA;第一行两个整数 $n, m$（$1 \leq n, m \leq 50$）表示黑白大陆的大小。&lt;br&gt;&#xA;接下来 $n$ 行，每行 $m$ 个整数 $a_{i,j}$ 表示黑白大陆每一个格子的颜色。（$0 \leq a_{i,j} \leq 1$，其中 $0$ 表示代表和平的白色，$1$ 表示黑色）&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;输出格式&lt;/strong&gt;&lt;br&gt;&#xA;一行一个整数，表示把整个黑白大陆变成白色最少需要使用几次魔法。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;输入样例&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;3 3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1 0 1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;0 1 0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1 0 1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;输出样例&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Allen的动态规划基础</title>
				<link>https://lunarithm.space/posts/tech/allen-dynamic-programming/</link>
				<pubDate>Mon, 13 Mar 2023 21:58:57 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/allen-dynamic-programming/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;来点BGM&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;center&gt;&lt;iframe frameborder=&#34;no&#34; border=&#34;0&#34; marginwidth=&#34;0&#34; marginheight=&#34;0&#34; width=400 height=86 src=&#34;//music.163.com/outchain/player?type=2&amp;id=28990792&amp;auto=0&amp;height=66&#34;&gt;&lt;/iframe&gt;&lt;/center&gt;&#xA;&lt;h2 id=&#34;引言&#34;&gt;引言&lt;/h2&gt;&#xA;&lt;h3 id=&#34;概念&#34;&gt;概念&lt;/h3&gt;&#xA;&lt;p&gt;&lt;strong&gt;动态规划（英语：Dynamic programming，简称DP）&lt;/strong&gt; 是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的，通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。&lt;/p&gt;&#xA;&lt;p&gt;动态规划常常适用于有&lt;strong&gt;重叠子问题&lt;/strong&gt;和&lt;strong&gt;最优子结构&lt;/strong&gt;性质的问题，动态规划方法所耗时间往往远少于朴素解法。&lt;/p&gt;&#xA;&lt;h3 id=&#34;适用情况&#34;&gt;适用情况&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;最优子结构性质&lt;/strong&gt;。&#xA;如果问题的最优解所包含的子问题的解也是最优的，我们就称该问题具有最优子结构性质（即满足最优化原理）。最优子结构性质为动态规划算法解决问题提供了重要线索。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;无后效性&lt;/strong&gt;。即子问题的解一旦确定，就不再改变，不受在这之后、包含它的更大的问题的求解决策影响。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;子问题重叠性质&lt;/strong&gt;。子问题重叠性质是指在用递归算法自顶向下对问题进行求解时，每次产生的子问题并不总是新问题，有些子问题会被重复计算多次。动态规划算法正是利用了这种子问题的重叠性质，对每一个子问题只计算一次，然后将其计算结果保存在一个表格中，当再次需要计算已经计算过的子问题时，只是在表格中简单地查看一下结果，从而获得较高的效率，降低了时间复杂度。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;——From &lt;a href=&#34;https://zh.wikipedia.org/wiki/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92&#34;&gt;维基百科·动态规划&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;动态规划其实不是一种具体的算法，而是解决问题的思想和方法。简单来说，动态规划就是把问题分解成一个个子问题，通过求子问题的最优解得到全局最优解（这就是所谓的&lt;strong&gt;最优子结构（optimal substructure）&lt;/strong&gt;）&lt;/p&gt;&#xA;&lt;h2 id=&#34;正文&#34;&gt;正文&lt;/h2&gt;&#xA;&lt;h3 id=&#34;状态和状态转移方程&#34;&gt;状态和状态转移方程&lt;/h3&gt;&#xA;&lt;p&gt;动态规划的核心是&lt;strong&gt;状态&lt;/strong&gt;和&lt;strong&gt;状态转移方程&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;动态规划中状态就是子问题的结果，而本阶段的状态往往是上一阶段状态和上一阶段决策的结果，描述这种前后阶段关系的方程，就是&lt;strong&gt;状态转移方程&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;如 $ f(i, j) = \max \{f(i, k) , f(k+1, j)+1\} $ 就是一个状态转移方程&lt;/p&gt;&#xA;&lt;p&gt;来看看几道例题&lt;/p&gt;&#xA;&lt;h3 id=&#34;数字三角形&#34;&gt;数字三角形&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;题目：有一个由非负整数组成的三角形，第一行只有一个数。从第一行的数开始，每次可以往左下或右下走一格，直到走到最下行，把沿途经过的数加起来，求怎么走才能使得数字之和最大？&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;数字三角形如下所示：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;      1&#xA;     / \&#xA;    3   2&#xA;   / \ / \&#xA;  4   10  1&#xA; / \ / \ / \&#xA;4   3   2   20&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;分析&#34;&gt;分析&lt;/h3&gt;&#xA;&lt;h4 id=&#34;贪心法&#34;&gt;贪心法？&lt;/h4&gt;&#xA;&lt;p&gt;按照贪心法，求出的路径为：&lt;code&gt;1 --&amp;gt; 3 --&amp;gt; 10 --&amp;gt; 3&lt;/code&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Allen的图论基础</title>
				<link>https://lunarithm.space/posts/tech/allen-graph/</link>
				<pubDate>Sun, 26 Feb 2023 15:37:08 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/allen-graph/</guid>
				<description>&lt;h2 id=&#34;引言&#34;&gt;引言&lt;/h2&gt;&#xA;&lt;h3 id=&#34;什么是图论&#34;&gt;什么是图论？&lt;/h3&gt;&#xA;&lt;p&gt;&lt;strong&gt;图论&lt;/strong&gt;是离散数学的一个十分有趣的分支，以 &lt;strong&gt;“图”&lt;/strong&gt; 为主要研究对象，研究图的内在结构，探索其中的组合性质、代数性质和拓扑性质，找到满足条件的“好图”等。比如大名鼎鼎的七桥问题（欧拉回路）就属于图论的范畴&lt;/p&gt;&#xA;&lt;h3 id=&#34;那么图又是什么呢&#34;&gt;那么，图又是什么呢？&lt;/h3&gt;&#xA;&lt;p&gt;简单来说，&lt;strong&gt;图（Graph）&lt;/strong&gt; 是由多个点以及连接这些点的线所构成的对象。具体定义详见&lt;a href=&#34;https://zh.wikipedia.org/wiki/%E5%9B%BE_(%E6%95%B0%E5%AD%A6)&#34;&gt;维基百科·图&lt;/a&gt;、&lt;a href=&#34;https://oi-wiki.org/graph/concept/&#34;&gt;OI Wiki·图论相关概念&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/Allen-graph-6n-graf.svg&#34;&#xA;  alt=&#34;图&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;在计算机中，图也是一种相当重要的数据结构，最短路、最小生成树、网络流等问题往往需要图来实现&lt;/p&gt;&#xA;&lt;h2 id=&#34;图的存储&#34;&gt;图的存储&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;本文约定用 $ n $ 代指图的点数，用 $ m $ 代指图的边数，用 $ d^+(u) $ 代指点 $ u $ 的出度，即以 $ u $ 为出发点的边数&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;邻接矩阵&#34;&gt;邻接矩阵&lt;/h3&gt;&#xA;&lt;h4 id=&#34;方法&#34;&gt;方法&lt;/h4&gt;&#xA;&lt;p&gt;从图的概念我们知道，图由点集和边集组成。而我们可以用一个二维数组&lt;code&gt;G&lt;/code&gt;来存边，&lt;code&gt;G[u][v] = 1&lt;/code&gt;表示存在从&lt;code&gt;u&lt;/code&gt;到&lt;code&gt;v&lt;/code&gt;的边。如果边带权值&lt;code&gt;w&lt;/code&gt;，可以令&lt;code&gt;G[u][v] = w&lt;/code&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-C++&#34; data-lang=&#34;C++&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;cstring&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;namespace&lt;/span&gt; std;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; maxn &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1000&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; n, m;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;bool&lt;/span&gt; vis[maxn];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; G[maxn][maxn];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// 查找边(u,v)是否存在&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;bool&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;find_edge&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; u, &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; v) { &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; G[u][v]; }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;dfs&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; u) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (vis[u]) &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    vis[u] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; true;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cout &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; u &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39; &amp;#39;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; v &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;; v &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; n; v&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (G[u][v]) dfs(v);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;// 一共有n个点,m条边&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cin &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; n &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; m;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;; i &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; m; i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; u, v, w;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        cin &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; u &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; v &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; w;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        G[u][v] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; w;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cout &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; endl;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;; i &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; n; i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        memset(vis, false, &lt;span style=&#34;color:#66d9ef&#34;&gt;sizeof&lt;/span&gt;(vis));&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        dfs(i);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        cout &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cout &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; endl;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cout &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; find_edge(&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; endl;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cout &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; find_edge(&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; endl;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;/* 输入示例：&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;5 6&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;1 2 1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;2 3 2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;1 3 3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;3 1 10&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;3 4 3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;5 2 7&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;*/&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;例题：&lt;a href=&#34;https://www.luogu.com.cn/problem/P1359&#34;&gt;P1359 租用游艇&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Allen的初等数论基础</title>
				<link>https://lunarithm.space/posts/tech/allen-number-theory/</link>
				<pubDate>Sat, 28 Jan 2023 20:42:35 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/allen-number-theory/</guid>
				<description>&lt;h2 id=&#34;引言&#34;&gt;引言&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;**“数学是科学的皇后，数论是数学的皇后。”&#xA;——卡尔·弗里德里希·高斯**&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;del&gt;“有哪些优秀的百合同人作品？”&#xA;——邓煜&lt;/del&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;数论（英语：Number theory）&lt;/strong&gt; 是纯粹数学的分支之一，主要研究整数的性质。被誉为“最纯”的数学领域。&lt;/p&gt;&#xA;&lt;p&gt;——From &lt;a href=&#34;https://zh.wikipedia.org/wiki/%E6%95%B0%E8%AE%BA&#34;&gt;中文Wiki·数论&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;初等数论&lt;/strong&gt;意指使用不超过高中程度的初等代数处理的数论问题，最主要的工具包括整数的整除性与同余。&lt;/p&gt;&#xA;&lt;p&gt;——From &lt;a href=&#34;https://zh.wikipedia.org/wiki/%E5%88%9D%E7%AD%89%E6%95%B8%E8%AB%96&#34;&gt;中文Wiki·初等数论&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;回顾小学、初中的学习，很多时候都是在与&lt;strong&gt;集合与在该集合上的运算&lt;/strong&gt;打交道：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;小学：我们主要研究自然数集/有理数集和运算（加减乘除）&lt;/li&gt;&#xA;&lt;li&gt;中学：我们主要研究实数集中的各种运算（可把函数与映射等等单元操作或多元操作称为运算）&lt;/li&gt;&#xA;&lt;li&gt;甚至上到大学，我们学习的高数也是一样的&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;初等数论是研究数的规律，特别是整数性质的数学分支。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;在计算机中没有真正实数存在，所以整数的研究在计算机中至关重要，有了初等数论的一些性质，我们就可以用更优秀的复杂度（经常是$ O(1) $）解决问题——By zm&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;回想小学就接触到的思考题，很多都是研究集合内元素的规律和运算——也就是说，我们早就接触到数论了，只是没有以严格的数学定义来研究它。而现在，让我们来一窥数学皇后之美吧！&lt;/p&gt;&#xA;&lt;h2 id=&#34;质数与质因数&#34;&gt;质数与质因数&lt;/h2&gt;&#xA;&lt;p&gt;按照数论的定义，正整数可以分为质数（素数）和合数，其中质数的定义是：&#xA;&lt;strong&gt;在大于1的自然数中，除了1和该数自身外，无法被其他自然数整除的数&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;为什么是1呢？如果1是质数又会怎样呢？这要牵涉到&lt;strong&gt;唯一分解定理&lt;/strong&gt;了：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;每个大于1的自然数，要么本身就是质数，要么可以写为2个或以上的质数的积，而且这些质因子按大小排列之后，写法仅有一种方式&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;例如：&lt;/p&gt;&#xA;&lt;p&gt;$ 24 = 2 \times 2 \times 2 \times 3 $&lt;/p&gt;&#xA;&lt;p&gt;$ 68 = 2 \times 2 \times 17 $&lt;/p&gt;&#xA;&lt;p&gt;假如1是质数，唯一分解定理就不成立了。这体现了数学定义的严谨性：&lt;strong&gt;公理给出制约，制约创造结构&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;gcd与lcm&#34;&gt;gcd与lcm&lt;/h3&gt;&#xA;&lt;p&gt;我们定义最大公约数为gcd，最小公倍数为lcm。例如:&lt;/p&gt;&#xA;&lt;p&gt;$ gcd(24, 32) = 8 $， 可简记作 $ 8 = d(24, 32) $&lt;/p&gt;&#xA;&lt;p&gt;$ lcm(24, 32) = 96 $&lt;/p&gt;&#xA;&lt;h4 id=&#34;欧几里得算法&#34;&gt;欧几里得算法&lt;/h4&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;gcd.cpp&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-C++&#34; data-lang=&#34;C++&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// 欧几里得算法(Euclid algorithm)  最大公约数&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;gcd&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; a, &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; b) { &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; b &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;?&lt;/span&gt; a : gcd(b, a&lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt;b); }  &lt;span style=&#34;color:#75715e&#34;&gt;// 递归&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;gcd2&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; a, &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; b) {  &lt;span style=&#34;color:#75715e&#34;&gt;// 迭代&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; t;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; (b) { t &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; a; a &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; b; b &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; t&lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt;b; }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; a;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;欧几里得算法拓展&#34;&gt;欧几里得算法拓展&lt;/h4&gt;&#xA;&lt;h3 id=&#34;唯一分解定理&#34;&gt;唯一分解定理&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;lcm.cpp&lt;/p&gt;</description>
			</item>
			<item>
				<title>路径寻找-八数码问题</title>
				<link>https://lunarithm.space/posts/tech/8-nums/</link>
				<pubDate>Fri, 27 Jan 2023 15:47:55 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/8-nums/</guid>
				<description>&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/8_num_cover.jpg&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;题目&#34;&gt;题目&lt;/h2&gt;&#xA;&lt;p&gt;玩过华容道吧？或者是Win7自带小挂件的数字滑块游戏？八数码问题就是从这个游戏引申出来的：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;给定编号为1～8的正方形滑块，排成 $ 3 \times 3 $ ，其中有一个格子留空。每次操作可以把一个与空格相邻滑块移动到空格内。给定初始局面和目标局面（空格用0表示），求最少移动步数，若无法到达目标局面，则输出&lt;code&gt;-1&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;分析&#34;&gt;分析&lt;/h2&gt;&#xA;&lt;p&gt;可以看出，这也是BFS求最短路。但要注意判重，即&lt;strong&gt;避免同一个访问多次&lt;/strong&gt;，否则会相当浪费时间和空间&lt;/p&gt;&#xA;&lt;p&gt;对于本题， &lt;strong&gt;哈希（Hash）&lt;/strong&gt; 是一种可行而高效的方法。简单来说，就是设计一个函数 $ h(x) $ ，把任意结点$ x $映射到 $ [0, M-1] $ 内的整数即可，其中$ M $根据可用内存大小自选。在理想情况下，只需开一个大小为$ M $的数组就能判重。但有时候不同结点的哈希值可能相同，就需要把哈希值相同的状态组织成链表&lt;/p&gt;&#xA;&lt;h2 id=&#34;代码&#34;&gt;代码&lt;/h2&gt;&#xA;&lt;p&gt;出自紫书&lt;/p&gt;&#xA;&lt;p&gt;有几处值得学习的小技巧，比如定义“状态”类型、用两个数组来模拟单向链表、用“引用”简化代码等&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;eight_nums.cpp&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-C++&#34; data-lang=&#34;C++&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;cstring&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;namespace&lt;/span&gt; std;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;typedef&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; State[&lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;];  &lt;span style=&#34;color:#75715e&#34;&gt;// 定义“状态”类型&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; MAXSTATE &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1e6&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;State st[MAXSTATE], goal;  &lt;span style=&#34;color:#75715e&#34;&gt;// 状态数组。所有状态都保存在这里&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; dist[MAXSTATE];  &lt;span style=&#34;color:#75715e&#34;&gt;// 距离数组&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; dx[] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; dy[] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; MAX_HASH_SIZE &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1e6&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; head[MAX_HASH_SIZE], next_[MAXSTATE];  &lt;span style=&#34;color:#75715e&#34;&gt;// 模拟单向链表&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;init_lookup_table&lt;/span&gt;() {  &lt;span style=&#34;color:#75715e&#34;&gt;// 初始化查找表&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    memset(head, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;sizeof&lt;/span&gt;(head));&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;myhash&lt;/span&gt;(State &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;s) {  &lt;span style=&#34;color:#75715e&#34;&gt;// 哈希函数；&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; v &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;; i &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;; i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) v &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; v &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; s[i];  &lt;span style=&#34;color:#75715e&#34;&gt;// 把9个数字合成9位数&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; v &lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt; MAX_HASH_SIZE;  &lt;span style=&#34;color:#75715e&#34;&gt;// 确保hash函数是不超过hash表的大小的非负整数&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;try_to_insert&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; s) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; h &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; myhash(st[s]);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; u &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; head[h];  &lt;span style=&#34;color:#75715e&#34;&gt;// 从表头开始查找链表&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; (u) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (memcmp(st[u], st[s], &lt;span style=&#34;color:#66d9ef&#34;&gt;sizeof&lt;/span&gt;(st[s])) &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;  &lt;span style=&#34;color:#75715e&#34;&gt;// 找到了，插入失败&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        u &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; next_[u];  &lt;span style=&#34;color:#75715e&#34;&gt;// 顺着链表继续找&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    next_[s] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; head[h];  &lt;span style=&#34;color:#75715e&#34;&gt;// 插入到链表中&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    head[h] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; s;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;bfs&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;// BFS，返回目标状态在st数组下标&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    init_lookup_table();  &lt;span style=&#34;color:#75715e&#34;&gt;// 初始化查找表&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; front &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, rear &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;;  &lt;span style=&#34;color:#75715e&#34;&gt;// 不使用下标0，因为0被看作“不存在”&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; (front &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; rear) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        State &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;s &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; st[front];  &lt;span style=&#34;color:#75715e&#34;&gt;// 用“引用”简化代码&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (memcmp(goal, s, &lt;span style=&#34;color:#66d9ef&#34;&gt;sizeof&lt;/span&gt;(s)) &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; front;  &lt;span style=&#34;color:#75715e&#34;&gt;// 找到目标状态，成功返回&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; z;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (z &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;; z &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;; z&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;s[z]) &lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;;  &lt;span style=&#34;color:#75715e&#34;&gt;// 找“0”的位置&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; z&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;, y &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; z&lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;;  &lt;span style=&#34;color:#75715e&#34;&gt;// 获取行列编号（0~2）&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; d &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;; d &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;; d&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; newx &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; dx[d];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; newy &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; y &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; dy[d];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; newz &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; newx &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; newy;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (newx &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; newx &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; newy &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; newy &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;) {  &lt;span style=&#34;color:#75715e&#34;&gt;// 如果移动合法&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                State &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;t &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; st[rear];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                memcpy(&lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;t, &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;s, &lt;span style=&#34;color:#66d9ef&#34;&gt;sizeof&lt;/span&gt;(s));  &lt;span style=&#34;color:#75715e&#34;&gt;// 拓展新结点&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                t[newz] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; s[z];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                t[z] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; s[newz];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                dist[rear] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; dist[front] &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;;  &lt;span style=&#34;color:#75715e&#34;&gt;// 更新新结点的距离值&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (try_to_insert(rear)) rear&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;;  &lt;span style=&#34;color:#75715e&#34;&gt;// 如果成功插入查找表，修改队尾指针&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        front&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;;  &lt;span style=&#34;color:#75715e&#34;&gt;// 拓展完毕后在修改队首指针&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;  &lt;span style=&#34;color:#75715e&#34;&gt;// 失败&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#ifdef LOCAL&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    freopen(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;eight_nums.in&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;r&amp;#34;&lt;/span&gt;, stdin);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    freopen(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;eight_nums_.out&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;w&amp;#34;&lt;/span&gt;, stdout);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#endif&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ios&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;sync_with_stdio(false);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cin.tie(&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cout.tie(&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;; i &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;; i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) cin &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; st[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;][i];  &lt;span style=&#34;color:#75715e&#34;&gt;// 起始状态&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;; i &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;9&lt;/span&gt;; i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) cin &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; goal[i];  &lt;span style=&#34;color:#75715e&#34;&gt;// 目标状态&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; ans &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bfs();  &lt;span style=&#34;color:#75715e&#34;&gt;// 返回目标状态的下标&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (ans &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;) cout &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; dist[ans] &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; endl;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; cout &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; endl;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;思考&#34;&gt;思考&lt;/h2&gt;&#xA;&lt;p&gt;除了哈希外，还有很多方法，比如编码、A*、STL set（效率低，仅作“跳板”）等，等学到了就来试试（&lt;/p&gt;</description>
			</item>
			<item>
				<title>UVa 12166 Equilibrium Mobile</title>
				<link>https://lunarithm.space/posts/tech/uva12166/</link>
				<pubDate>Thu, 12 Jan 2023 16:57:44 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/uva12166/</guid>
				<description>&lt;p&gt;题目：&lt;a href=&#34;https://www.luogu.com.cn/problem/UVA12166&#34;&gt;洛谷·UVa 12166&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;题意&#34;&gt;题意&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;给一个深度不超过16的二叉树，代表一个天平。每根杆都悬挂在中央，每个秤砣的重量已知。至少修改多少个秤砣的重量才能让天平平衡？&lt;br&gt;——刘汝佳《算法竞赛入门基础》&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;分析&#34;&gt;分析&lt;/h2&gt;&#xA;&lt;p&gt;乍一看似乎无从下手，我们可以先来研究一下平衡的天平具有什么性质&lt;/p&gt;&#xA;&lt;p&gt;把每一个子天平都看作一个秤砣，若天平平衡，则其总重量等于其中一个秤砣的重量乘以2&lt;/p&gt;&#xA;&lt;p&gt;设天平的深度为$ depth $。通过下图我们发现：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/uva12166.jpg&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;$ 天平的总重量 = 任意一个秤砣的重量（包括把子天平看作秤砣） \times 2^{depth} $&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;于是只要读入天平，记录 $ num \times 2^{depth} $ （&lt;code&gt;num&lt;/code&gt;为秤砣的重量）重复的次数，结果为：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;$ 最少修改数 = 结点总数 - max(num \times 2^{depth}重复的次数) $&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;利用STL的map映射可以很方便地解决本题&lt;/p&gt;&#xA;&lt;h2 id=&#34;代码&#34;&gt;代码&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-C++&#34; data-lang=&#34;C++&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#define LL long long&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;string&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;algorithm&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;cctype&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;map&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;namespace&lt;/span&gt; std;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;map&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;LL, &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; cnt;  &lt;span style=&#34;color:#75715e&#34;&gt;// map映射：记录num*2**depth重复的次数&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;solve&lt;/span&gt;(string s) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; depth &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, sum &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, maxn &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;  &lt;span style=&#34;color:#75715e&#34;&gt;// 二叉树深度，结点总数，不需更改的结点数&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; len &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; s.length();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;; i &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; len; i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (s[i] &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;[&amp;#39;&lt;/span&gt;) depth&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (s[i] &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;]&amp;#39;&lt;/span&gt;) depth&lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (isdigit(s[i])) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            LL num &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (; isdigit(s[i]); i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) { num &lt;span style=&#34;color:#f92672&#34;&gt;*=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;; num &lt;span style=&#34;color:#f92672&#34;&gt;+=&lt;/span&gt; s[i] &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;0&amp;#39;&lt;/span&gt;; }  &lt;span style=&#34;color:#75715e&#34;&gt;// 字符转整数&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            i&lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;;  &lt;span style=&#34;color:#75715e&#34;&gt;// 防止for循环导致的差1错误&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            sum&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            cnt[num &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; depth]&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;;  &lt;span style=&#34;color:#75715e&#34;&gt;// cnt[num*2**depth]++&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            maxn &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; max(maxn, cnt[num &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; depth]);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; sum &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; maxn;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#ifdef LOCAL&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    freopen(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;uva12166.in&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;r&amp;#34;&lt;/span&gt;, stdin);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    freopen(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;uva12166.out&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;w&amp;#34;&lt;/span&gt;, stdout);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#endif&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    IOS&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; t;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    string s;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cin &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; t;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; (t&lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        cnt.clear();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        cin &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; s;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        cout &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; solve(s) &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; endl;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;C++ STL的map跟Python的字典很像，但也有区别：map能引用未赋值的键值对，且其值默认为0；而Python不能引用未定义的键值对&lt;/p&gt;</description>
			</item>
			<item>
				<title>Uva 1600 Patrol Robot</title>
				<link>https://lunarithm.space/posts/tech/uva1600/</link>
				<pubDate>Wed, 11 Jan 2023 12:30:00 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/uva1600/</guid>
				<description>&lt;p&gt;题目：&lt;a href=&#34;https://www.luogu.com.cn/problem/UVA1600&#34;&gt;UVA1600 巡逻机器人 Patrol Robot&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;题意&#34;&gt;题意&lt;/h2&gt;&#xA;&lt;p&gt;输入一个&lt;code&gt;m*n&lt;/code&gt;矩阵表示地图，其中1表示障碍，0表示空地。机器人要从&lt;code&gt;m*n&lt;/code&gt;地图的&lt;code&gt;(1,1)&lt;/code&gt;走到&lt;code&gt;(m,n)&lt;/code&gt;，每次可以往上下左右的其中一个方向走一格，且最多只能连续跨过&lt;code&gt;k&lt;/code&gt;个障碍。数据满足&lt;code&gt;1 &amp;lt;= m, n &amp;lt;= 20&lt;/code&gt;， &lt;code&gt;0 &amp;lt;= k &amp;lt;= 20&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;分析&#34;&gt;分析&lt;/h2&gt;&#xA;&lt;p&gt;首先我们可以确认这不是普通的BFS求最短路（对比：&lt;a href=&#34;https://blog-allenwu233.netlify.app/p/uva439/&#34;&gt;Uva 439&lt;/a&gt;），但题目多了一个条件——最多能连续跨过&lt;code&gt;k&lt;/code&gt;个障碍，这意味着只用二位数组不足以判断题目条件&lt;/p&gt;&#xA;&lt;p&gt;于是我试着用访问数组&lt;code&gt;int vis[maxn][maxn][2]&lt;/code&gt;存储访问状态，其中&lt;code&gt;vis[x][y][0]&lt;/code&gt;表示从该格再走一步后的步数，&lt;code&gt;vis[x][y][1]&lt;/code&gt;表示走到该格需要跨越的障碍数。但这种思路存在问题：程序无法区分跨越不同数量的障碍走到同一格，而是把它们视为同一条路线&lt;/p&gt;&#xA;&lt;p&gt;只需稍加改进，用&lt;code&gt;bool vis[maxn][maxn][maxn]&lt;/code&gt;存储访问状态即可，其中&lt;code&gt;vis[x][y][cnt]&lt;/code&gt;表示连续跨越&lt;code&gt;cnt&lt;/code&gt;个障碍后到达&lt;code&gt;(x,y)&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;利用结构体存储坐标、步数和连续跨越障碍的数量，方便BFS的入队出队操作（因为只需一个队列）&lt;/p&gt;&#xA;&lt;h2 id=&#34;代码&#34;&gt;代码&lt;/h2&gt;&#xA;&lt;h3 id=&#34;c&#34;&gt;C++&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-C++&#34; data-lang=&#34;C++&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;queue&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;cstring&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;namespace&lt;/span&gt; std;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; maxn &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;25&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; pic[maxn][maxn];  &lt;span style=&#34;color:#75715e&#34;&gt;// 读入地图&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;bool&lt;/span&gt; vis[maxn][maxn][maxn];  &lt;span style=&#34;color:#75715e&#34;&gt;// 访问数组，判断是否曾连续跨过若干个障碍到达某格&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; dx[&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;};  &lt;span style=&#34;color:#75715e&#34;&gt;// 偏移量&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; dy[&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; t, m, n, k;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;struct&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Node&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; x;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; y;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; step;  &lt;span style=&#34;color:#75715e&#34;&gt;// 当前步数&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; cnt;  &lt;span style=&#34;color:#75715e&#34;&gt;// 当前连续跨越障碍的数量&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;void&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;read_lines&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cin &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; m &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; n &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; k;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;; i &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; m; i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; j &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;; j &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; n; j&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            cin &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; pic[i][j];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;bool&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;check&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; x, &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; y) {  &lt;span style=&#34;color:#75715e&#34;&gt;// 检查是否出界&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (x &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt; y &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; m &lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt; y &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; n) &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; true;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; false;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;bfs&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; x, &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; y, &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; k) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Node t &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {x, y, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    queue&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;Node&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; q;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    q.push(t);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; (&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;q.empty()) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        t &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; q.front();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (t.x &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; m &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; t.y &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; n) &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; t.step;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;; i &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;; i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; px &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; t.x &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; dx[i], py &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; t.y &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; dy[i];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (check(px, py)) &lt;span style=&#34;color:#66d9ef&#34;&gt;continue&lt;/span&gt;;  &lt;span style=&#34;color:#75715e&#34;&gt;// 出界&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            Node tmp &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {px, py, t.step, t.cnt};  &lt;span style=&#34;color:#75715e&#34;&gt;// 一定要用临时变量来操作！&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (pic[px][py]) tmp.cnt&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;;  &lt;span style=&#34;color:#75715e&#34;&gt;// 该格为障碍&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; tmp.cnt &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;  &lt;span style=&#34;color:#75715e&#34;&gt;// 该格为空地&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (tmp.cnt &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; k &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;vis[px][py][tmp.cnt]) {  &lt;span style=&#34;color:#75715e&#34;&gt;// 连续跨越障碍数量&amp;lt;=k且未曾连续跨过t.cnt个障碍到达(px,py)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                tmp.step&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                vis[px][py][tmp.cnt] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; true;  &lt;span style=&#34;color:#75715e&#34;&gt;// 已访问&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                q.push(tmp);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        q.pop();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#ifdef LOCAL&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    freopen(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;patrol_robot.in&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;r&amp;#34;&lt;/span&gt;, stdin);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    freopen(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;patrol_robot.out&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;w&amp;#34;&lt;/span&gt;, stdout);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#endif&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ios&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;sync_with_stdio(false); &lt;span style=&#34;color:#75715e&#34;&gt;//取消cin与stdin的同步，加速输入输出&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cin.tie(&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;);  &lt;span style=&#34;color:#75715e&#34;&gt;// 解除cin与cout的绑定，进一步加快执行效率&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cout.tie(&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    cin &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; t;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; (t&lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        memset(vis, false, &lt;span style=&#34;color:#66d9ef&#34;&gt;sizeof&lt;/span&gt;(vis));  &lt;span style=&#34;color:#75715e&#34;&gt;// 记得清零！&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        read_lines();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        cout &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; bfs(&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, k) &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;我们知道cin和cout输入输出的速度比不上printf和scanf，因此可以通过一些小技巧来加速：&lt;/p&gt;</description>
			</item>
			<item>
				<title>UVa 439 Knight Moves</title>
				<link>https://lunarithm.space/posts/tech/uva439/</link>
				<pubDate>Mon, 09 Jan 2023 18:33:00 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/uva439/</guid>
				<description>&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/uva439_cover.jpg&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;第一次写题解~&lt;/p&gt;&#xA;&lt;p&gt;&lt;del&gt;简单，但是卡了好一会，最后发现是忘了清零数组 XD&lt;/del&gt;&lt;/p&gt;&#xA;&lt;p&gt;题目：&lt;a href=&#34;https://www.luogu.com.cn/problem/UVA439&#34;&gt;洛谷·UVa439&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;题意&#34;&gt;题意&lt;/h2&gt;&#xA;&lt;p&gt;输入8*8国际象棋棋盘的两个坐标（起点和终点。列：a~h，行：1~8），求出&lt;code&gt;马（Knight）&lt;/code&gt;从起点到终点所需最少步数&lt;/p&gt;&#xA;&lt;h2 id=&#34;分析&#34;&gt;分析&lt;/h2&gt;&#xA;&lt;p&gt;典型的BFS求最短路问题。二维数组&lt;code&gt;id[10][10]&lt;/code&gt;存储从该格再走一步后的步数，队列&lt;code&gt;qx&lt;/code&gt;,&lt;code&gt;qy&lt;/code&gt;存储坐标&lt;/p&gt;&#xA;&lt;p&gt;注意到每个格子不能重复，否则无法算出最短路&lt;/p&gt;&#xA;&lt;h2 id=&#34;代码&#34;&gt;代码&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-C++&#34; data-lang=&#34;C++&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;string&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;queue&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;cstring&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;namespace&lt;/span&gt; std;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// 偏移量：马能走的八个方向&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; dx[&lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;,&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;,&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; dy[&lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;,&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;,&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; id[&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;][&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;bfs&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; x, &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; y, &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; x_target, &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; y_target) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (x &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; x_target &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; y &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; y_target) &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;  &lt;span style=&#34;color:#75715e&#34;&gt;// 起点即终点&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    queue&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; qx, qy;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    qx.push(x), qy.push(y);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    id[x][y] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; (&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        x &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; qx.front(), y &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; qy.front();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;; i &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt;; i&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; newx &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; dx[i], newy &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; y &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; dy[i];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (newx &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; x_target &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; newy &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; y_target) &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; id[x][y];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (newx &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt; newy &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt; newx &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt; newy &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt; id[newx][newy])  &lt;span style=&#34;color:#75715e&#34;&gt;// 出界或已走过的点&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#66d9ef&#34;&gt;continue&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            qx.push(newx), qy.push(newy);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            id[newx][newy] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; id[x][y] &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        qx.pop(), qy.pop();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#ifdef LOCAL&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    freopen(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;knight_moves.in&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;r&amp;#34;&lt;/span&gt;, stdin);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    freopen(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;knight_moves.out&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;w&amp;#34;&lt;/span&gt;, stdout);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#endif&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    string start, target;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; (cin &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; start &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; target &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; start.length() &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; target.length()) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        memset(id, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;sizeof&lt;/span&gt;(id));  &lt;span style=&#34;color:#75715e&#34;&gt;// 记得清零！&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        cout&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;To get from &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;start&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; to &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;target&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; takes &amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        cout&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;bfs(start[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;]&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;0&amp;#39;&lt;/span&gt;, start[&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;]&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;a&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, target[&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;]&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;0&amp;#39;&lt;/span&gt;, target[&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;]&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;a&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;)&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; knight moves.&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;ps小技巧&#34;&gt;P.S.小技巧&lt;/h2&gt;&#xA;&lt;p&gt;你应该注意到了，我采用了重定向输入输出，却没有在代码里定义LOCAL符号——其实我已经在编译选项里编译了&lt;/p&gt;</description>
			</item>
			<item>
				<title>生成和检查的有机结合-回溯法</title>
				<link>https://lunarithm.space/posts/tech/backtracking/</link>
				<pubDate>Sat, 03 Dec 2022 20:00:00 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/backtracking/</guid>
				<description>&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/backtracking_cover.jpg&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;引言&#34;&gt;引言&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;暴力搜索法&lt;/strong&gt;（又称 &lt;strong&gt;穷举搜索&lt;/strong&gt;，在计算机科学中也称&lt;strong&gt;生成与测试&lt;/strong&gt;）是一种“简单粗暴地”处理问题的方法，通过枚举所有的可能并判断是否符合题意，以得出答案&lt;/p&gt;&#xA;&lt;p&gt;但有时候直接枚举会带来问题：枚举量过大而存在大量不必要的枚举，导致算法时间复杂度过大（太低效了）。有没有更好的方法呢？&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;回溯法（backtracking）&lt;/strong&gt; 是&lt;strong&gt;暴力搜索法&lt;/strong&gt;的一种，可在递归构造中把搜索和检查有机地结合起来，从而减小枚举量&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;让我们通过几道经典的题目来感受一下回溯法的魅力吧～&lt;/p&gt;&#xA;&lt;h2 id=&#34;八皇后问题&#34;&gt;八皇后问题&lt;/h2&gt;&#xA;&lt;p&gt;可以说是最经典的题目之一了。甚至常被作为“判断有没有学过回溯法”的依据 &lt;del&gt;（刘老师如是说）&lt;/del&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;如何能够在8×8的国际象棋棋盘上放置八个皇后，使得任何一个皇后都无法直接吃掉其他的皇后？为了达到此目的，任两个皇后都不能处于同一条横行、纵行或斜线上。&#xA;八皇后问题可以推广为更一般的n皇后摆放问题：这时棋盘的大小变为n×n，而皇后个数也变成n。当且仅当n = 1或n ≥ 4时问题有解。——From &lt;a href=&#34;https://zh.wikipedia.org/wiki/%E5%85%AB%E7%9A%87%E5%90%8E%E9%97%AE%E9%A2%98&#34;&gt;维基百科·八皇后问题&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;而我们要解决的，正是推广后的n皇后问题。但为了方便描述，下面的分析还是以八皇后问题为例&lt;/p&gt;&#xA;&lt;h3 id=&#34;思路一组合生成&#34;&gt;思路一：组合生成&lt;/h3&gt;&#xA;&lt;p&gt;枚举出所有可能的棋局，再来判断是否符合题目要求。&lt;/p&gt;&#xA;&lt;p&gt;问题可以转换为：从 $ 8 \times 8 = 64 $ 个格子里选出 $8$ 个（即组合生成），保证任两个格子都不能处于同一条横行、纵行或斜线上&lt;/p&gt;&#xA;&lt;p&gt;根据排列组合，我们知道共有$ C_{64}^{8} = 4.426 \times 10^9 $种方案，显然是太复杂了。&lt;/p&gt;&#xA;&lt;h3 id=&#34;思路二全排列生成&#34;&gt;思路二：全排列生成&lt;/h3&gt;&#xA;&lt;p&gt;稍加思考，我们可以改进策略：恰好每行每列各选一个格子，保证任两个格子都在同一斜线上。如此转化为全排列生成的问题，方案数降为$ 8! = 40320 $种，肉眼可见的效率提升啊（笑）&lt;/p&gt;&#xA;&lt;p&gt;我们可以用C[x]表示第x行皇后的列编号。难点之一是如何判断皇后间是否斜向攻击。&lt;/p&gt;&#xA;&lt;p&gt;把棋盘看作一个以左上角为原点、往下为x轴、往右为y轴的平面直角坐标系，于是棋盘的&lt;strong&gt;主对角线&lt;/strong&gt;就是 $ y = x $ ，于是对于格子$ (x,y) $， $ y-x $ 的值就标识了主对角线（确保你理解了这一点！）。同理，副对角线为 $ y = -x $ ， $ x+y $ 的值标记了副对角线。如下图所示：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/y-x.jpg&#34;&#xA;  alt=&#34;y-x&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA; &lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/x&amp;#43;y.jpg&#34;&#xA;  alt=&#34;x&amp;#43;y&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;</description>
			</item>
			<item>
				<title>记忆、爱与救赎</title>
				<link>https://lunarithm.space/posts/life/little-reimu/</link>
				<pubDate>Fri, 25 Nov 2022 22:00:00 +0800</pubDate>
				<guid>https://lunarithm.space/posts/life/little-reimu/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;原载于&lt;a href=&#34;https://www.bilibili.com/read/cv14658761&#34;&gt;bilibili&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/28295855_p0.jpg&#34;&#xA;  alt=&#34;cover&#34;&#xA;  &#xA;  title=&#34;封面图 pid:28295855&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;第一次写长评论，还请多多指教。&#xA;附上作品链接：&lt;/p&gt;&#xA;&lt;p&gt;原版&lt;/p&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/01.jpg&#34;&#xA;  alt=&#34;01&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.bilibili.com/video/BV1Wx411w7Q6&#34;&gt;東方幼靈夢【1-7话完結】【內嵌字幕】&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;国内up配音版&lt;/p&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/02.jpg&#34;&#xA;  alt=&#34;02&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.bilibili.com/video/BV1gs411f7Fg&#34;&gt;日语配音：东方幼灵梦 第一话&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;正文&#34;&gt;正文&lt;/h2&gt;&#xA;&lt;p&gt;感人至深的一部作品，不愧是经典！我一个平时不怎么流泪的人看完后眼睛也湿润了……&#xA;谈点观后感吧。&lt;/p&gt;&#xA;&lt;h3 id=&#34;消除记忆&#34;&gt;消除记忆&lt;/h3&gt;&#xA;&lt;p&gt;关于消除记忆，我认为这是件比死亡还要残酷的事，不论是对露米娅来说还是对幼灵梦。&lt;/p&gt;&#xA;&lt;p&gt;就露米娅而言，照紫的说法，被消除记忆和“幼化”的她摆脱了束缚，成功“重生”；但从观众的视角来看，露米娅已经死了：抛除了食人罪孽的同时，失去了过往的美好回忆、遗忘了所爱之人的露米娅，已经不再是当初那个善良可爱、心存感恩的“大”露米娅了。这一情节，极大地增加了本作的悲剧性（好一把大刀）。&lt;/p&gt;&#xA;&lt;p&gt;就幼灵梦来说，失去对生命中的两个至爱之人的记忆，更是令人痛心。引用我看过的一篇小说中的话：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;“如果她不活在我的记忆里，就没法存在于任何地方了。”&#xA;——《花与爱丽丝》&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;如果幼灵梦没被消除与阿妈和露米娅有关的记忆，虽然她要承担亲人离去的痛苦（但这对孩子来说过于残酷了&amp;hellip;&amp;hellip;紫的做法也不是不可理解），但在以后的日子里，回想起那段幸福经历的灵梦，也会露出幸福的笑容吧——阿妈和露米娅已永远活在她的心中。然而事实是残酷的——对于幼灵梦来说，阿妈和露米娅等于从来没有存在过，她甚至连回忆的机会也没有了。这又增加了悲剧的意味啊（又一把大刀）。&lt;/p&gt;&#xA;&lt;p&gt;终究是紫承担下了所有……经历了无数次生离死别的她，为了让露米娅得到真正的救赎、让幼灵梦能够健康快乐地成长，即使残酷，也只能消除她们的记忆，而独自咀嚼悲伤。换做是我，可能也会跟紫一样的吧。&lt;/p&gt;&#xA;&lt;h3 id=&#34;爱与救赎&#34;&gt;爱与救赎&lt;/h3&gt;&#xA;&lt;p&gt;毋庸置疑，这是一部以爱与救赎为主题的作品。我认为剧情可分为三条线：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;一条是露米娅的救赎之路。由冷酷可怖的食人妖怪变成心怀感恩的老好人，最终摆脱桎梏，重获新生。&lt;/li&gt;&#xA;&lt;li&gt;一条是阿妈的救赎之路。由备受他人误解与歧视而抑郁的博丽巫女，到乐天知命、享受当下幸福的思想转变。&lt;/li&gt;&#xA;&lt;li&gt;一条是幼灵梦的救赎之路。由路旁的弃婴，成长为一个被人爱、也会爱人的孩子。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;而将这三条线交织在一起，使之密不可分、相互促成的，正是那股伟大的力量——爱。&lt;/p&gt;&#xA;&lt;p&gt;显然，这种爱已经上升到亲情程度的爱了。&lt;/p&gt;&#xA;&lt;p&gt;本作中，幼灵梦分饭团的情节尤为令我印象深刻。“这样就两个人都肚子饱饱！”抱有这种想法的幼灵梦，已经是个会爱人的人了——既会爱自己，也会爱他人。在我看来，如果幼灵梦只是单纯把饭团全给露米娅的话，就不能算是完美的爱——牺牲自己，再爱他人。正是这种天真单纯的爱，感化了当初的露米娅吧——毕竟，这是第一个把她看作是亲人的人。换个角度来看，也正是这种真诚的爱，解开了阿妈的心结，使她懂得了爱为何物吧。&lt;/p&gt;&#xA;&lt;p&gt;其次，还有紫对阿妈、幼灵梦的爱。这大概是紫想杀害小露米娅却又收手的缘故吧——虽然是杀友仇人，却是友人用生命救下的。“明明是个妖怪，却是个老好人，再加上是个爱哭鬼，还是我所爱之人，最好的朋友哟。”&lt;/p&gt;&#xA;&lt;p&gt;结局幼灵梦与小露米娅的重聚，或许是我们仅有的慰藉了吧。纵使幼灵梦那句“谁？”令人心酸，让我们祝愿她们能开始一段新的幸福生活吧。&lt;/p&gt;&#xA;&lt;p&gt;——Allen&#xA;2021.12.30 深夜&lt;/p&gt;</description>
			</item>
			<item>
				<title>数据结构之美-二叉树</title>
				<link>https://lunarithm.space/posts/tech/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B9%8B%E7%BE%8E-%E4%BA%8C%E5%8F%89%E6%A0%91/</link>
				<pubDate>Sun, 06 Nov 2022 22:00:00 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B9%8B%E7%BE%8E-%E4%BA%8C%E5%8F%89%E6%A0%91/</guid>
				<description>&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/binary_tree.png&#34;&#xA;  alt=&#34;&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;引言---二叉树是什么&#34;&gt;引言 - 二叉树是什么&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;在计算机科学中， &lt;strong&gt;二叉树（Binary tree）&lt;/strong&gt; 是每个结点最多只有两个分支（即不存在分支度大于2的结点）的树结构。通常分支被称作“左子树”或“右子树”。二叉树的分支具有左右次序，不能随意颠倒。&#xA;与普通树不同，普通树的结点个数至少为1，而二叉树的结点个数可以为0；普通树结点的最大分支度没有限制，而二叉树结点的最大分支度为2；普通树的结点无左、右次序之分，而二叉树的结点有左、右次序之分。&#xA;——From &lt;a href=&#34;https://zh.wikipedia.org/wiki/%E4%BA%8C%E5%8F%89%E6%A0%91&#34;&gt;中文维基百科·二叉树&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;二叉树是非常重要的数据结构，其独特的结构使得它在搜索和处理数据方面有相当不错的表现&lt;/p&gt;&#xA;&lt;h2 id=&#34;二叉树的遍历&#34;&gt;二叉树的遍历&lt;/h2&gt;&#xA;&lt;h3 id=&#34;层次遍历宽度优先遍历&#34;&gt;层次遍历（宽度优先遍历）&lt;/h3&gt;&#xA;&lt;p&gt;顾名思义，即按从上到下、从左到右的顺序遍历结点&#xA;以上图为例，遍历的顺序为&lt;code&gt;1～15&lt;/code&gt;&#xA;这种方法叫 &lt;strong&gt;宽度优先遍历（Breadth-First Search, BFS）&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;递归遍历深度优先遍历&#34;&gt;递归遍历（深度优先遍历）&lt;/h3&gt;&#xA;&lt;p&gt;博主认为二叉树的递归遍历是&lt;em&gt;最为精彩&lt;/em&gt;的部分。理解其三种递归遍历方式，能一窥二叉树的结构之美&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;对于一棵二叉树 T ，可以递归定义它的先序遍历、中序遍历和后序遍历，如下所示：&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;PreOrder(T) = T的根结点 + PreOrder(T的左子树) + PreOrder(T的右子树)&lt;/li&gt;&#xA;&lt;li&gt;InOrder(T) = InOrder(T的左子树) + T的根结点 + InOrder(T的右结点)&lt;/li&gt;&#xA;&lt;li&gt;PostOrder(T) = PostOrder(T的左子树) + PostOrder(T的右子树) + T的根结点&#xA;这三种遍历都属于递归遍历，或者说 &lt;strong&gt;深度优先遍历（Depth-First Search, DFS）&lt;/strong&gt; ，因为它总是优先往深处访问&#xA;——From 刘汝佳《算法竞赛入门经典（第2版）》&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;还是以上图为例，来讲一下如何递归遍历：&#xA;要遍历整棵二叉树，首先把&lt;code&gt;1,2,3&lt;/code&gt;看作一棵小二叉树来遍历，其中&lt;code&gt;1&lt;/code&gt;为根，&lt;code&gt;2,3&lt;/code&gt;为结点。遍历结点&lt;code&gt;2&lt;/code&gt;或&lt;code&gt;3&lt;/code&gt;时，再分别把&lt;code&gt;2,4,5&lt;/code&gt;或&lt;code&gt;3,6,7&lt;/code&gt;看作小二叉树来遍历，依次类推。具体遍历顺序由遍历的方式而定&lt;/p&gt;&#xA;&lt;p&gt;是不是很简单？在看下面的答案前，先试着写一下这三种遍历方式的顺序吧&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;注：“根”——根结点，“左”——左子树，“右”——右子树&#xA;还是上图的例子：&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h4 id=&#34;先序遍历&#34;&gt;先序遍历&lt;/h4&gt;&#xA;&lt;p&gt;顺序：&lt;code&gt;根--&amp;gt;左--&amp;gt;右&lt;/code&gt;&#xA;&lt;code&gt;1 2 4 8 9 5 10 11 3 6 12 13 7 14 15&lt;/code&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>数据结构初见-栈</title>
				<link>https://lunarithm.space/posts/tech/stack/</link>
				<pubDate>Sun, 30 Oct 2022 14:00:00 +0800</pubDate>
				<guid>https://lunarithm.space/posts/tech/stack/</guid>
				<description>简单而又不简单</description>
			</item>
			<item>
				<title>最“简单”的算法——贪心算法</title>
				<link>https://lunarithm.space/posts/tech/greedy-algorithm/</link>
				<pubDate>Fri, 07 Oct 2022 00:00:00 +0000</pubDate>
				<guid>https://lunarithm.space/posts/tech/greedy-algorithm/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;“有人说&lt;strong&gt;贪心算法&lt;/strong&gt;是最简单的算法，原因很简单：你我其实都很贪，根本不用学就知道怎么贪。有人说贪心算法是最复杂的算法，原因也很简单：这世上会贪的人太多了，那轮到你我的份？”&lt;/p&gt;&#xA;&lt;p&gt;——By &lt;a href=&#34;https://blog.csdn.net/effective_coder?type=blog&#34;&gt;CSDN@lloil&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;简介&#34;&gt;简介&lt;/h2&gt;&#xA;&lt;h3 id=&#34;什么是贪心算法&#34;&gt;什么是贪心算法&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;贪心算法（greedy algorithm，又称贪婪算法）&lt;/strong&gt; 是指，在对问题求解时，总是做出在当前看来是最好的选择。也就是说，不从整体最优上加以考虑，算法得到的是在某种意义上的局部最优解。&#xA;贪心算法不是对所有问题都能得到整体最优解，关键是贪心策略的选择。&lt;/p&gt;&#xA;&lt;p&gt;——By &lt;a href=&#34;https://baike.baidu.com/item/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95/5411800&#34;&gt;百度百科·贪心算法&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;基本要素&#34;&gt;基本要素&lt;/h3&gt;&#xA;&lt;h4 id=&#34;1贪心选择性质&#34;&gt;1.贪心选择性质&lt;/h4&gt;&#xA;&lt;p&gt;一个问题的整体最优解可通过一系列局部的最优解的选择，即贪心选择达到，并且每次的选择可以依赖以前作出的选择，但不依赖于后面要作出的选择。这就是贪心选择性质。&#xA;对于一个具体问题，要确定它&lt;strong&gt;是否具有贪心选择性质&lt;/strong&gt;，&lt;strong&gt;必须证明每一步所作的贪心选择最终导致问题的整体最优解&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;2最优子结构性质&#34;&gt;2.最优子结构性质&lt;/h4&gt;&#xA;&lt;p&gt;当一个问题的最优解包含其子问题的最优解时，称此问题具有最优子结构性质。&#xA;问题的最优子结构性质是该问题可用贪心法求解的关键所在。在实际应用中，至于什么问题具有什么样的贪心选择性质是不确定的，需要具体问题具体分析&lt;/p&gt;&#xA;&lt;h3 id=&#34;基本思路&#34;&gt;基本思路&lt;/h3&gt;&#xA;&lt;p&gt;从问题的某一个初始解出发逐步逼近给定的目标，以尽可能快的地求得更好的解。当达到算法中的某一步不能再继续前进时，算法停止。&lt;/p&gt;&#xA;&lt;p&gt;该算法存在问题：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;不能保证求得的最后解是最佳的；&lt;/li&gt;&#xA;&lt;li&gt;一般用来求最大或最小解问题；&lt;/li&gt;&#xA;&lt;li&gt;只能求满足某些约束条件的可行解的范围。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;实现该算法的过程，从问题的某一初始解出发:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-Python&#34; data-lang=&#34;Python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; 能朝给定总目标前进一步:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;　　 求出可行解的一个解元素&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;由所有解元素组合成问题的一个可行解&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;一道简单的例题&#34;&gt;一道简单的例题&lt;/h2&gt;&#xA;&lt;h3 id=&#34;题目&#34;&gt;题目&lt;/h3&gt;&#xA;&lt;p&gt;原题：&lt;a href=&#34;https://ac.nowcoder.com/acm/problem/16618&#34;&gt;拼座椅&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;题目描述&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;上课的时候总有一些同学和前后左右的人交头接耳，这是令小学班主任十分头疼的一件事情。&#xA;不过，班主任小雪发现了一些有趣的现象，当同学们的座次确定下来之后，只有有限的$D$对同学上课时会交头接耳。&lt;/p&gt;&#xA;&lt;p&gt;同学们在教室中坐成了 $M$ 行 $N$ 列，坐在第 $i$ 行第 $j$ 列的同学的位置是$(i，j)$，为了方便同学们进出，&#xA;在教室中设置了 $K$ 条横向的通道，$L$条纵向的通道。&#xA;于是，聪明的小雪想到了一个办法，或许可以减少上课时学生交头接耳的问题：&#xA;她打算重新摆放桌椅，改变同学们桌椅间通道的位置，因为如果一条通道隔开了两个会交头接耳的同学，那么他们就不会交头接耳了。&lt;/p&gt;&#xA;&lt;p&gt;请你帮忙给小雪编写一个程序，给出最好的通道划分方案。在该方案下，上课时交头接耳的学生对数最少。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;输入描述&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;第一行，有 5 个用空格隔开的整数，分别是&#xA;$M，N，K，L，D（2 \leq N，M \leq 1000，0 \leq K &amp;lt; M，0 \leq L &amp;lt; N，D \leq 2000）$。&lt;/p&gt;&#xA;&lt;p&gt;接下来 D 行，每行有 4 个用空格隔开的整数，第 i 行的 4 个整数 $X_i$，$Y_i$，$P_i$，$Q_i$，&#xA;表示坐在位置 $(X_i, Y_i)$ 与 $(P_i, Q_i)$ 的两个同学会交头接耳（输入保证他们前后相邻或者左右相邻）。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Python生成多项式与牛顿法</title>
				<link>https://lunarithm.space/posts/tech/poly-newton/</link>
				<pubDate>Sun, 02 Oct 2022 00:00:00 +0000</pubDate>
				<guid>https://lunarithm.space/posts/tech/poly-newton/</guid>
				<description>Python 与数学的碰撞</description>
			</item>
			<item>
				<title>C语言初学者的汉诺塔</title>
				<link>https://lunarithm.space/posts/tech/hanoi/</link>
				<pubDate>Sun, 11 Sep 2022 00:00:00 +0000</pubDate>
				<guid>https://lunarithm.space/posts/tech/hanoi/</guid>
				<description>&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/hanoi_cover.jpg&#34;&#xA;  alt=&#34;Cover&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;h2 id=&#34;引言&#34;&gt;引言&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;在印度，有这样一个古老的传说。在世界中心贝拿勒斯的圣庙里，&#xA;一块黄铜板上插着3根宝石针。印度教的主神梵天在创造世界的时候，&#xA;在其中一根针上从下到上地穿好了由大到小的64片金盘，&#xA;这就是所谓的汉诺塔(Tower of Hanoi)。&#xA;不论白天黑夜，总有一个僧侣在按照下面的法则移动这些金盘到另一根针上：&#xA;一次只移动一片，而且小片必在大片上面。&#xA;当所有的金盘都从梵天穿好的那根针上移动到第三根针上时，&#xA;世界就将在一声霹雳中消灭，梵塔、庙宇和众生都将同归于尽&amp;hellip;&amp;hellip;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;分析问题&#34;&gt;分析问题&lt;/h2&gt;&#xA;&lt;h3 id=&#34;什么是汉诺塔&#34;&gt;什么是汉诺塔&lt;/h3&gt;&#xA;&lt;p&gt;总结如下：&#xA;有 A, B, C 三根柱子，A 柱上有 n(n &amp;gt; 1) 个金盘，金盘的尺寸由下到上依次变小。&#xA;每次只能移动一片金盘，且大金盘不能位于小金盘之上，使得所有金盘都移动到 C 柱。&#xA;问：如何移？最少要移动多少次？&lt;/p&gt;&#xA;&lt;h3 id=&#34;一个最简单的例子&#34;&gt;一个最简单的例子&lt;/h3&gt;&#xA;&lt;p&gt;当 n = 1 时，只需1步就能解决：&lt;code&gt;A--&amp;gt;C&lt;/code&gt;&#xA;( &lt;strong&gt;A--&amp;gt;C&lt;/strong&gt; 表示把 A 柱最上面的一个金盘移动到 C 柱，下同)&lt;/p&gt;&#xA;&lt;h3 id=&#34;一个很简单的例子&#34;&gt;一个很简单的例子&lt;/h3&gt;&#xA;&lt;p&gt;当 n = 2 时，只需3步：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;A--&amp;gt;B&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;A--&amp;gt;C&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;B--&amp;gt;C&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;一个简单的例子&#34;&gt;一个简单的例子&lt;/h3&gt;&#xA;&lt;p&gt;当 n = 3 时，用一张图来解决：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/hanoi_3.jpg&#34;&#xA;  alt=&#34;三层汉诺塔&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;用语言表述如下：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;A--&amp;gt;C&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;A--&amp;gt;B&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;C--&amp;gt;B&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;A--&amp;gt;C&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;B--&amp;gt;A&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;B--&amp;gt;C&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;A--&amp;gt;C&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;共需7步&lt;/p&gt;&#xA;&lt;h3 id=&#34;扩展到-n&#34;&gt;扩展到 n&lt;/h3&gt;&#xA;&lt;p&gt;当 n = 4, 5, 6 甚至 20 时，又该怎么办呢？&#xA;这个问题看起来很复杂，其实是有规律可循的&#xA;根据数学方法计算得出，移动 n 层的汉诺塔所需次数为 $2^n - 1$&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hello World!</title>
				<link>https://lunarithm.space/posts/tech/hello-world/</link>
				<pubDate>Fri, 26 Aug 2022 00:00:00 +0000</pubDate>
				<guid>https://lunarithm.space/posts/tech/hello-world/</guid>
				<description>&lt;h2 id=&#34;hello-hugo-blog-world&#34;&gt;Hello Hugo Blog World&lt;/h2&gt;&#xA;&lt;p&gt;Python苦手不会用Django搭建博客，连夜转战hugo（迫真&lt;/p&gt;&#xA;&lt;p&gt;既然是第一篇博客，多写几个“hello world”的话会有好运气的吧（笑）&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;hello_world.py&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; _ &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; range(&lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Hello world!&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img&#xA;  src=&#34;https://cdn.jsdelivr.net/gh/AllenWu233/lunarithm@main/static/images/hello-world.jpg&#34;&#xA;  alt=&#34;Hina&#34;&#xA;  &#xA;  loading=&#34;lazy&#34;&#xA;/&gt;&#xA;&lt;/p&gt;</description>
			</item>
			<item>
				<title>逍遥乡</title>
				<link>https://lunarithm.space/about/</link>
				<pubDate>Fri, 26 Aug 2022 00:00:00 +0000</pubDate>
				<guid>https://lunarithm.space/about/</guid>
				<description>&lt;center&gt;&lt;iframe frameborder=&#34;no&#34; border=&#34;0&#34; marginwidth=&#34;0&#34; marginheight=&#34;0&#34; width=330 height=110 src=&#34;//music.163.com/outchain/player?type=1&amp;id=3132481&amp;auto=0&amp;height=90&#34;&gt;&lt;/iframe&gt;&lt;/center&gt;&#xA;&lt;h2 id=&#34;欢迎来到又一座孤岛&#34;&gt;欢迎来到又一座“孤岛”&lt;/h2&gt;&#xA;&lt;p&gt;我一直认为个人博客是一座孤岛。身为博主，要勤于开拓&lt;a href=&#34;https://lunarithm.space/links&#34;&gt;友链&lt;/a&gt;的航线，将一座座孤岛连结起来，形成一张星罗密布的&lt;a href=&#34;https://zh.wikipedia.org/wiki/%E5%9B%BE_(%E6%95%B0%E5%AD%A6)#%E5%9B%BE&#34;&gt;无向图&lt;/a&gt;。这样不仅方便互相学习交流，还能顺着大佬们的友链认识更多大佬，何乐而不为？&lt;/p&gt;&#xA;&lt;p&gt;不管你是从搜索引擎、还是顺着他人的友链找到我的，欢迎多多评论，交流知识与思考！&lt;/p&gt;&#xA;&lt;h2 id=&#34;关于我&#34;&gt;关于我&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-Python&#34; data-lang=&#34;Python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; base64 &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; b64decode&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Me&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;__init__&lt;/span&gt;(self):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        self&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Allen Wu&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        self&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;hobbies &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;jogging&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;harmonica&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;reading&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;programming&amp;#34;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        self&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;fav_OS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Arch Linux&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;LineageOS&amp;#34;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        self&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;fav_programming_languages &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Python&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Rust&amp;#34;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        self&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;fav_games &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Touhou&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Minecraft&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Outer Wilds&amp;#34;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        self&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;motto &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;天地与我并生，而万物与我为一。&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        self&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;email &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; b64decode(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;YWxsZW53dTIzM0BvdXRsb29rLmNvbQ==&amp;#34;&lt;/span&gt;)&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;decode(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://en.wikipedia.org/wiki/Free_and_open-source_software&#34;&gt;FOSS&lt;/a&gt; 爱好者，自从用上了 Arch Linux 之后更是一发不可收抬 &lt;del&gt;（有一定程度的开源洁癖）&lt;/del&gt;&lt;/li&gt;&#xA;&lt;li&gt;很爱折腾（从各种杂七杂八的&lt;a href=&#34;https://lunarithm.space/categories/%E6%95%99%E7%A8%8B&#34;&gt;教程&lt;/a&gt;可见一斑）&lt;/li&gt;&#xA;&lt;li&gt;头像出处：&lt;a href=&#34;https://www.pixiv.net/artworks/124303653&#34;&gt;Pid: 124303653&lt;/a&gt;，灵感来源于&lt;a href=&#34;https://en.wikipedia.org/wiki/Technique_of_Relief&#34;&gt;救済の技法（Technique of Relief）&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;关于本站&#34;&gt;关于本站&lt;/h2&gt;&#xA;&lt;h3 id=&#34;站名由来&#34;&gt;站名由来&lt;/h3&gt;&#xA;&lt;h4 id=&#34;现站名冰轮韵&#34;&gt;现站名：冰轮韵&lt;/h4&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;「冰轮」指明月。&lt;/p&gt;&#xA;&lt;p&gt;宋·苏轼《宿九仙山》：“夜半老僧呼起，云峰缺处涌&lt;strong&gt;冰轮&lt;/strong&gt;。”&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;取自自造词：&lt;code&gt;Lunarithm = Lunar + Rhythm&lt;/code&gt;，译为“冰轮韵”。&lt;/p&gt;&#xA;&lt;p&gt;月的意象受&lt;a href=&#34;https://en.wikipedia.org/wiki/The_Dark_Side_of_the_Moon&#34;&gt;The Dark Side of the Moon&lt;/a&gt;、&lt;a href=&#34;https://thwiki.cc/%E6%AD%8C%E8%AF%8D:Fall_in_the_Dark&#34;&gt;Fall in the Dark&lt;/a&gt;和&lt;a href=&#34;https://store.steampowered.com/app/1998530/Yoiyami_Dancers_Twilight_Danmaku_Dancers/&#34;&gt;宵暗舞者&lt;/a&gt;等的启发；“韵”即为音韵，可延伸为文章、代码的风格。&lt;/p&gt;&#xA;&lt;p&gt;站图标源于：&lt;a href=&#34;https://wiki.biligame.com/outerwilds/%E9%A6%96%E9%A1%B5&#34;&gt;Outer Wilds - 量子卫星&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>月渡</title>
				<link>https://lunarithm.space/links/</link>
				<pubDate>Fri, 26 Aug 2022 00:00:00 +0000</pubDate>
				<guid>https://lunarithm.space/links/</guid>
				<description>&lt;h2 id=&#34;友链&#34;&gt;友链&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.linioi.com&#34;&gt;清絮&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;人生如逆旅，我亦是行人&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.lilydjwg.me/&#34;&gt;lilydjwg 依云&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;【Allen 评：百合仙子，Arch Linux CN 社区管理者之一】&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.yunyitang.me/&#34;&gt;Yunyi&amp;rsquo;s Blog&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;得闲饮茶～～～&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ruanyifeng.com/&#34;&gt;阮一峰&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;【Allen 评：坚持更新网络日志，将博客精神体现得淋漓尽致】&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pxyfcywl.netlify.app&#34;&gt;彼岸花开&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;欢迎！高洁而真诚的灵魂&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://145914.xyz/&#34;&gt;帅秃顶&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;帅秃顶的博客&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;可能已经失效的友链&#34;&gt;可能已经失效的友链&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;如果你的友链被错误地移到了这里，或信息需要更新，请在评论区留言。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;（无）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;又一条新航线&#34;&gt;又一条新航线&lt;/h2&gt;&#xA;&lt;p&gt;欢迎在评论区留下你的个人站点链接，可参考以下格式：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;title&lt;/span&gt;: &lt;span style=&#34;color:#75715e&#34;&gt;# 站点名&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;author&lt;/span&gt;: &lt;span style=&#34;color:#75715e&#34;&gt;# 你的名字&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;description&lt;/span&gt;: &lt;span style=&#34;color:#75715e&#34;&gt;# 一句话个人或站点简介&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;url&lt;/span&gt;: &lt;span style=&#34;color:#75715e&#34;&gt;# 个人网站地址&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;avatar&lt;/span&gt;: &lt;span style=&#34;color:#75715e&#34;&gt;# 头像链接（可选）&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;favicon&lt;/span&gt;: &lt;span style=&#34;color:#75715e&#34;&gt;# 网站图标链接（可选）&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;本站信息，请随意添加：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;title&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;冰轮韵&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;author&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Allen&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;description&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;冰轮舞韵，代码凝魂。&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;url&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;https://lunarithm.space&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;avatar&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;https://lunarithm.space/avatar.jpg&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;favicon&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;https://lunarithm.space/favicon-32x32.png&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;🍻欢迎友好交流！不要吝啬你的友链！&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
