专题
专题的题解
palax0
水题都做不出来的弱鸡
展开
-
2019 GDUT 新生专题Ⅳ选集 E题 Revenge of GCD
E - Revenge of GCD 链接 题目描述 给你两个数x和y,求它们的第k大公约数。 题目分析 由算术基本定理知 x=(a1x1)(a2x2)…(anxn) y=(a1y1)(a2y2)…(anyn) gcd(x,y)=(a1min(x1,y1))(a2min(x2,y2) )…(anmin(xn,yn)) x和y的第k大公约数离不开gcd(x,y)的因子,因此,题目可转化为求gcd(x...原创 2020-03-09 17:12:16 · 105 阅读 · 0 评论 -
2019 GDUT 新生专题Ⅲ选集 J题 畅通工程续
J - 畅通工程续 链接 题目描述 给出若干个城镇与若干条城镇间的道路,求从指定城镇A到指定城镇B的最短路。 题目分析 由题意可知,这是一道多源最短路问题,套用Floyd算法即可。 值得注意的是,题目没有说两个城镇之间只建一条路,因此输入时要注意。 代码 #include <cstdio> #include <cstring> #include <iostream&g...原创 2020-01-17 11:38:39 · 109 阅读 · 0 评论 -
2019 GDUT 新生专题Ⅲ选集 I题 还是畅通工程
I - 还是畅通工程 链接 题目描述 有若干个城镇,给出这些城镇两两之间的距离。为使任意两个城镇间都可以实现公路交通(不一定要直连),求修建公路长度的最小值。 题目分析 由题意可知,该题为最小生成树问题,套用Kruskal算法模板即可。 代码 #include <cstdio> #include <iostream> #include <algorithm> ...原创 2020-01-17 11:31:29 · 113 阅读 · 0 评论 -
2019 GDUT 新生专题Ⅲ选集 H题 畅通工程
链接 题目描述 给若干个城市与若干条已经建设好的道路,问最少还需建设多少条才能使任意两个城市之间可以实现交通(不一定要直接相连)。 题目分析 由题意可知,这题是并查集模板题,按照并查集题目的做法做就完事了。 代码 #include <iostream> #include <cstdio> #include <cstring> using namespace st...原创 2020-01-17 11:22:09 · 97 阅读 · 0 评论 -
2019 GDUT 新生专题Ⅳ选集 B题 Fedya and Maths
B - Fedya and Maths 链接 题目描述 求(1n + 2n + 3n + 4n) mod 5的值,n最大可以达到10的105次方。 题目分析 n为这么大的数字,显然不能用常规方法,猜想有规律可循。一个数 mod5 等于多少只需看个位是多少 (证明:(10*(前n-1位数)+(个位))%5=(个位)%4)。 由此可猜想 1n + 2n + 3n + 4n 的个位是有规律的。代入几组数...原创 2020-01-15 09:53:18 · 127 阅读 · 0 评论 -
2019 GDUT 新生专题I选集 G题 Safe Path(Gym - 101755H)
G - BFS 链接 来源:Safe Path(Gym - 101755H) 题目描述 你在玩一个rpg游戏,需要让主角从起点走到终点。地图由一个个小房间组成,有的房间有怪兽,他们的攻击范围都为d。如果怪兽走到你现在的格子所需要的步数少于等于d,gg。请你判断主角能否走到终点,如果能,输出到终点的最短路径长度。 题目分析 先把怪兽所在的房间以及怪兽能攻击的房间标记为已访问,再从起点开始进行正常的d...原创 2020-01-14 13:00:01 · 160 阅读 · 0 评论 -
2019 GDUT 新生专题I选集 D题 Accepted Necklace(HDU-2660)
D - DFS 链接 来源:HDU-2660 题目描述 给一些宝石,每个宝石都有自己的重量和价值,要求选取一定数量的宝石组成一条项链,使项链的重量不超过佩戴者能接受的最大重量,且价值最高。 题目分析 本来比较像一道dp题,但数据比较少,直接dfs即可。 代码 #include <cstdio> using namespace std; int value[1000]; int wei...原创 2020-01-14 10:47:29 · 118 阅读 · 0 评论 -
2019 GDUT 新生专题I选集 H题(Gym - 101375H)
H - 二分+交互 链接 来源:Gym - 101375H 题目描述 给一个数,通过询问的方式猜它是多少,可以询问最多50次,每次询问会给出">","<“或”="的回答。 题目分析 要在比较少的次数找出这个数,所以用二分,且这个数最大为1e9,可以在50次内找出。记得"flush the output"。 代码 #include <cstdio> using namespa...原创 2020-01-14 10:06:41 · 157 阅读 · 0 评论 -
2019 GDUT 新生专题I选集 F题(POJ - 1426)
F - BFS/DFS 链接 来源:POJ - 1426 题目描述 给定一个正整数n,找n的一个非零的倍数m,这个m应当在十进制表示时每一位上只包含0或者1。 解题思路 因为感觉dfs可能一去不复返,我选用了bfs。先取操作数为1,然后将操作数×10,分为0、1两条路,加入队列,后面的操作亦如此。 (温馨提示:提交language选G++比较容易ac,本菜鸡的代码选C++无法通过。。若有高见请您...原创 2020-01-13 17:31:42 · 117 阅读 · 0 评论 -
2019 GDUT 新生专题I选集 C题(POJ - 1979)
C - DFS/BFS 链接 来源:POJ - 1979 题目描述 房间里有两种地砖,一种为黑色,一种为红色。一个人在黑色砖上,他只能从黑色砖移动到黑色砖上,不能移动到红色砖上。给出房间地砖的布局,求这个人能走过多少块黑色砖。 题目分析 根据题目要求,从起点开始进行bfs即可,主要是练习bfs如何用代码实现。 代码 //bfs做法 #include <cstdio> #include ...原创 2020-01-13 17:15:27 · 118 阅读 · 0 评论 -
2019 GDUT 新生专题I选集 B题(POJ - 2386)
B - DFS/BFS 链接 来源:POJ-2386 题目描述 给出一份由’W’和’.'组成的图,算出其中水池的个数。其中水池由满足八个方向(上下、左右、对角线方向)至少有一个方向上有’W’的’W’组成。 题目分析 遍历图中的每一个点,遇到’W’就开始dfs,当周围没有未访问过的’W’就停止。为了便于判断其他的水池,将访问过的’W’都换成’.’(参考了白书) 代码 #include <std...原创 2020-01-13 17:02:27 · 137 阅读 · 0 评论 -
2019 GDUT 新生专题I选集 A题(POJ-3061)
A-尺取 链接 来源:POJ-3061 题目描述 给一串序列,求其中一段满足各元素的总和大于等于数S的连续子序列的最短长度。 题目分析 因为 专题名字是尺取 要求满足条件的连续子序列的最短长度,由缩短长度的过程可联想到使用尺取法。 注意是大于等于而不是只有等于。 注意边界的处理以免答案差1。 代码 #include <stdio.h> int main() { int ca; sc...原创 2020-01-13 16:41:04 · 125 阅读 · 0 评论 -
2019 GDUT 新生专题I选集 L题(CodeForces - 1260B)
L-二分??? 链接 来源:CodeForces - 1260B 题目描述 给两个数a、b,可以对其进行 ①a=a-x,b=b-2x②a=a-2x,b=b-x 两种操作(其中x为任意正整数),问能否通过这两种操作使a,b同时为0? 题目分析 设操作①选择的x为i,操作②选择的x为j,若数a,b满足条件,则有: a-i-2j=0 b-2i-j=0 ∴2a-b=3i 2b-a=3j 由此可知必要条...原创 2020-01-13 16:01:53 · 189 阅读 · 0 评论