pengshi level
获赞
10
粉丝
0
关注
4
看过 TA
81
华南师范大学
2026
Java
IP属地:广东
Javaer
私信
关注
import java.util.*;import java.io.*;public class Main {// 并查集:父节点映射 + 秩映射(按秩合并用)public static HashMap<Integer, Integer> parent = new HashMap<>();// 查找(路径压缩 + 自动初始化节点)public static int find(int x) {// 节点不存在则初始化:父节点是自己,秩为1parent.putIfAbsent(x, x);// 路径压缩(迭代版,避免递归栈溢出)while (!parent.get(x).equals(x)) {parent.put(x, parent.get(parent.get(x))); // 父节点指向祖父节点x = parent.get(x);}return x;}// 合并(按秩合并 + 路径压缩)public static void merge(int x, int y) {int rootX = find(x);int rootY = find(y);if (rootX == rootY) return;// 按秩合并:将秩小的树合并到秩大的树parent.put(rootY, rootX);}// 生成统一的边key(避免{a,b}和{b,a}重复)static String getRelationKey(int a, int b) {return a < b ? a + "," + b : b + "," + a;}public static void main(String[] args) throws IOException {// 替换Scanner为BufferedReader,提升输入效率BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String[] parts = br.readLine().split(" ");int n = Integer.parseInt(parts[0]);int m = Integer.parseInt(parts[1]);int q = Integer.parseInt(parts[2]);// 存储原始边Set<String> edges = new HashSet<>();for (int i = 0; i < m; ++i) {parts = br.readLine().split(" ");int a = Integer.parseInt(parts[0]);int b = Integer.parseInt(parts[1]);edges.add(getRelationKey(a, b));}// 存储有效操作(过滤无效删除)ArrayList<int[]> ops = new ArrayList<>();for (int i = 0; i < q; ++i) {parts = br.readLine().split(" ");int op = Integer.parseInt(parts[0]);int a = Integer.parseInt(parts[1]);int b = Integer.parseInt(parts[2]);if (op == 1) {String key = getRelationKey(a, b);if (edges.contains(key)) {edges.remove(key);ops.add(new int[]{op, a, b});}} else {ops.add(new int[]{op, a, b});}}// 初始化:合并所有未被删除的边(最终状态)for (String key : edges) {String[] nodes = key.split(",");int a = Integer.parseInt(nodes[0]);int b = Integer.parseInt(nodes[1]);merge(a, b);}// 倒序处理操作,记录答案List<Boolean> answers = new ArrayList<>();for (int i = ops.size() - 1; i >= 0; i--) {int[] op = ops.get(i);if (op[0] == 1) {// 原删除操作 → 逆操作:合并merge(op[1], op[2]);} else {// 原查询操作:判断是否连通boolean connected = find(op[1]) == find(op[2]);answers.add(connected);}}// 逆序输出答案for (int i = answers.size() - 1; i >= 0; --i) {System.out.println(answers.get(i) ? "Yes" : "No");}}}
投递美团等公司10个岗位
0 点赞 评论 收藏
分享
主要是前端和网络安全知识缺乏,尤其是JavaScript语言1. osi模型:物理层、数据链路层、网络层、网际层、会话层、表示层、应用层。2. Linux查询路由的命令  ip route 和 route、netstat -r。3. XSS 主要分为 3 种类型,分别是反射型(非持久性,通过 URL 等方式传入)、存储型(持久性,攻击脚本被服务器永久存储)和 4. DOM 型(客户端 XSS,攻击脚本通过修改页面 DOM 结构触发),核心区别在于攻击脚本的存储与执行方式。5. CSS选择器优先级:!important > 内联样式 > ID 选择器 > 类 / 属性 / 伪类选择器 > 元素 / 伪元素选择器 > 通配符 > 继承样式6. 外部导JavaScript包时候,要放在</body> 结束标签前。7. JavaScript 中 const 保证的是变量引用地址不可变。如果存在存放超过数据大小的值,其中间会标注 7 * empty。8. 在 JavaScript 中,数字类型(number)遵循IEEE 754 标准,采用 64 位双精度浮点数 格式存储。9. DDOS 是 分布式拒绝服务攻击(Distributed Denial of Service)主要破坏系统的 “可用性”。10. Mysql 视图的概念:视图(View) 是一种虚拟的表,它基于 SQL 查询语句定义,并不实际存储数据,而是在查询时动态生成结果。视图无法调用另一个视图。11. 网络安全边界防护:防火墙、入侵检测、防病毒。12. 软件缺陷的完整转台变化通常包含发现(打开)、处理(如修复、确认等)、关闭等环节。
投递格力等公司10个岗位
0 点赞 评论 收藏
分享
2022-03-30 19:53
华南师范大学 Java
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务