第一题:
<连通块问题> 时间限制:1.00s 内存限制:128MB
题目描述
输入一个n个点m条边的图。然后输入两个整数x,y,判断结点x与结点y是否在同一个连通块中。
如果节点x与节点y在一个连通块中,输出该连通块内节点的数量,否则输出0。
输入格式
第一行输入两个整数
n,m (1≤n≤10^5, 1≤m≤2∗10^5)
接下来m行,每行输入两个整数 u,v(1≤u,v≤n)
u,v(1≤u,v≤n) 表示点u与v之间有一条无向边。
最后一行输入两个整数x,y(1≤x,y≤n)
输出格式
输出一个整数。如果节点x与节点y在一个连通块中,输出该连通块内节点的数量,否则输出0。
输入输出样例
输入#1 输出#1
5 3 .......... 3
1 2
1 3
4 5
2 3
输入#2 输出#2
5 3 ........... 0
1 2
1 3
4 5
2 4
先是深搜(dfs):
再展示广搜做法(bfs):
第二题:
<充满希望的课程安排> 时间限制:1.00 内存限制:128MB
题目描述 :
盖亚正在军事学院进修,他需要上完所有的课程,才能获得战争学博士学位。
但是军事学院的课程之间有一定的依赖关系。比如你需要学习了离心机使用课程,才能学习核燃料制备课程。但是有传言说军事学院已经被间谍渗透,所有人都无法学完所有的课程。
现在盖亚已经拿到了所有的课程依赖关系,想知道他是否能学完所有的课程。
输入格式
第一行输入一个整数 n(1≤n≤100000,1≤m≤200000),n为课程总数, m为依赖关系数量。
第 2 行到第 m+1行,每行输入2个整数 x,y。表示需要先上课程 x 才能上课程 y。
输出格式
如果可以上完所有课程,输出“YES”,否则输出"NO"。
输入输出样例
输入#1 输出#1
5 5 ......... YES
1 2
1 3
2 3
3 5
4 5
输入#2 输出#2
5 4 ............ NO
1 2
2 3
3 1
4 5
先判断题目为搜索类题型,即可用深搜或广搜,这里用深搜举例:
第三题:
<拼接质数1> 时间限制:1.00 内存限制:128MB
题目描述:
盖亚为了抵御邪恶敌人的进攻,必须建立一个防护罩。
防护罩可以由若干个魔力水晶组成,每个魔力水晶有一定的魔力值,
而防护罩的总魔力值为所有魔力水晶魔力值之和。
盖亚发现只有当防护罩的总魔力为质数时,才可以保证防护罩的正常运转。
现在盖亚有 n 个魔力水晶,并且知道每个魔力水晶的魔力值 Ai。。他想知道他有多少种构建防护罩的方案。
假设所有魔力水晶都是不同的。只要在一种方案中选择了第 i 个魔力水晶,
在另一种方案中没有选择第 i 个魔力水晶 (1≤i≤n),那么我们就认为这两种方案不同。
输入格式:
输入两行,第一行包含一个整数n(1≤n≤12),表示魔力水晶的数量。
第二行包含n个整数,表示每一个魔力水晶的魔力值Ai(1≤Ai≤1000)。
输出格式:
输出一个整数,表示可以组成质数的方案数量。
输入输出样例:
输入#1 输出#1
4 ................. 8
1 2 2 4
依旧用深搜:
第四题:
<充满希望的拼接质数2> 时间限制:1.00s 内存限制:128MB
题目描述:
盖亚为了抵御邪恶敌人的进攻,必须建立一个防护罩。
防护罩可以由若干个魔力水晶组成,每个魔力水晶有一定的魔力值,而防护罩的总魔力值为所有魔力水晶魔力值之和。
盖亚发现只有当防护罩的总魔力为质数时,才可以保证防护罩的正常运转。
现在盖亚有 n 个魔力水晶,并且知道每个魔力水晶的魔力值 Ai。他想知道他有多少种构建防护罩的方案。
假设所有魔力水晶除魔力值以外全部相同。
也就是说只有如果两个方案不同,当且仅当每个方案的水晶的魔力值从小到大排序后的序列不同。
输入格式:
输入两行,第一行包含一个整数 n(1≤n≤12),表示魔力水晶的数量。
第二行包含 n 个整数,表示每一个魔力水晶的魔力值 Ai(1≤Ai≤1000)。
输出格式:
输出一个整数,表示可以组成质数的方案数量。
输入输出样例:
输入#1 输出#1
4 ............... 5
1 2 2 4
看似与上题一样,实际用另一种方法能够更便捷,
用冷门的set。
如果不会用set,即可用搜索解决:
题毕。
2.补充笔记:
① set的使用方法:
② 文件判题:
举个例子:
用文件判题实现A+B: