<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[suolk的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/suolk</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; suolk]]></copyright><item><title><![CDATA[CSG 1195：华容道]]></title><link>https://blog.youkuaiyun.com/suolk/article/details/129939452</link><guid>https://blog.youkuaiyun.com/suolk/article/details/129939452</guid><author>suolk</author><pubDate>Mon, 03 Apr 2023 21:35:11 +0800</pubDate><description><![CDATA[因为每次移动，初始块都会与空白格交换位置，若进行直线型移动，那么每次移动后到下一格都需要 5 步（原因如上），而阶梯型移动能保证移动方向与块的位置垂直，故只需要 3 步。在一个n × m的棋盘上有n行m列共n × m个格子，其中有且只有一个格子是空白的，其余n × m − 1个格子上各有一个棋子. 每一步可以将空白的格子上、下、左、右相邻的格子上的棋子移动到空白格子上.空白格的移动路径只需直接计算横纵距离绝对值之和即可，若出现需要穿过目标块的移动，则需要在步数上 +2。输出将棋子移动到指定位置的最小步数.]]></description><category></category></item><item><title><![CDATA[洛谷P1030 [NOIP2001 普及组] 求先序排列 Python题解]]></title><link>https://blog.youkuaiyun.com/suolk/article/details/120426403</link><guid>https://blog.youkuaiyun.com/suolk/article/details/120426403</guid><author>suolk</author><pubDate>Thu, 23 Sep 2021 03:26:50 +0800</pubDate><description><![CDATA[原题链接
易错点
这题的读入非常坑，文件末尾存在\r，因此读入时需要将其转换为列表再遍历。
或者也可以直接给print的输出加个特判。
下附代码
转为列表
def dfs(mid, bw):
    ch = bw[-1]
    pos = -1
    for i in range(0, len(mid)):
        if mid[i] == ch:
            pos = i
            break
    if pos != -1:
        print(ch,]]></description><category></category></item><item><title><![CDATA[CF2B The least round way题解]]></title><link>https://blog.youkuaiyun.com/suolk/article/details/120398003</link><guid>https://blog.youkuaiyun.com/suolk/article/details/120398003</guid><author>suolk</author><pubDate>Tue, 21 Sep 2021 03:00:32 +0800</pubDate><description><![CDATA[原题传送门
洛谷传送门
题目大意
找出从左上走到右下，且经过的数字的乘积末尾的0最少的路。
解题思路
由题意可知，需要尽可能少经过含有因数2和因数5的数字，显然用dp求解。需要一个三维数组dp[N][N][2],其中dp[N][N][0]代表的是经过路径乘2的数量，dp[N][N][1]代表经过的路径乘5的数量，由于2*5才会出现0，所以只需要让其中一方尽可能少即可。
此外，若矩阵中出现了0，意味着最终的答案最多为1，因为0乘任意数都只会为0，因此，当最终答案比1大时，需要对0进行特判。
至于路径只需要在d]]></description><category></category></item><item><title><![CDATA[PTA天梯赛L2-038 病毒溯源]]></title><link>https://blog.youkuaiyun.com/suolk/article/details/116163108</link><guid>https://blog.youkuaiyun.com/suolk/article/details/116163108</guid><author>suolk</author><pubDate>Mon, 26 Apr 2021 17:42:23 +0800</pubDate><description><![CDATA[原题传送门
题目
病毒容易发生变异。某种病毒可以通过突变产生若干变异的毒株，而这些变异的病毒又可能被诱发突变产生第二代变异，如此继续不断变化。
现给定一些病毒之间的变异关系，要求你找出其中最长的一条变异链。
在此假设给出的变异都是由突变引起的，不考虑复杂的基因重组变异问题 —— 即每一种病毒都是由唯一的一种病毒突变而来，并且不存在循环变异的情况。
输入格式
输入在第一行中给出一个正整数 N（≤10^​4​​ ），即病毒种类的总数。于是我们将所有病毒从 0 到 N−1 进行编号。
随后 N 行，每行按以下格式]]></description><category></category></item><item><title><![CDATA[洛谷P2482 [SDOI2010]猪国杀 坑点总结]]></title><link>https://blog.youkuaiyun.com/suolk/article/details/114994828</link><guid>https://blog.youkuaiyun.com/suolk/article/details/114994828</guid><author>suolk</author><pubDate>Fri, 19 Mar 2021 04:15:50 +0800</pubDate><description><![CDATA[总结了几个坑点…

使用锦囊牌时可能存在跳反或跳忠（打出无懈可击）的情况，一旦出现了有可能要从头检索是否有可使用的杀或决斗
装备诸葛连弩时同理；
对别人打出决斗自己可能会死，此时需要中断回合；
反猪的决斗一定是对主猪用的；
主猪杀了忠猪后，弃牌的时候不要忘了诸葛连弩；
同时不要忘了此时遍历的手牌已经没了；
但是不能直接中断回合，比如忠猪如果死于万箭齐发，那么在它之后还可能有反猪因此死掉，这种情况下主公会摸三张牌，回合仍可能继续；
角色死后不要鞭尸，南蛮入侵、万箭齐发等需要遍历玩家的情况记得跳过死者；
一有角]]></description><category></category></item></channel></rss>