首页 > 其他分享 >[abc306h/ex] Balance Scale

[abc306h/ex] Balance Scale

时间:2023-10-10 17:01:19浏览次数:43  
标签:连边 Scale abc306h int DAG Balance MOD

Ex - Balance Scale

考虑只有><的情况,相当于给每条边定向,当且仅当成环时不合法,那么方案数就是\(DAG\)的方案数

对于=,就是将两个点合并

然后对于一般的求\(n\)个点的\(DAG\)的方案数为\(\sum_{i=1}^n (-1)^{i+1}C_n^i2^{i\times(n-i)}\)(枚举入度为\(0\)的点的数量,然后设入度为\(0\)的点的集合为\(A\),所有点的集合为\(N\),那么就是\(A\)内部没有连边。\(A\)向\(N-A\)连边,但是这样不能保证\(N-A\)中没有入度为\(0\)的点,所以容斥)

容斥系数为\((-1)^{i+1}\)的原因:

一般的二项式反演为:\(\sum_{j=i}^n (-1)^{j-i}f(j)\),然后我们在\(DAG\)中\(i=1\),而\((-1)^{i-1}\)和\((-1)^{i+1}\)相等,所以是\((-1)^{i+1}\)

那么这道题是给定的边,且边的方向随意,所以我们考虑枚举独立集(相当于上文中的\(A\)),而普通的求\(DAG\)的边是任意连的,而这道题的边是给定的,所以就没有\(2^{i\times(n-i)}\),即设我们当前总集\(N\),枚举的子集为\(A\)(\(A\)内部属于同一连通块的点全部合并),那么\(A\)向\(N-A\)的连边就是固定的,所以用于转移的是剩下的部分\(N-A\)内部连边的方案数,系数就是\((-1)^{A中独立集的数量+1}\)

#include<bits/stdc++.h>
using namespace std;
const int MOD=998244353;
void add(int &x,int y){ x+=y; if(x>=MOD) x-=MOD; if(x<0) x+=MOD; }
int n,m,f[1<<17],cnt[1<<17],a[400],b[400],fa[18];
int find(int x){
	if(fa[x]==x) return x;
	return fa[x]=find(fa[x]); 
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;++i) scanf("%d%d",&a[i],&b[i]);
	for(int i=1;i<(1<<n);++i) cnt[i]=cnt[i>>1]+(i&1);		
	for(int s=1;s<(1<<n);++s){
		for(int i=1;i<=n;++i) fa[i]=i;
		for(int i=1;i<=m;++i)
			if((s&(1<<a[i]-1))&&(s&(1<<b[i]-1))){
				int x=find(a[i]),y=find(b[i]);
				if(x!=y) fa[x]=y,--cnt[s];	
			}
	}
	f[0]=1;
	for(int s=1;s<(1<<n);++s)
		for(int t=s;t;t=((t-1)&s)){
			if(cnt[t]&1) add(f[s],f[s^t]);
			else add(f[s],-f[s^t]);
//			if(t==0) break;
		}
	printf("%d",f[(1<<n)-1]);	
		
	

	return 0;
}

标签:连边,Scale,abc306h,int,DAG,Balance,MOD
From: https://www.cnblogs.com/LuoyuSitfitw/p/17755135.html

相关文章

  • Go - Converting an Image to Grayscale
    Problem: Youwanttoconverttheimagetograyscale.Solution: Convertanimagetoagridofpixels.Takeeachpixelinthegridandconvertittoagraypixelaccordingtotherelativeluminanceformula.Convertthegridofpixelsbackintoanimageto......
  • NetCore Ocelot 之 Load Balancer
    OcelotcanloadbalanceacrossavailabledownstreamservicesforeachRoute.ThismeansyoucanscaleyourdownstreamservicesandOcelotcanusethemeffectively.TheTypeofloadbalanceravailbleare:  LeastConnection -trackswhichservicearedeal......
  • @LoadBalanced注解实现负载均衡功能过程
     基本流程如下:拦截我们的RestTemplate请求http://userservice/user/1RibbonLoadBalancerClient会从请求url中获取服务名称,也就是user-serviceDynamicServerListLoadBalancer根据user-service到eureka拉取服务列表eureka返回列表,localhost:8081、localhost:8082I......
  • 【RocketMQ】Rebalance负载均衡总结
    消费者负载均衡,是指为消费组下的每个消费者分配订阅主题下的消费队列,分配了消费队列消费者就可以知道去消费哪个消费队列上面的消息,这里针对集群模式,因为广播模式,所有的消息队列可以被消费组下的每个消费者消费不涉及负载均衡,而集群模式一个消息队列同一时间只能分配给组内的一个......
  • # github.com/coreos/etcd/clientv3/balancer/resolver/endpoint
    linux使用go连接etcd集群时报错:#github.com/coreos/etcd/clientv3/balancer/resolver/endpoint/root/go/pkg/mod/github.com/coreos/[email protected]+incompatible/clientv3/balancer/resolver/endpoint/endpoint.go:114:87:undefined:resolver.BuildOption/root/go/pkg/mod/g......
  • ultraScale AC3UEG 启动打印记录
    U-Boot2020.01(Dec132022-03:00:01+0000)Board:XilinxZynqMPDRAM:4GiBPMUFW:v1.1ELLevel:EL2ChipID:zu3egNAND:0MiBMMC:mmc@ff160000:0,mmc@ff170000:1In:serial@ff000000Out:serial@ff000000Err:serial@ff000000Bootmode......
  • 米联客MLK-CU02-ku3p-ku5p AMD UltraScale+核心模块硬件手册
    1产品概述KintexUltraScale+MKU3P/KU5P是米联客电子KintexUltraScale+系列开发平台的全新高端产品。其核心模块集成电源管理:0.85V核心电源,最大输出24A。用户基于核心模块设计功能底板(提供功能底板设计方案)。降低项目功能底板设计难度和生产成本,加速项目开发。其应用领域包含高......
  • 米联客MLK-CU01-040-060 AMD UltraScale核心模块硬件手册
    1整体概述MLK-CU01-040-060核心模块是米联客电子KintexUltraScale系列开发平台的全新高端产品。其核心模块集成电源管理:0.95V核心电源,最大输出24A。用户基于核心模块设计功能底板(提供功能底板设计方案)。降低项目功能底板设计难度和生产成本,加速项目开发。其应用领域包含高速通......
  • CF1852B Imbalanced Arrays 题解
    CF1852BImbalancedArrays题解Links洛谷CodeforcesDescription对于一个给定的长度为\(n\)的数组\(A\),定义一个长度为\(n\)的数组\(B\)是不平衡的当且仅当以下全部条件满足:\(-n\leqB_{i}\leqn\)且\(B_{i}\ne0\)。即每个数在\([-n,n]\)内且不为\(0\)。......
  • 【CVPR2022】Shunted Self-Attention via Multi-Scale Token Aggregation
    来自CVPR2022基于多尺度令牌聚合的分流自注意力论文地址:[2111.15193]ShuntedSelf-AttentionviaMulti-ScaleTokenAggregation(arxiv.org)项目地址:https://github.com/OliverRensu/Shunted-Transformer一、Introduction还是经典的ViT的历史遗留问题:ViT中的自注意力计算......