7.27T2
不可做题
sol:首先有个很显然的性质就是答案一定是在叶子上最优,然后画画图发现就是从最底层看,如果一条链就看做一个点,向上的第一颗非链的节点,它的儿子数-1就会对答案贡献,所有这样的累加起来就是答案了
实现挺容易的,记一个数组bo[i]表示i是否是链,XJB搞搞就可以了
#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{
ll s=; bool f=; char ch=' ';
while(!isdigit(ch)) {f|=(ch=='-'); ch=getchar();}
while(isdigit(ch)) {s=(s<<)+(s<<)+(ch^); ch=getchar();}
return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
if(x<) {putchar('-'); x=-x;}
if(x<) {putchar(x+''); return;}
write(x/); putchar((x%)+'');
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const int N=,M=;
int n,ans=;
int deg[N],tot=,Next[M],to[M],head[N];
bool bo[N];
inline void Link(int x,int y)
{
Next[++tot]=head[x]; to[tot]=y; head[x]=tot; deg[y]++;
}
inline void dfs(int x,int fat)
{
// cout<<"x="<<x<<' '<<"fat="<<fat<<endl;
int e,sum=;
bool flg=;
bo[x]=;
for(e=head[x];e;e=Next[e]) if(to[e]!=fat)
{
if(flg)flg=; else bo[x]=;
dfs(to[e],x);
if(!bo[to[e]])bo[x]=; else sum++;
}
if(sum>) ans+=sum-;
}
int main()
{
freopen("iiiiiii.in","r",stdin);
freopen("iiiiiii.out","w",stdout);
int i,x,y;
R(n);
if(n==) return puts(""),;
for(i=;i<n;i++)
{
R(x); R(y); Link(x,y); Link(y,x);
}
for(i=;i<=n;i++) if(deg[i]>) {dfs(i,); Wl(ans); return ;}
puts("");
return ;
}
7.27T2的更多相关文章
- Activity中与ListActivity中使用listview区别
Activity中与ListActivity中使用listview区别 一.Activity中与ListActivity中使用listview区别(本身没多大区别,只是ListActivity在lis ...
- 深入剖析Classloader(二)--根类加载器,扩展类加载器与系统类加载器
原文地址:http://yhjhappy234.blog.163.com/blog/static/31632832201152555245584/?suggestedreading&wumii ...
随机推荐
- (二十九)JSP之国际化
导入 <%@ taglib url="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 创建三个语 ...
- (二)第一个mybatis项目
1. 引包 本例中使用maven构造项目,所以只需配置依赖即可引相应的包. pom.xml <project xmlns="http://maven.apache.org/POM/4. ...
- (十一)springmvc和spring的整合
1:Maven引入相关的jar包. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht ...
- 前端开发 Vue -3axios
Axios是什么? 应该念“阿克希奥斯”……但是太长太拗口,我一般念“阿笑斯”…… Axios 是一个基于 promise 的 HTTP 库,简单的讲就是可以发送get.post请求.说到get.po ...
- centos7安装google浏览器
1. 配置yum源 在目录 /etc/yum.repos.d/ 下新建文件 google-chrome.repo cd /ect/yum.repos.d/ vim google-chrome.repo ...
- 9.Redis的Java客户端Jedis
Redis的Java客户端Jedis Jedis所需jar包 commons-pool-1.6.jar jedis-2.1.0.jar 1.Jedis常用操作(jedis中的api 和 我们在 l ...
- 2.Buffer 缓冲区
/*缓冲区(Buffer)*/ Buffer 就像一个数组,可以保存多个相同类型的数据.根据数据类型不同(boolean 除外),有以下Buffer常用子类: /*ByteBuffer*/(常用) . ...
- asp.net mvc 防止跨站攻击
View @using (Html.BeginForm("Contact","Home",FormMethod.Post)) { @Html.AntiForge ...
- 前端(HTML)+后端(Django)+数据库(MySQL):用户注册及登录演示
1.创建一个html文件用于简单的网页注册demo <!DOCTYPE html> <html lang="en"> <head> <me ...
- webstorm 2018.2.5最新激活方式
亲测时间 2019年6月27日 08:45:52 下载破解文件: https://pan.baidu.com/s/1CMh5AYgewZflMVWL9BO-hA 打开webstorm / bi ...