这是一个写题解的专栏
文章平均质量分 58
北辰yy
这个作者很懒,什么都没留下…
展开
-
Prime Path(素数路径)(BFS)
原题链接:Prime Path思路:1.线性筛,定义数组用于记录初始状态到达目前状态的最小改变次数2.使用BFS进行最短路搜索:将某一位的数变为0~9中的一个数据,得到的新数num需要满足的条件:1.1000 <= num <= 9992.新数num是素数3.这个数是第一次得到的C++11里有现成的to_string()和stoi()函数可以使用,作用是将数字转为字符串和字符串转为整型,但不知道为啥这两个函数在POJ里会CE于是就手写了一下#include <iost原创 2021-05-08 20:01:41 · 1649 阅读 · 1 评论 -
第十届蓝桥杯决赛C++B组试题B:质数拆分(记忆化搜索)
正确答案是55965365465060!在某一篇博客上说这一题的答案是1这显然是理解错了题意!先看原题:题意分析:一开始写这一道题的时候以为题意是让把2019分解为两个不相等的素数之和,但是我仔细研读题意后发现正确题意是把2019分解为很多个不相等是素数之和例如可以分解为:3 + 5 + 2011等等。这一题使用了记忆化搜索,记忆化搜索是DP的一类,不了解的同学先简单的来看一下记忆化搜索的概念:我也是前几天才学习了记忆化搜索,刚开始学习的时候在想为什么把记忆化搜索归为DP而不是DFS,直到.原创 2021-05-07 10:07:07 · 737 阅读 · 1 评论 -
两个数组(数论、GCD)
文章参考了我学长的博客两个数组给定两个数组,蒜头君可以执行任意次以下操作:从第一个数组中取一个数 x,从第二个数组中取一个数 y,用 x + y或则x−y 替换 x。问能否使得第一个数组中元素都变成相同的数?输入格式第一行一个整数 T,表示数据组数。对于每组数据:第一行两个整数 n, m,表示两个数组的长度。第二行 n 个整数,表示第一个数组 a。第三行 m 个整数,表示第二个数组 b。输出格式对每组数据输出一行,如果能够使第一个数组的元素都相同,输出 “Yes”,否则输出 “.原创 2021-04-15 20:56:37 · 459 阅读 · 0 评论 -
三维BFS走迷宫(POJ - 2251)
题目链接点这里BFS是一个很重要的算法常用于解决边的权重相同时的最短路径问题本文主要讲解三维BFS走迷宫在用法和实践与二维BFS的区别我们知道,简单的来说BFS = 队列,对于C++来说,走迷宫有现成的STL可以使用只需要调用头文件:#include <queue>//头文件二维走迷宫点的存储和取点方法:typedef pair<int,int> PII;//或者pair<char,char>,视具体情况而定queue<PII> q;//队列q原创 2021-04-12 10:00:09 · 423 阅读 · 0 评论 -
科学家看电影(离散化)
原题链接:Cinema离散化的方法大致有两种:利用C++中的STL;直接利用数组来存储离散化后的数据本题我们采用第二种。先分析一下题目大意:n位科学家去看电影,电影院上映了m部电影,每个科学家只会一种语言,先输入科学家的人数n(可能有多个科学家懂同一种语言),在输入科学家懂的语言,输入电影院上映的电影数量m,接下来的一行输入电影的音频语言(b[i]),下一行输入电影的字幕语言(c[i]),注意:b[i]和c[i]是同一部语言的音频语言和字幕语言,且b[i] != c[i],如果一个科学家能原创 2021-03-18 15:36:33 · 241 阅读 · 0 评论