有点小遗憾,倒数第二题卡了半天最后也没写完,这道题只混了十五分,以2分之差没能冲进省一。

现在来看这题其实就是一个简单的二分图。我们只需要统计出两边的点数a和b,然后a b相乘减去(n - 1)就是答案了。

以样例来看左边共5个点,右边有2个点,二分图一共可以建10条边,题目已经帮我们建好了6条,所以我们最多只能建4条边。(个人建议:比赛的时候不要使用万能头。)

设 G=(V,E) 是一个无向图,如果顶点集合 V 可分割为两个互不相交的子集 (A,B),并且每条边 (i,j)∈E 的两个端点 i 和 j 分别属于这两个不同的顶点子集,则称图 G 为一个二分图。

现在给定一棵树 T,要求选择树中两个没有边相连的结点 i 和 j,使得将无向边 (i,j) 加进 T 后能够构成二分图。你的任务是计算满足这个要求的选择方案有多少种。

输入格式:

输入第一行给出一个正整数 N (2≤N≤106),表示树中结点的个数。

接下来 N−1 行,每行给出树中一条边的两端结点编号,以空格分隔。结点编号从 1 开始。题目保证输入给出的是一棵树中所有的边。

输出格式:

在一行中输出方案数。注意:连接 (1,2) 和 (2,1) 视作同一个方案。

输入样例:

7
1 2
2 3
2 4
2 5
2 6
4 7

输出样例:

4

代码长度限制

16 KB

Java (javac)

时间限制

1300 ms

内存限制

512 MB

其他编译器

时间限制

500 ms

内存限制

64 MB

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std ;
typedef long long LL ;
const int N = 1000010 , M = N * 2 ;
LL n , x , y ;//因为数据范围1e6 相乘会爆int
int h[N] , e[M] , ne[M] , idx , col[N] ;//数组模拟链表来存储边void add(int a , int b)
{e[idx] = b , ne[idx] = h[a] , h[a] = idx ++ ;
}
void dfs(int u , int c)
{col[u] = c ;if(c == 1) x ++ ;else y ++ ;for(int i = h[u] ; ~i ; i = ne[i]){int j = e[i] ;if(!col[j]) dfs(j , 3 - c) ;//没有染色的点染色}return ;
}int main()
{cin >> n ;memset(h , -1 , sizeof h) ;for(int i = 1 ; i <= n - 1 ; i ++){int a , b ;cin >> a >> b ;add(a , b) , add(b , a) ;//无向边}for(int i = 1 ; i <= n ; i ++)if(!col[i]) dfs(i , 1) ;//左边标记为1,右边标记为2cout << x * y - n + 1 << endl ;return 0 ;
}

树与二分图-2022RoboCom 世界机器人开发者大赛-本科组(省赛)相关推荐

  1. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)挨打记录

    总结: 在pintia平台做题千万得早点做会的题,要不然等到最后全是疯狂提交撞数据骗分的,最后五分钟,提交一次题要等前面6900多人,根本来不及. 多看板子少摸鱼 学校实验室是真滴爽 做题连接 登录签 ...

  2. 2021 RoboCom 世界机器人开发者大赛-本科组(初赛)【完结】

    看群友在水这个比赛玩玩,于是也去打了一下重现赛. 事实证明,群友轻松AK,而我只会暴力. 总的难度就是PAT甲的难度吧,数据很不错,恶心的一批. 补题完结 2021RoboCom机器人开发者大赛官方题 ...

  3. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)-- 第五题 树与二分图 (已完结)

    其它题目 题目 RC-u5 树与二分图 设 G=(V,E) 是一个无向图,如果顶点集合 V 可分割为两个互不相交的子集 (A,B),并且每条边 (i,j)∈E 的两个端点 i 和 j 分别属于这两个不 ...

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

    文章目录 1.不要浪费金币 2.智能服药助手 3.跑团机器人 4.攻略分队 5.树与二分图 1.不要浪费金币 哲哲最近在玩一个游戏,击杀怪物能获得金币 -- 这里记击杀第 i 个怪物获得的金币数量为 ...

  5. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛) CAIP 完整版题解

    文中代码均可AC, 有任何问题欢迎在评论区留言讨论 文章目录 RC-u1 不要浪费金币 题解 AC代码 RC-u2 智能服药助手 题解 AC代码(带注释) RC-u3 跑团机器人 题解 AC代码(详细 ...

  6. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)T4, T5

    RC-u4 攻略分队 题意 把 6 支队伍分成两组,把所有的可能方案按照下面的筛选方式找到最佳方案: 思路 比较简洁的一个方法是,将每一条方案中的元素都存储到结构体中,然后在结构体中重载运算符,根据给 ...

  7. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)-- 第三题 跑团机器人 (已完结)

    其它题目 题目 RC-u3 跑团机器人 在桌面角色扮演游戏(TRPG,俗称"跑团")中,玩家需要掷出若干个骰子,根据掷出的结果推进游戏进度.在线上同样可以跑团,方法是由玩家们向机器 ...

  8. 2022 RoboCom 世界机器人开发者大赛-本科组(国赛)

    文章目录 1.智能红绿灯 2.女王的大敕令 3.战利品分配 4.变牛的最快方法 5.养老社区 1.智能红绿灯 为了最大化通行效率同时照顾老年人穿行马路,在某养老社区前,某科技公司设置了一个智能红绿灯. ...

  9. 2022 RoboCom 世界机器人开发者大赛-高职组 国赛(RC-v3 智能护理中心统计)

    RC-v3 智能护理中心统计 题意: 给出各管理节点的关系,和每个管理节点的照护老人数量. 两种操作:1. 转院. 2. 查询 该管理节点以下总的老人人数. 知识点: 树. #include<b ...

最新文章

  1. 笨小猴pascal题解
  2. 编译libmysqlclient.a静态库
  3. c语言重新进入for循环,大佬们帮帮忙 帮我改改 怎样能在输入Y后 再次进行for循环...
  4. 【ZOJ - 1163】The Staircases(dp)
  5. 数学差、物理差、英语又烂的放牛娃,后来竟成了清华校长,还做出了诺奖级的研究成果!...
  6. Java基础 线程同步
  7. Ballerina重塑了云原生编程
  8. 深度学习之遥感变化检测数据集整理
  9. Ubuntu 的护眼软件 :RedShift
  10. Jenkins+gitlab配置身份验证令牌
  11. 软件工程课程的实践(综合实践能力创新实训 3)解决方案
  12. 瑞安java,​温州瑞安JAVA 培训班
  13. 对策论基础---矩阵对策的解法
  14. 广州欧米区块链科技×浙江墨客奇迹区块链科技丨达成战略合作共识
  15. 精妙绝伦的jQuery——改进导航:菜单、标签及折叠选项
  16. python登陆界面代码_Python-PyQt5-第一个小项目--登录框--login
  17. 《诗经·甘棠》:两种相思一样情 转自国学
  18. 2.特定领域知识图谱融合方案:文本匹配算法之预训练Simbert、ERNIE-Gram单塔模型等诸多模型【三】
  19. 给windows 账号添加用户
  20. 流程中某个环节落地不好怎么办?

热门文章

  1. python线程池wait_python线程池 ThreadPoolExecutor 的用法示例
  2. 计算机更改虚拟内存有用吗,虚拟内存有什么用处,对电脑的性能有什么影响.
  3. 微信小程序格式化JSON时间戳
  4. iview中table返回的标签设置禁用
  5. D2-Net: A Trainable CNN for Joint Description and Detection of Local Features精读
  6. EJB3 helloworld
  7. Yetiarnold for maya一键安装部署(二)另附yetiarnold for maya command line render
  8. jsp+pageHelper分页
  9. 怎么在电脑找到菜单android,在打开的开始菜单中找到我的电脑(计算机)
  10. 动态频谱共享(DSS)功能介绍及Log分析