2022 RoboCom 世界机器人开发者大赛-本科组(省赛)解题报告 | 珂学家


前言


题解

2022 RoboCom 世界机器人开发者大赛-本科组(省赛)。

感觉T5是最简单的,其他都不好做。


RC-u5 树与二分图

分值: 30分

思路: 容斥原理

树天然就是二分图,按深度d归类(偶数深度为S1,奇数深度为S2),如果新增边,还是二分图,说明

新增边 ( u , v ) , u ∈ S 1 , v ∈ S 2 新增边(u, v), u\in S1, v\in S2 新增边(u,v),u∈S1,v∈S2

只要能梳理出这个性质,那这题就非常的容易。

由容斥得

∣ S 1 ∣ ∗ ∣ S 2 ∣ − ( n − 1 ) |S1| * |S2| - (n - 1) ∣S1∣∗∣S2∣−(n−1)
n 为树的节点, n − 1 为树的边数 n 为树的节点, n-1为树的边数 n为树的节点,n−1为树的边数

S1和S2通过DFS或者bfs层序遍历即可

cpp 复制代码
#include <bits/stdc++.h>

using namespace std;

int color[2] = {0};

void dfs(vector<vector<int>>&g, vector<int>&color, int u, int fa, int c) {
    color[c]++;
    for (int v: g[u]) {
        if (v == fa) continue;
        dfs(g, color, v, u, 1 - c);
    }
}

int main() {
    int n;
    cin >> n;
    vector<vector<int>> g(n);
    vector<int> color(n);
    for (int i = 0; i < n - 1; i++) {
        int u, v;
        cin >> u>> v;
        u--; v--;
        g[u].push_back(v);
        g[v].push_back(u);
    }
    dfs(g, color, 0, -1, 0);

    int64_t p = (int64_t)color[0] * color[1];
        
    cout << (p-(n - 1)) << "\n";
    return 0;
}

写在最后

相关推荐
甲维斯10 小时前
opencode的“恶果”来了,吃掉100G空间!
人工智能
IT大白鼠11 小时前
PentestGPT作为AI运维编排工作流自动化底座的技术架构与应用价值评估
运维·人工智能·自动化·pentestgpt
yurenpai(27届找实习中)11 小时前
从零读懂 AI 智能客服(一):模块职责与 SSE 聊天链路(后端架构)
java·人工智能·架构·langchain4j
M78佐菲11 小时前
c语言学习笔记:排序与查找方法整理
linux·c语言·笔记·学习·算法
别动我齐刘海11 小时前
机器人运动控制学习4——状态估计 State Estimation
c++·人工智能·学习·目标检测·机器学习·机器人·自动驾驶
Behaviour11 小时前
Unity AI 生态横评对比:官方 AI Beta / Unity CLI / 团结 Codely / 社区 MCP 四大阵营选型
人工智能·unity·ai·游戏引擎·aigc·ai编程
盈飞无限11 小时前
AI智能SPC软件,制造业质量数字化转型核心
人工智能
狂云歌11 小时前
2025年读书回顾,AI+游戏+历史
人工智能·学习·游戏
码视野11 小时前
基于 Vue3 + Element Plus 的【企业级 AI 智能体工作流与私有知识库 (RAG) 协同平台】设计与实现(附完整源码与PRD)
人工智能·vue3
玹外之音11 小时前
Spring AI + Elasticsearch 向量存储实战:从零构建智能文档检索系统
人工智能·spring·elasticsearch