文库 真题 C++真题

2024年6月电子学会C语言编程等级考试七级真题试卷

电子学会真题 c语言等级考试真题 c语言题库 DOCX   9页   下载0   2024-09-02   浏览160   收藏0   点赞0   评分-   5131字   免费文档
温馨提示:当前文档最多只能预览 2 页,若文档总页数超出了 2 页,请下载原文档以浏览全部内容。
2024年6月电子学会C语言编程等级考试七级真题试卷 第1页
2024年6月电子学会C语言编程等级考试七级真题试卷 第2页
剩余7页未读, 下载浏览全部
青少年软件编程(C语言)等级考试试卷(七级) 分数:100 题数:4 一、编程题(共4题,共100分) 1. 玩转二叉树 战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报。注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改变其他城市之间的连通性,则不要发出警报。 时间限制:5000 内存限制:65536 输入 输入在第一行给出两个整数 N(0 < N <=500)和 M(<=5000),分别为城市个数(于是默认城市从 0 到 N-1 编号)和连接两城市的通路条数。随后 M 行,每行给出一条通路所连接的两个城市的编号,其间以 1 个空格分隔。在城市信息之后给出被攻占的信息,即一个正整数 K 和随后的 K 个被攻占的城市的编号。 注意:输入保证给出的被攻占的城市编号都是合法的且无重复,但并不保证给出的通路没有重复。 输出 对每个被攻占的城市,如果它会改变整个国家的连通性,则输出“Red Alert: City k is lost!”,其中k是该城市的编号;否则只输出“City k is lost.”即可。如果该国失去了最后一个城市,则增加一行输出“Game Over.”。 样例输入 5 4 0 1 1 3 3 0 0 4 5 1 2 0 4 3 样例输出 City 1 is lost. City 2 is lost. Red Alert: City 0 is lost! City 4 is lost. City 3 is lost. 试题编号:20240622-7-01 试题类型:编程题 标准答案: 试题难度:一般 试题解析: 展示地址:点击浏览 考生答案: #include<bits/stdc++.h> using namespace std; const int maxn = 505; bool lost[maxn], vst[maxn]; vector<int> G[maxn]; int n, m, ans; void dfs(int u) { vst[u] = true; for(int & x : G[u]) if(!lost[x] && !vst[x]) dfs(x); } int test() { int res = 0; for(int i = 0; i < n; i++) vst[i] = false; for(int i = 0; i < n; i++) { if(lost[i]) continue; if(!vst[i]) ++res, dfs(i); } return res; } int main() { #ifdef MyTest freopen("Sakura.txt", "r", stdin); #endif cin >> n >> m; for(int i = 0; i < m; i++) { int x, y; cin >> x >> y; G[x].push_back(y); G[y].push_back(x); } int k; cin >> k; ans = test(); for(int i = 0; i < k; i++) { int x; cin >> x; lost[x] = true; int now = test(); if(now > ans) printf("Red Alert: City %d is lost!\n", x); else printf("City %d is lost.\n", x); ans = now; } if(k == n)
202406 C语言七级,2024年6月电子学会C语言编程等级考试七级真题试卷
下载提示

下载及版权说明:6547网文库内容来自网络及各平台公开内容(属于用户上传,不保证正确性,只做参考),旨在帮助同学们学习少儿编程相关知识及内容,仅限内部学习及使用,以分享为主,下载本文档之后请合法使用相关、真题、素材、课件、教程等内容,若内容存在侵权,请进行 举报 及查看 免责声明