AtCoder Beginner Contest 239题解
文章目录
- AtCoder Beginner Contest 239题解
-
- A - Horizon
- B - Integer Division
- C - Knight Fork
- D - Prime Sum Game
- E - Subtree K-th Max
A - Horizon 【题目链接】A - Horizon (atcoder.jp)
思路:模拟
【代码实现】
#include
#include
#include
#include
#include
#include
B - Integer Division 【题目链接】B - Integer Division (atcoder.jp)
思路:模拟
【代码实现】
#include
#include
#include
#include
#include
#include
C - Knight Fork 【题目链接】C - Knight Fork (atcoder.jp)
思路:判断八个方向上的某一个点,到所给的两个点的距离是否相等
知识点:模拟 + 数学
【代码实现】
#include
#include
#include
#include
#include
#include
D - Prime Sum Game 【题目链接】 D - Prime Sum Game (atcoder.jp)
【AtCoder|AtCoder Beginner Contest 239(A~E)题解】思路:判断ab中是否存在一个数,若这个数与cd中的任何一个数的和都不是质数说明前者获胜,反之后者胜
知识点:模拟 + 素数的判断
【代码实现】
#include
#include
#include
#include
#include
#include
E - Subtree K-th Max 【题目链接】E - Subtree K-th Max (atcoder.jp)
题意:求以v为根节点的子树的第k大的数
思路:递归深搜每一个节点(从根节点开始往下),将以该节点为根节点的所有子元素存储下来(前20个),然后进行降序排序,这样就得到了所有节点的前20个数的降序序列,输出第k大即可。
知识点:树/图的深度遍历 + 排序
为了方便对每一个节点的前20个元素进行存储和排序,我们用vector的二维数组来实现!
【代码实现】
#include
#include
#include
#include
#include
#include
推荐阅读