题目描述 1、用邻接矩阵存储方式,表示下面的图,并输出。 2、由上面的邻接矩阵产生邻接表,并输出。 3、编程完成从顶点0开始的深度优先遍历和广度优先遍历。 因邻接表不唯一,本题中要求邻接表按节点递增有序排列。可参考sample。 输入 无 输出 见sample。 先输出邻接矩阵。 空一行。 输出邻接表。 空一行。 输出dfs。 空一行。 输出bfs。 样例输出 复制 0 5 0 7 0 0 0 0 4 0 0 0 8 0 0 0 0 9 0 0 5 0 0 6 0 0 0 5 0 0 3 0 0 0 1 0 0: 1 3 1: 2 2: 0 5 3: 2 5 4: 3 5: 0 4 0 1 2 5 4 3 0 1 3 2 5 4 用c++


#include <iostream> #include <vector> #include <queue> using namespace std; void printMatrix(vector<vector<int>>& matrix) { for (int i = 0; i < matrix.size(); i++) { for (int j = 0; j < matrix[i].size(); j++) { cout << matrix[i][j] << " "; } cout << endl; } } void printAdjList(vector<vector<int>>& adjList) { for (int i = 0; i < adjList.size(); i++) { cout << i << ": "; for (int j = 0; j < adjList[i].size(); j++) { cout << adjList[i][j] << " "; } cout << endl; } } void dfs(vector<vector<int>>& adjList, vector<bool>& visited, int node) { visited[node] = true; cout << node << " "; for (int i = 0; i < adjList[node].size(); i++) { if (!visited[adjList[node][i]]) { dfs(adjList, visited, adjList[node][i]); } } } void bfs(vector<vector<int>>& adjList, vector<bool>& visited) { queue<int> q; q.push(0); while (!q.empty()) { int node = q.front(); q.pop(); visited[node] = true; cout << node << " "; for (int i = 0; i < adjList[node].size(); i++) { if (!visited[adjList[node][i]]) { q.push(adjList[node][i]); visited[adjList[node][i]] = true; } } } } int main() { vector<vector<int>> matrix = {{0, 5, 0, 7, 0, 0}, {0, 0, 4, 0, 0, 0}, {8, 0, 0, 0, 0, 9}, {0, 0, 5, 0, 0, 6}, {0, 0, 0, 5, 0, 0}, {3, 0, 0, 0, 1, 0}}; printMatrix(matrix); cout << endl; vector<vector<int>> adjList(matrix.size()); for (int i = 0; i < matrix.size(); i++) { for (int j = 0; j < matrix[i].size(); j++) { if (matrix[i][j] != 0) { adjList[i].push_back(j); } } } printAdjList(adjList); cout << endl; vector<bool> visited(matrix.size(), false); cout << "dfs: "; dfs(adjList, visited, 0); cout << endl << endl; cout << "bfs: "; fill(visited.begin(), visited.end(), false); bfs(adjList, visited); return 0; } [2024-11-25 16:18:26 | AI写代码神器 | 1517点数解答]
- 写一个c++程序:小哼参加奥数班,他遇到的第一个问题是这样的:口口口+口口口=口口口,小哼需要将九个数分别填进对应的空格内,使等式成立。现在小哼填了一个算式,你能帮他验证是否正确么? 输入格式(Format Input) 分别输入三个三位数,依次表示等式里的三个数。 输出格式(Format Output) 如果等式成立,输出:YES!,否则输出:NO! 样例(Sample) 输入样例1 (Sample Input 1) 复制 173 286 459 输出样例1 (Sample Output 1) YES!(146点数解答 | 2025-05-09 17:02:25)87
- 编一个c++程序:题目描述 (Description) 本题要求编写程序,计算4个整数的和与平均值。 输入格式(Format Input) 输入一行,4个整数,其间以空格分隔。 输出格式(Format Output) 输出一行,在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。 样例(Sample) 输入样例1 (Sample Input 1) 复制 1 2 3 4 输出样例1 (Sample Output 1) Sum = 10; Average = 2.5(178点数解答 | 2025-05-09 16:58:18)88
- 写一个c++程序: 题目描述 (Description) 任意输入一个字符,判断其ASCII是否是奇数,若是,输出YES,否则,输出NO; 例如,字符A的ASCII值是65,则输出YES,若输入字符B(ASCII值是66),则输出NO 输入格式(Format Input) 输入一个字符 输出格式(Format Output) 如果其ASCII值为奇数,则输出YES,否则,输出NO 样例(Sample) 输入样例1 (Sample Input 1) 复制 A 输出样例1 (Sample Output 1) YES(148点数解答 | 2025-05-09 17:04:08)84
- 题目描述 现有三条边长 a , b , c a,b,c,编写程序判断三条边能否构成三角形,若能构成三角形,则继续判断能否构成等腰三角形,等边三角形。 任意两边之和大于第三边才能构成三角形, 等腰三角形:至少有两条边相等的三角形 等边三角形:三条边都相等的三角形 输入格式 一行,三个正整数 a , b , c a,b,c 依次表示三条边的长度。 输出格式 输出对应的判断结果: 若能构成三角形,单独使用一行输出“三角形” 若能构成等腰三角形,单独使用一行输出“等腰三角形” 若能构成等边三角形,单独使用一行输出“等边三角形” 若无法构成三角形,输出 “No” input1 复制 3 3 3 output1 复制 三角形 等腰三角形 等边三角形 input2 复制 3 3 5 output2 复制 三角形 等腰三角形 input3 复制 1 2 3 output3 复制 No 语言方向:C++ 系统环境:Windows(214点数解答 | 2025-08-24 17:31:55)54
- 题目描述 现有一个正整数 n n 请判断 n n 是否为 3 , 5 , 7 3,5,7 的倍数 输入格式 一行,一个正整数 n n。 输出格式 判断 n n 是否为 3 , 5 , 7 3,5,7 的倍数,若是则输出对应的数字,否则不输出,注意输出时,如果有多个满足的数字,数字之间需要使用一个英文逗号间隔 input1 复制 9 output1 复制 3 input2 复制 70 output2 复制 5,7 input2 复制 210 output2 复制 3,5,7 语言方向:C++ 系统环境:Windows(185点数解答 | 2025-08-24 18:42:18)44
- 1.创建一个存储引擎为innodb、默认字符集为gbk的schooldb数据库,并在该数据库中创建teacher、class、course、student表。(注:带长下划线的为外键,表结构如下) teacher( teacher_no 宽度10 主键, teacher_name 宽度10 非空, teacher_contact 宽度20 非空) class( class_no 整型 自动编号 主键, class_name 宽度30 非空 唯一, department_name 宽度20 非空) course( course_no 整型 自动编号 主键, course_name 宽度10 非空, up_limit 整型 默认值60 , description 文本 非空, status 宽度6 默认值‘未审核’, teacher_no 宽度10 非空 唯一, student( student_no 宽度11 主键, student_name 宽度20 非空, student_contact 宽度20 空, class_no 整型)(312点数解答 | 2024-11-18 14:36:45)179
- def is_valid_position(n, m, x, y): if x <0 or x >= n or y < 0 or y >= m: return false return true def dfs(n, m, x, y, visited): directions = [(1, 2), (1, -2), (-1, 2), (-1, -2), (2,1), (2, -1), (-2, 1), (-2, -1)] visited[x][y] = true count = 0 for dx, dy in directions: new_x, new_y = x + dx, y + dy if is_valid_position(n, m, new_x, new_y) and not visited[new_x][new_y]: count += dfs(n, m, new_x, new_y, visited) visited[x][y] = false if count == 0: return1 if all(visited[i][j] for i in range(n) f(50点数解答 | 2024-11-18 19:36:52)133
- c++描述 一天,一个画家在森林里写生,突然爆发了山洪,他需要尽快返回住所中,那里是安全的。 森林的地图由R行C列组成,空白区域用点“.”表示,洪水的区域用“*”表示,而岩石用“X”表示,另画家的住所用“D”表示,画家用“S”表示。 有以下几点需要说明: 1.每一分钟画家能向四个方向移动一格(上、下、左、右)。 2.每一分钟洪水能蔓延到四个方向的相邻格子(空白区域)。 3.洪水和画家都不能通过岩石区域。 4.画家不能通过洪水区域(同时也不行,即画家不能移到某个格子,该格子在画家达到的同时被洪水蔓延到了,这也是不允许的)。 5. 洪水蔓不到画家的住所。 给你森林的地图,编写程序输出最少需要花费多长时间才能从开始的位置赶回家中。 输入描述 输入第一行包含两个整数R和C(R,C<=50)。 接下来R行每行包含C个字符(“.”、“*”、“X”、“D”或“S”)。 地图保证只有一个“D”和一个“S”。 输出描述 输出画家最快安全到达住所所需的时间,如果画家不可能安全回家则输出“KAKTUS”。 用例输入 1 3 3 D.* ... .S. 用例输出 1 (1384点数解答 | 2025-03-16 17:33:49)230
- 题目描述 输入三个整数 x , y , z x,y,z, 如果 x x为奇数,输出 1 ∼ y 1∼y之间的所有数,如果 x x为偶数,输出 1 ∼ z 1∼z之间的所有数。 输入格式 输入包括一行,包含三个整数 x , y , z x,y,z,数字之间用空格隔开。 输出格式 输出包括一行 如果 x x为奇数,输出 1 ∼ y 1∼y之间的所有数,如果 x x为偶数,输出 1 ∼ z 1∼z之间的所有数,输出时,数与数之间用1个空格隔开。 input1 复制 1 10 5 output1 复制 1 2 3 4 5 6 7 8 9 10 input2 复制 4 20 4 output2 复制 1 2 3 4 样例解释 对于样例 1 1: x x是奇数, y = 10 y=10,因此输出 1 ∼ 10 1∼10。 对于样例 2 2: x x是偶数, z = 10 z=10,因此输出 1 ∼ 4 1∼4 。 c++ (391点数解答 | 2025-06-14 09:57:45)121
- 题目描述 请从小到大输出 1 ~ n n 中所有个位为 5 5 或者个位为 8 8 的整数,每行 1 1 个。 输入格式 一行,一个正整数 n n。 输出格式 若干行,每行一个正整数,即 1 ~ n n 中所有满足条件的数。 input1 复制 20 output1 复制 5 8 15 18 input2 复制 30 output2 复制 5 8 15 18 25 28 数据规模与约定 对于 100 % 100% 的数据, 1 < n ≤ 10000 1<n≤10000。 语言: *********101112131415 在线(439点数解答 | 2025-07-20 15:05:34)69
- 题目描述 请从小到大输出 1 ~ n n 中所有个位为 5 5 或者个位为 8 8 的整数,每行 1 1 个。 输入格式 一行,一个正整数 n n。 输出格式 若干行,每行一个正整数,即 1 ~ n n 中所有满足条件的数。 input1 复制 20 output1 复制 5 8 15 18 input2 复制 30 output2 复制 5 8 15 18 25 28 数据规模与约定 对于 100 % 100% 的数据, 1 < n ≤ 10000 1<n≤10000。 语言: *********101112131415 在线 c++ (230点数解答 | 2025-07-20 15:09:35)105
- 题目描述 从键盘读入一个字符,有可能是大写字母、小写字母、数字字符中的一种,请编程判断,该字符具体是什么字符。 如果是大写字母请输出 "upper" , 如果是小写字母请输出 "lower" , 如果是数字字符请输出 "digit" 。 输入格式 一行,包含一个字符 c c。 输出格式 根据字符类型,输出对应的内容。 input1 复制 A output1 复制 upper input2 复制 5 output2 复制 digit 语言方向:C++ 系统环境:Windows(157点数解答 | 2025-08-30 21:50:59)32