题目简化和分析:

这是一道较为经典的二分图染色题。

二分图的基本概念

但这题让我们求得是完全二分图。

什么是完全二分图

\(cnt_{1}\) 表示染成颜色种类为 \(1\) 的个数。

\(cnt_{2}\) 表示染成颜色种类为 \(2\) 的个数。

因为是完全二分图所以它的节点个数为:

\[cnt_{1} \times cnt_{2}
\]

我们已经有题目给出的 \(n\) 个点,所以答案为:

\[cnt_{1} \times cnt_{2} -n+1
\]

注意不开 long long 见祖宗。

Solution:

#include<bits/stdc++.h>
using namespace std; typedef long long ll;
#define int long long
const int N=1e5+50; int n; struct edge{
int to,next;
}e[N<<1];
int head[N<<1],cnt;
void add_edge(int u,int v){
++cnt;
e[cnt].to=v;
e[cnt].next=head[u];
head[u]=cnt;
}
int res[3],col[N<<1];
void dfs(int n,int c){
col[n]=c;
res[c]++;
for(int i=head[n];i;i=e[i].next){
int y=e[i].to;
if(!col[y]){
dfs(y,3-c);
}
}
}
signed main()
{
scanf("%d",&n);
for(int i=1;i<n;++i){
int u,v;
scanf("%d%d",&u,&v);
add_edge(u,v);
add_edge(v,u);
}
dfs(1,1);
printf("%lld\n",res[1]*res[2]-n+1);
}

CF862B的更多相关文章

  1. CF862B Mahmoud and Ehab and the bipartiteness 二分图染色判定

    \(\color{#0066ff}{题目描述}\) 给出n个点,n-1条边,求再最多再添加多少边使得二分图的性质成立 \(\color{#0066ff}{输入格式}\) The first line ...

随机推荐

  1. Java使用数组存储成绩,输出成绩列表,总分,平均分

    代码如下: public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out. ...

  2. 手撕HashMap(一)

    HashMap基本了解 1. jdk1.7之前,HashMap底层只是数组和链表 2. jdk1.8之后,HashMap底层数据结构当链表长度超过8时,会转为红黑树 3. HashMap利用空间换时间 ...

  3. 图书商城项目练习①管理后台Vue2/ElementUI

    本系列文章是为学习Vue的项目练习笔记,尽量详细记录一下一个完整项目的开发过程.面向初学者,本人也是初学者,搬砖技术还不成熟.项目在技术上前端为主,包含一些后端代码,从基础的数据库(Sqlite).到 ...

  4. C++面试八股文:什么是空指针/野指针/悬垂指针?

    某日二师兄参加XXX科技公司的C++工程师开发岗位第30面: 面试官:什么是空指针? 二师兄:一般我们将等于0/NULL/nullptr的指针称为空指针.空指针不能被解引用,但是可以对空指针取地址. ...

  5. Java计算日期之间相差时间和解决浮点类型精度过长

    计算日期之间相差 此处相差计算以分钟为单位,自行可根据业务场景更改 /** * 测试时间相差分钟 */ @Test public void getTime() { SimpleDateFormat s ...

  6. ListView选中获取数据并弹出菜单项

    前言 作为一名Android小白,我在编写过程中,使用ListView列表,想要使用他来完成长按弹出菜单选项,并且还要进行事件操作,经过百度编程的经历后,终于成功完成.在此附上这块比较完整的代码,理论 ...

  7. Angular 报错 Cannot Resolve Module

    file:///E:/C#/angular-client/src/app/app.component.sass?FngResource 一些文件解释不到,最后发现是这个目录的问题,里面有个特殊的字符 ...

  8. log4j2---基于vulhub的log4j2漏洞复现---反弹shell

    基于vulhub的log4j2漏洞复现---反弹shell 1.方法一 环境准备: 和我上一篇fastjson1.2.24漏洞复现是一样的环境,方法也差别不大 声明:遵纪守法,仅作学习记录用处,部分描 ...

  9. 检测文件的格式——chardet模块

    f3 = open(file=path,mode='rb') data = f3.read() # print(data) f3.close() result = chardet.detect(dat ...

  10. AB实验遇到用户不均匀怎么办?—— vivo游戏中心业务实践经验分享

    作者:vivo 互联网数据分析团队 - Li Bingchao AB实验是业务不断迭代.更新时最高效的验证方法之一:但在进行AB实验效果评估时需要特别关注"用户不均匀"的问题,稍不 ...