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 ...
随机推荐
- 使用paypal-php-sdk开发php国际支付
参考:https://github.com/paypal/PayPal-PHP-SDK/wiki https://blog.csdn.net/markely/article/details/79044 ...
- 上传文件-layui+ashx
public void ProcessRequest (HttpContext context) { if (true) { context.Response.ContentType = " ...
- Trie-Tree
最近写了一些关于字典树的题目,这里做个简单的整理. 字典树,又叫单词查找树,顾名思义就是查单词的(不仅仅o),和词典一样.不同的是词典是用纸做的,而字典树是用树形结构构建的. 她用来快速检索你要的内容 ...
- JS做2048
首先我们了解一下2048这个游戏的原理: 他由一个4x4二维数组组成,在游戏一开始时候在随机位置随机生成一个2或者4 如: 1.每点击一次开始就刷新一次游戏界面: 2.通过键盘的上下左右四个方向键分别 ...
- Reeds-Shepp曲线和Dubins曲线
转载:https://www.cnblogs.com/huyanan/articles/6243694.html 什么是Reeds-Shepp曲线? 想象你下班开车回家,到了小区后想把车停 ...
- Ubuntu输入密码后重新返回登陆界面
Xserver启动时,需要读取文件~/.Xauthority.由于权限不够,导致登录失败 解决办法 ctrl+alt+F1组合键进入终端,修改文件权限 # ls -l .Xauthority -rw- ...
- C++ unordered_map桶增长规律
无序容器unordered_map存储为一组桶,各元素通过hash函数映射到各个桶中.心血来潮,来看一下桶的增长规律. #include <iostream> #include <s ...
- ffmpeg转MP4文件为m3u8格式
第一种转换命令 #转mp4为ts ffmpeg -y -i D:\videos\BgFCWkn00qPBmWVzIEf0eQjaekx0oRjlk9VY2PcR.mp4 -vcodec copy -a ...
- Python使用selenium模拟点击,进入下一页(三)
嗯,昨天呢,我们已经实现了自动输入百度然后搜索Cgrain,然后点击按钮,进入我的页面,在这里呢,有个问题 ActionChains(seleniumGoo).move_by_offset(-480, ...
- java_字符串
一.字符串变量 由一个专门的字符串类来进行存储处理字符串的,String类 二.字符串的连接 连接符:+ 转义字符 每个转义字符都是由两个符号组成,但是编译器把它当成一个字符. 三.字符串处理 1.求 ...