博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[USACO18DEC]The Cow Gathering
阅读量:4327 次
发布时间:2019-06-06

本文共 1622 字,大约阅读时间需要 5 分钟。

Description:

给定一棵树,每次删去叶子,有m个限制,分别为(a,b)表示a需要比b先删,为每个点能否成为最后被删的点

Hint:

\(n,m \le 10^5\)

Solution:

手模后会发现一个十分不显然的规律: 若a比b先删,则a在以b为根的子树中的点,都不能最后删,

于是这样就转化为这个题了:

每次直接打个差分标记

这题还要判无解的情况(这谁想得到啊)

#include #include 
#include
#include
#include
#include
#include
#include
#include
#include
#define ls p<<1 #define rs p<<1|1using namespace std;typedef long long ll;const int mxn=5e5+5;int n,m,cnt,tot,in[mxn],hd[mxn],vis[mxn],hd2[mxn],sz[mxn],dep[mxn],ans[mxn],tag[mxn],dfn[mxn],f[mxn][19];inline int read() { char c=getchar(); int x=0,f=1; while(c>'9'||c<'0') {if(c=='-') f=-1;c=getchar();} while(c<='9'&&c>='0') {x=(x<<3)+(x<<1)+(c&15);c=getchar();} return x*f;}inline int chkmax(int &x,int y) {if(x
y) x=y;}struct ed { int to,nxt;}t[mxn<<1];inline void add(int u,int v) { t[++cnt]=(ed) {v,hd[u]}; hd[u]=cnt;}inline void add2(int u,int v) { t[++cnt]=(ed) {v,hd2[u]}; hd2[u]=cnt; ++in[v];}int up(int u,int k) { for(int i=30;i>=0;--i) if(k&(1<
0; for(int i=hd[u];i;i=t[i].nxt) { int v=t[i].to; if(v==fa) continue ; solve(v,u,val); }}int flag=0;void check() { queue
q; for(int i=1;i<=n;++i) if(in[i]<2) q.push(i),vis[i]=1; while(!q.empty()) { int u=q.front(); q.pop(); for(int i=hd[u];i;i=t[i].nxt) { int v=t[i].to; --in[v]; if(!vis[v]&&in[v]<2) { vis[v]=1; q.push(v); } } for(int i=hd2[u];i;i=t[i].nxt) { int v=t[i].to; --in[v]; if(!vis[v]&&in[v]<2) { vis[v]=1; q.push(v); } } } for(int i=1;i<=n;++i) if(!vis[i]) flag=1; }int main(){ n=read(); m=read(); int u,v,w; for(int i=1;i
dfn[u]&&dfn[v]

转载于:https://www.cnblogs.com/list1/p/10497916.html

你可能感兴趣的文章
阶段3 3.SpringMVC·_07.SSM整合案例_02.ssm整合之搭建环境
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_3、快速创建SpringBoot应用之手工创建web应用...
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_04.ssm整合之编写SpringMVC框架
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_5、SpringBoot2.x的依赖默认Maven版本...
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_08.ssm整合之Spring整合MyBatis框架
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_9、SpringBoot基础HTTP其他提交方法请求实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_12、SpringBoot2.x文件上传实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_19、SpringBoot个性化启动banner设置debug日志...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_20、SpringBoot2.x配置全局异常实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第5节 SpringBoot部署war项目到tomcat9和启动原理讲解_23、SpringBoot2.x启动原理概述...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_21、SpringBoot2.x配置全局异常返回自定义页面...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_32..SpringBoot2.x持久化数据方式介绍...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_34、SpringBoot整合Mybatis实操和打印SQL语句...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_35、事务介绍和常见的隔离级别,传播行为...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_40、Redis工具类封装讲解和实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_37、分布式缓存Redis介绍...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_42、SpringBoot常用定时任务配置实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_39、SpringBoot2.x整合redis实战讲解...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第14节 高级篇幅之SpringBoot多环境配置_59、SpringBoot多环境配置介绍和项目实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_41、SpringBoot定时任务schedule讲解...
查看>>