首页 > 其他分享 >P8552 Rabbit

P8552 Rabbit

时间:2022-09-25 21:26:44浏览次数:23  
标签:11 P8552 int fa 600000 Rabbit find Size

#include<bits/stdc++.h>
using namespace std;
class solve{
	public:
		int fa[600000+11];
		int Size[600000+11];
		struct node{
			int nt,to;
		}e[600000+11];
		int h[600000+11];
		int ans,cnt,n;
		int find(int x)
		{
			return fa[x]==x?x:fa[x]=find(fa[x]);
		}
		void add(int u,int v)
		{
			e[++cnt]=(node){h[u],v};
			h[u]=cnt;
		}
		void Add(int x,int y)
		{
			x=find(x),y=find(y);
			Size[x]+=Size[y];
			fa[y]=x;
		}
		void work()
		{
			cin>>n;
			for(int i=1; i<=n; i++)
			{
				fa[i]=i;
				Size[i]=1;
				h[i]=0;
			}
			ans=cnt=0;
			for(int i=1,x,y; i<n; i++)//编号大的向编号小的连边 
			{
				cin>>x>>y;
				if(x<y)swap(x,y);
				add(x,y);
			}
			for(int i=1; i<=n; i++)//从编号小的遍历 
			{
				int tot=0;
				for(int K=h[i]; K; K=e[K].nt)//枚举编号小于i且与i有连边的编号j 
				{
					int j=e[K].to;
					int faj=find(j);
					//若编号j被其他编号k搜索过
					//那么j一定可以与编号k所有可到达的编号小于k的没有被标记的编号(一共Size[k]个) 
					//连边 
					if(Size[faj])tot++; 
					Add(i,j);
					//连边 
				}
				if(tot>=2)Size[find(i)]-=3,ans++;
				//三个节点被标记,操作个数加一 
			}
			cout<<ans<<endl;
		}
}x;
int main()
{
	int T;
	cin>>T;
	while(T--)
	{
		x.work();
	}
	return 0;
}

标签:11,P8552,int,fa,600000,Rabbit,find,Size
From: https://www.cnblogs.com/dadidididi/p/16728964.html

相关文章

  • 吉特日化MES & RabbitMQ 的基本配置
     在吉特日化MES(日化配料系统)中涉及到大量的消息推送,其中针对设备数据的交互(读写)大量使用了RabbitMQ来进行消息通讯以及程序上的解耦,其中包含使用PDA扫码登......
  • RabbitMQ实战指南 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1ERIrrC_boqd79cdEbTRwQg点击这里获取提取码 ......
  • 利用rabbitmq异步实现来提升程序处理性能
    近期交易系统出款交易量猛增,从skywalking监控平台查看程序调用链路(trace),发现在调用外部三方接口的方法会耗时将近一半。鉴于出款交易在业务上是异步处理的,所以,商定考虑将调......
  • 服务异步通信-(rabbitmq)高级篇
    服务异步通信-高级篇 0.RabbitMQ的基础知识回顾 消息队列在使用过程中,面临着很多实际问题需要思考:  1.消息可靠性消息从发送,到消费者接收,会经理多个过程:其......
  • openstack-rabbitmq
    消息队列:是一种应用程序对应用程序的通信方法,应用程序通过读取和写入队列的消息来通信。消息传递指的是程序之间通过消息中发送的数据进行通信,而不是通过直接的调用彼此来......
  • RabbitMQ+docker安装教程
    安装Rabbitmq1.使用docker查询rabbitmq的镜像dockersearchrabbitmq   2.安装镜像安装name为rabbitmq的这里是直接安装最新的,如果需要安装其他版本在rabbitmq......
  • rabbitmq模式 routing
    rabbitmq模式routingemit_log_direct.php<?phprequire_once__DIR__.'/../../vendor/autoload.php';usePhpAmqpLib\Connection\AMQPStreamConnection;usePhpAm......
  • rabbitmq模式 publish subscribe
    rabbitmq模式publishsubscribeemit_log.php<?phprequire_once__DIR__.'/../../vendor/autoload.php';usePhpAmqpLib\Connection\AMQPStreamConnection;usePh......
  • rabbitmq模式 RPC
    rabbitmq模式RPCrpc_server.php<?phprequire_once__DIR__.'/../../vendor/autoload.php';usePhpAmqpLib\Connection\AMQPStreamConnection;usePhpAmqpLib\Mes......
  • rabbitmq模式 topics
    rabbitmq模式topicsemit_log_topic.php<?phprequire_once__DIR__.'/../../vendor/autoload.php';usePhpAmqpLib\Connection\AMQPStreamConnection;usePhpAmqp......