确实是神2333333333,一开始以为是01染色sb题,然而被打脸。。。

(蒟蒻不乱说,网上各种神犇的题解,还有图!!)

 #include <bits/stdc++.h>
#define LL long long
#define lowbit(x) x&(-x)
#define inf 0x3f3f3f3f
using namespace std;
inline int ra()
{
int x=,f=; char ch=getchar();
while (ch<'' || ch>'') {if (ch=='-') f=-; ch=getchar();}
while (ch>='' && ch<='') {x=x*+ch-''; ch=getchar();}
return x*f;
}
int n,cnt;
int head[],f[][];
struct edge{
int to,next;
}e[];
void insert(int x, int y)
{
e[++cnt].next=head[x]; e[cnt].to=y; head[x]=cnt;
}
void dfs(int x, int fa)
{
for (int i=; i<=; i++)
f[x][i]=i;
for (int i=head[x];i;i=e[i].next)
if (e[i].to!=fa) dfs(e[i].to,x);
for (int j=; j<=; j++)
{
for (int i=head[x];i;i=e[i].next)
if (e[i].to!=fa)
{
int mn=inf;
for (int k=; k<=; k++)
if (j!=k) mn=min(mn,f[e[i].to][k]);
f[x][j]+=mn;
}
}
}
int main(int argc, char const *argv[])
{
n=ra();
for (int i=; i<n; i++)
{
int x=ra(),y=ra();
insert(x,y); insert(y,x);
}
dfs(,);
int ans=inf;
for (int j=; j<=; j++)
ans=min(ans,f[][j]);
cout<<ans;
return ;
}

最新文章

  1. android开发------编写用户界面之线性布局
  2. mac下使用brew安装ffmpeg支持x265
  3. mysql的一个特殊问题 you can&#39;t specify target table &#39;cpn_regist&#39; for update in FROM clause
  4. VS类自定义版权注释
  5. 如何切换android的横屏与竖屏?
  6. cocos2d-x路~使得第一个字游戏(一个)
  7. js中角度计算
  8. source command not found in sh shell解决办法
  9. Android中实现定时器的四种方式
  10. python3之shutil高级文件操作
  11. libev-4.20编译安装及简单使用
  12. Several ports (8005, 8080, 8009)被占用
  13. CountDownLatch 源码解析—— countDown()
  14. Lua语法基础(一)
  15. JavaScript之Promise学习笔记
  16. Swagger2常用注解及其说明 (转)
  17. mybatis查询语句的背后之封装数据
  18. 23.Hibernate-基础.md
  19. openfalcon架构及相关服务配置详解
  20. js中使用0 “” null undefined {}需要注意

热门文章

  1. 利用TPL(任务并行库)构建Pipeline处理Dataflow
  2. Servlet(1):request和response对象
  3. 如何发布composer包
  4. ionic3记录之APP运行时网络判断
  5. 小程序的tabar顶部和底部导航的区别
  6. P1481 魔族密码(LIS变形)
  7. 090、Java中String类之判断两个int型整数是否相等
  8. Windows安装OpenSSH服务
  9. call 和 apply 用法
  10. Linux之关于用户的几个重要配置文件