摘要: 题目链接:Splitting into digits 题目原文 Vasya has his favourite number 𝑛n. He wants to split it to some non-zero digits. It means, that he wants to choose so 阅读全文
posted @ 2019-01-23 17:36 SaltyFishQF 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Shuffle'm Up 题目大意 模拟纸牌的洗牌过程,已知两个牌数相等的牌堆。求解经过多少次洗牌的过程,使牌的顺序与目标顺序相同。 思路 直接模拟,主要是字符串的操作。问题是,如何判断出不可能的情况。这个题好像除了找是否会出现无限循环以外找不到更好的判断方法了。 如果是用字符数组来写的话 阅读全文
posted @ 2019-01-23 17:29 SaltyFishQF 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Prime Path 题目大意 从一个四位素数m开始,每次只允许变动一位数字使其变成另一个四位素数。求最终把m变成n所需的最少次数。 思路 BFS。搜索的时候,最低位为0,2,4,6,8可以先排除(偶数不会是素数),最高位是0的也可以排除。这个题判断素数的次数比较少,可以不打素数表。 题解 阅读全文
posted @ 2019-01-21 16:50 SaltyFishQF 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Find the Multiple 题目大意 找出一个只由0和1组成的能整除n的数。 思路 所有由0和1组成的数可以看作是某个只由0、1组成的数a经过以下两种变化得到 1、a * 10 2、a * 10+1 因此只需要用BFS搜索满足条件的数即可。 题解 阅读全文
posted @ 2019-01-21 15:27 SaltyFishQF 阅读(217) 评论(1) 推荐(1) 编辑
摘要: 题目链接:Fliptile 题目大意 有一个01矩阵,每一次翻转(0->1或者1->0)一个元素,就会把与他相邻的四个元素也一起翻转。求翻转哪些元素能用最少的步骤,把矩阵变成0矩阵。 思路 假设确定了第一行的状态,那么第二行需要翻转的所有元素都能确定(上一行如果是1就必须翻转)。因此对于所有第一排的 阅读全文
posted @ 2019-01-20 23:49 SaltyFishQF 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题目链接:棋盘问题 题目大意 在n*n的不规则的棋盘上摆放k枚棋子,要求每行和每列上只能有一枚棋子。 思路 和八皇后问题类似,只不过这个问题不一定是一行摆放一个。因此dfs的时候要多用一个参数来表示当前搜索的行数。 题解 阅读全文
posted @ 2019-01-19 23:34 SaltyFishQF 阅读(192) 评论(1) 推荐(1) 编辑
摘要: 题目链接:Catch That Cow 题目大意 FJ丢了一头牛,FJ在数轴上位置为n的点,牛在数轴上位置为k的点。FJ一分钟能进行以下三种操作:前进一个单位,后退一个单位,或者传送到坐标为当前位置两倍的地方。求FJ能找到牛的最短时间。 思路 BFS。在每一个点有三种选择,前进,后退,或者传送。要注 阅读全文
posted @ 2019-01-19 23:19 SaltyFishQF 阅读(188) 评论(1) 推荐(1) 编辑
摘要: 题目链接:http://poj.org/problem?id=2251 题目大意 你被困在了一个三维的迷宫,找出能通往出口的最短时间。如果走不到出口,输出被困。 思路 由于要找最短路径,其实就是BFS。一般的BFS是前后左右四个方向,这个题相当于是变成能往上下左右前后六个方向找。修改一下二维BFS搜 阅读全文
posted @ 2019-01-18 22:14 SaltyFishQF 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 在写C++控制台程序的时,如果使用Xcode或者Visual Studio之类的IDE,需要创建许多工程,会造成很多不便。有时,采用Vim或者Sublime text等编辑器编写简单的控制台程序能节省许多时间。但是,在编译时,就必使用命令行编译运行。这时,一个事先编写好的shell脚本能大大缩短调试 阅读全文
posted @ 2019-01-18 22:03 SaltyFishQF 阅读(1720) 评论(0) 推荐(0) 编辑