题目链接

考虑每条路径都经过的一个点,它可以到达每个出度为零点(终点),且每个入读为零点(起点)都能到达它,

拓扑排序记录下每个结点能到达的出度为零点的个数和沿反边能到达的入读为零点个数,判断是否等于总个数即可

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std; const int MAXN=100010;
const int MAXM=400010; int n;
int Head[MAXN],num,du[MAXN],cnt1,f1[MAXN];
int _Head[MAXN],_num,_du[MAXN],cnt2,f2[MAXN]; struct Edge{
int to,nxt;
}e[MAXN],_e[MAXN]; inline void add(int x,int y){
e[++num].to=y;
e[num].nxt=Head[x];
Head[x]=num;
}
inline void _add(int x,int y){
_e[++_num].to=y;
_e[_num].nxt=_Head[x];
_Head[x]=_num;
} int dfs1(int x){
if(f1[x]) return f1[x];
int sum=0;
if(du[x]==0) ++sum;
for(int i=Head[x];i;i=e[i].nxt){
int to=e[i].to;
sum+=dfs1(to);
}
return f1[x]=sum;
} int dfs2(int x){
if(f2[x]) return f2[x];
int sum=0;
if(_du[x]==0) ++sum;
for(int i=_Head[x];i;i=_e[i].nxt){
int to=_e[i].to;
sum+=dfs2(to);
}
return f2[x]=sum;
} int main()
{
scanf("%d",&n);
int x,y;
for(int i=1;i<n;++i){
scanf("%d%d",&x,&y);
add(x,y); ++du[x];
_add(y,x); ++_du[y];
}
for(int i=1;i<=n;++i){
if(du[i]==0) ++cnt1;
if(_du[i]==0) ++cnt2;
}
for(int i=1;i<=n;++i)
if(!f1[i]) dfs1(i);
for(int i=1;i<=n;++i)
if(!f2[i]) dfs2(i);
for(int i=1;i<=n;++i)
if(_du[i]!=0&&f1[i]==cnt1&&f2[i]==cnt2)
printf("%d\n",i);
return 0;
}

【luoguP2999】 [USACO10NOV]巧克力牛奶Chocolate Milk的更多相关文章

  1. P1208 [USACO1.3]混合牛奶 Mixing Milk

    P1208 [USACO1.3]混合牛奶 Mixing Milk 题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业 ...

  2. [洛谷P2852] [USACO06DEC]牛奶模式Milk Patterns

    洛谷题目链接:[USACO06DEC]牛奶模式Milk Patterns 题目描述 Farmer John has noticed that the quality of milk given by ...

  3. 洛谷——P1208 [USACO1.3]混合牛奶 Mixing Milk

    P1208 [USACO1.3]混合牛奶 Mixing Milk 题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业 ...

  4. 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk

    P1208 [USACO1.3]混合牛奶 Mixing Milk 题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业 ...

  5. 题解 P1208 【[USACO1.3]混合牛奶 Mixing Milk】

    其实根本没有一楼dalao描述的那么麻烦...... 一楼dalao其实吧,采用了一种纯属模拟的方式. 下面是我的大跃进思想 但是一个个地做减法是不是太慢了?(大跃进思想) 于是我们是不是可以直接进行 ...

  6. 洛谷P3093 [USACO13DEC]牛奶调度Milk Scheduling

    题目描述 Farmer John has N cows that need to be milked (1 <= N <= 10,000), each of which takes onl ...

  7. luogu P2852 [USACO06DEC]牛奶模式Milk Patterns 后缀数组 + Height数组 + 二分答案 + 扫描

    后缀数组有一个十分有趣的性质: $height[rk[i]] >= height[rk[i-1]] - 1$    Code: #include <bits/stdc++.h> #d ...

  8. P3074 [USACO13FEB]牛奶调度Milk Scheduling

    题目描述 Farmer John's N cows (1 <= N <= 10,000) are conveniently numbered 1..N. Each cow i takes ...

  9. 洛谷P1208 [USACO1.3]混合牛奶 Mixing Milk【贪心+背包】

    由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的.此 ...

随机推荐

  1. C# vb .net实现真实阴影特效滤镜

    在.net中,如何简单快捷地实现Photoshop滤镜组中的真实阴影效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第 ...

  2. pandas.to_datetime() 只保留【年-月-日】

    Outline pandas.to_datetime()  生成的日期会默认带有 [2019-07-03 00:00:00]的分钟精度:但有时并不需要这些分钟精度: 去掉分钟精度 可以通过pandas ...

  3. 用cProfile做性能分析【转】

    原文地址: https://www.cnblogs.com/kaituorensheng/p/4453953.html

  4. Java之路---Day02

    2019-10-17-20:21:22 顺序结构: 概述:顺序执行,根据编写的顺序,从上到下执行语句 判断语句1-if: if语句第一种格式: if(关系表达式){ 语句体; } 执行流程: 1.首先 ...

  5. 一个爬虫的demo,requests,beatuifulsoup使用的

    爬虫的demo,requests,beatuifulsoup import os,re import requests import random import time from bs4 impor ...

  6. 图说jdk1.8新特性(4)--- stream

    总述 jdk1.8引入了Stream相关的API,通过该API.可以实现流式编程,使你写代码的时候行云流水 Stream使得集合的转换变得更加简单,原来可能需要写多个for循环或者多个if判断的,直接 ...

  7. Nginx 反向代理Tomcat服务器获取真实IP问题

    1.nginx.conf 配置 修改 Server location配置 增加 proxy_set_header X-Real-IP $remote_addr; #保留代理之前的真实客户端ip pro ...

  8. C# EF框架 频繁连接性能损耗

    目的 测试EF框架在一次连接中多次保存和多次连接的耗时对比 测试环境 数据库SqlServer 2012 R2 EF框架6.2.0版本 数据库内容 ID UserName Password Creat ...

  9. 【技巧】如何使用客户端发布BLOG+如何快速发布微信公众号文章

    [技巧]如何使用客户端发布BLOG+如何快速发布微信公众号文章   1  BLOG文档结构图     2  前言部分   2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也 ...

  10. Java集合框架总结2_Map

    1. Map接口概述 Map与Collection并列存在.用于保存具有映射关系的数据:key-value: Map中的key和value都可以是任何应用类型的数据: Map中的key用Set来存放, ...