链接

树上的一些操作还是不是太好想 直接dfs下去 不是最优的

一个节点最多保留两个度 如果它有两个以上的子节点 那么就与父节点断开 与k-2个子节点断开 再重新连

 #pragma comment(linker, "/STACK:1024000000,1024000000")
#include <iostream>
#include<cstdio>
#include<cstring>
#include<stdlib.h>
#include<algorithm>
using namespace std;
#define N 2000010
struct node
{
int u,v,next;
}ed[N<<];
int n,head[N],t,ans;
void init()
{
t = ;
memset(head,-,sizeof(head));
}
void add(int u,int v)
{
ed[t].u = u;
ed[t].v = v;
ed[t].next = head[u];
head[u] = t++;
}
int dfs(int pre,int u)
{
int i;
int s=;
for(i = head[u] ; i!=- ; i = ed[i].next)
{
int v = ed[i].v;
if(v==pre) continue;
s+=dfs(u,v);
}
if(s>=)
{
if(u!=)
ans+=*(s-);
else
ans+=*(s-);
return ;
}
return ;
}
int main()
{
int i,tt,u,v;
scanf("%d",&tt);
while(tt--)
{
scanf("%d",&n);
init();ans=;
for(i = ; i < n ; i++)
{
scanf("%d%d",&u,&v);
add(u,v);
add(v,u);
}
dfs(-,);
printf("%d\n",ans+);
}
return ;
}

hdu4714Tree2cycle的更多相关文章

随机推荐

  1. android开发 单击按钮 实现页面间的跳转

    我的MainActivity.java部分代码 public class MainActivity extends ActionBarActivity { //不要定义button类型,会出错 Vie ...

  2. C++ Txt文档写入

    void writefile(student *s,int n,string filepath){ ofstream myfile; if(!myfile)//有错误 { exit(1); }else ...

  3. [翻译][MVC 5 + EF 6] 8:更新相关数据

    原文:Updating Related Data with the Entity Framework in an ASP.NET MVC Application 1.定制Course的Create和E ...

  4. 【nodemailer】 之邮件附件

    nodemailer 续 之前对nodemailer做了一个简单的了解,这篇文章主要研究一下如何添加附加文件 测试代码 //Created by yyrdl on 2015/10/2. var nod ...

  5. ECMAScript布尔操作符

    在ECMAScript中提供了Boolean()转换函数以及三个布尔操作符,这三个布尔操作符分别为逻辑非.逻辑与.逻辑或,这三个操作符通常用作于某些值的求反,比较模式等.学好这一点知识也非常的重要,奠 ...

  6. 利用javascript Location访问Url,重定向,刷新页面

    网上转来了, 方便以后查询参考 本文介绍怎么使用javascript Location对象读和修改Url.怎么重载或刷新页面.javascript提供了许多方法访问,修改当前用户在浏览器中访问的url ...

  7. ContextMenuOpening 事件

    ContextMenuOpening事件,不能在将要触发的目标ContextMenu中触发,只能包含 这个ContextMenu的父控件中触发该事件. 在ListView中,希望控制右键弹出菜单时,可 ...

  8. gentoo装X服务器时显卡选择

    前面装X服务器一直装不成功,每个步骤都按hand book上的进行,编译完成后,重启就是启动不了X服务器,最终才知道由于我是用的是 开源显卡nvidia,换成集成显卡inter后X启动成功,顺便说句, ...

  9. MySQL基础学习之索引

    创建新表新索引 CREATE TABLE 表名(数据名 类型,INDEX  索引名称(属性)) 创建存在表的索引 CREATE INDEX 索引名称  ON 表名(属性) 修改索引 ALTER TAB ...

  10. ubuntu 12 64 桌面版Oracle11g 安装

    1.Creating the Oracle Inventory Group sudo groupadd oinstall sudo groupadd dba sudo groupadd oper su ...