AtcoderABC262 E Red and Blue Graph

这篇博客介绍了如何解决一个关于图论的问题,即给定一个简单无向图,染色每个顶点为红色或蓝色,要求有特定数量的红色顶点,并且连接不同颜色顶点的边数为偶数。博主通过分析发现,关键在于确保边的连接方式使得不同颜色的边数为偶数,然后利用组合数学计算满足条件的染色方案数。代码中展示了利用C++实现的解决方案,时间复杂度为O(n+m)。
摘要由CSDN通过智能技术生成

AtcoderABC262

题目描述

You are given a simple undirected graph with N N N vertices and M M M edges. The vertices are numbered 1 , 2 , … , N 1,2,\dots,N 1,2,,N, and the i i i-th ( 1 ≤ i ≤ M ) (1\leq i\leq M) (1iM) edge connects Vertices U i U_i Ui and V i V_i Vi.

There are 2 N 2^N 2N ways to paint each vertex red or blue. Find the number, modulo 998244353 998244353 998244353, of such ways that satisfy all of the following conditions:

  • There are exactly K K K vertices painted red.
  • There is an even number of edges connecting vertices painted in different colors.
Sample Input 1
4 4 2
1 2
1 3
2 3
3 4
Sample Output 1
2
Sample Input 2
10 10 3
1 2
2 4
1 5
3 6
3 9
4 10
7 8
9 10
5 9
3 4
Sample Output 2
64
  • 2 ≤ N ≤ 2 ∗ 1 0 5 2\leq N\leq 2*10^5 2N2105
  • 1 ≤ M ≤ 2 ∗ 1 0 5 1\leq M\leq 2*10^5 1M2105
  • 0 ≤ K ≤ N 0\leq K\leq N 0KN
  • 1 ≤ U i < V i ≤ N ( 1 ≤ i ≤ M ) 1\leq U_i<V_i\leq N(1\leq i\leq M) 1Ui<ViN(1iM)
  • ( U i , V i ) ≠ ( U j , V j ) ( i ≠ j ) (U_i,V_i)\neq(U_j,V_j)(i\neq j) (Ui,Vi)=(Uj,Vj)(i=j)
  • All values in input are integers.

题目大意

给你一个 n n n个顶点 m m m条边的简单无向图,第 i i i条边连接 U i , V i U_i,V_i Ui,Vi。有 2 n 2^n 2n种方式,将每个顶点染成红色或蓝色。求满足一下条件的方案数,模998244353后的值。

  • K K K个点染成红色
  • 有偶数条边连接的是不同色的两个顶点

题解

看完题面之后本以为是一道需要 O ( n 2 ) O(n^2) O(n2)甚至 O ( n 3 ) O(n^3) O(n3)来完成的图论题,但看了数据范围,就知道时间复杂度大概是 O ( n ) O(n) O(n) O ( n l o g n ) O(nlogn) O(nlogn)

我们可以分析一下这个图,这个图有若干条红-蓝的边,红-红的边和蓝-蓝的边。我们需要红-蓝的边为偶数个,怎么办呢?

设红-蓝边有 a a a条,红-红边有 b b b条。设 c n t i cnt_i cnti表示有一个顶点为 i i i的边的条数,选中的 K K K个顶点组成集合 S S S,则

∑ i ∈ S c n t i = a + 2 b \sum\limits_{i\in S}cnt_i=a+2b iScnti=a+2b

每条红-蓝边被算了一次,红-红边被算了两次。

这时,我们惊奇地发现, a + 2 b a+2b a+2b a a a是同奇同偶的。所以,只要满足 a + 2 b a+2b a+2b是偶数,则 a a a一定是偶数。也就是说,我们要取 K K K i i i,使 ∑ c n t i \sum cnt_i cnti为偶数

到这里,这道题就很简单了。选 2 t 2t 2t c n t cnt cnt值为奇数的 i i i,再选 k − 2 t k-2t k2t c n t cnt cnt值为偶数的 i i i。枚举 t t t,用组合数计算即可。

总时间复杂度为 O ( n + m ) O(n+m) O(n+m)

code

#include<bits/stdc++.h>
using namespace std;
int n,m,k,x,y,cnt[200005],v[2];
long long ans=0,jc[200005],ny[200005];
long long mod=998244353;
long long mi(long long t,long long v){
    if(v==0) return 1;
    long long re=mi(t,v/2);
    re=re*re%mod;
    if(v&1) re=re*t%mod;
    return re;
}
long long C(int x,int y){
    if(x<y) return 0;
    return jc[x]*ny[y]%mod*ny[x-y]%mod;
}
int main()
{
    scanf("%d%d%d",&n,&m,&k);
    jc[0]=1;
    for(int i=1;i<=n;i++){
        jc[i]=jc[i-1]*i%mod;
    }
    ny[n]=mi(jc[n],mod-2);
    for(int i=n-1;i>=0;i--){
        ny[i]=ny[i+1]*(i+1)%mod;
    }
    for(int i=1;i<=m;i++){
        scanf("%d%d",&x,&y);
        ++cnt[x];++cnt[y];
    }
    for(int i=1;i<=n;i++){
        ++v[cnt[i]%2];
    }
    for(int i=0;i<=k;i+=2){
        ans=(ans+C(v[1],i)*C(v[0],k-i)%mod)%mod;
    }
    printf("%lld",ans);
    return 0;
}
### 回答1: 简单而深入的图卷积网络(Simple and Deep Graph Convolutional Networks)是一种用于图像识别和分类的深度学习模型。它通过对图像的局部特征进行卷积操作,从而实现对图像的分类和识别。与传统的卷积神经网络不同,简单而深入的图卷积网络可以处理非欧几里得空间中的数据,例如社交网络、蛋白质结构等。该模型的优点在于可以处理不同大小和形状的图像,并且可以自适应地学习图像的特征。 ### 回答2: 简单而深入的图卷积神经网络(simple and deep graph convolutional networks)是一种用于图数据上的深度学习模型。随着图数据的普及和应用,图卷积神经网络成为了研究热点。 传统的卷积神经网络在处理图数据时存在局限性,无法充分地利用图结构信息,因此图卷积神经网络应运而生。简单而深入的图卷积神经网络是其中的一种,具有以下特点: 1. 简单易懂:简单而深入的图卷积神经网络结构简单,易于理解和实现。该模型采用了局部连接和权值共享的思想,可以通过少量的超参数调整来完成训练。 2. 深度学习:简单而深入的图卷积神经网络可以通过多层的卷积层来提取数据的特征。随着层数的增加,模型可以逐步抽象出更高层次的特征,从而提高模型的表达能力。 3. 基于图结构:简单而深入的图卷积神经网络基于图结构进行设计和训练,能够充分地利用节点之间的连接信息和边的权重信息。因此,该模型可以用于处理图、网络等复杂结构数据。 简单而深入的图卷积神经网络可以应用于多个领域,如推荐系统、社交网络分析、语义分析等。在推荐系统中,该模型可以利用用户之间的关注关系、商品之间的相似性等信息,提高推荐的准确率;在社交网络分析中,该模型可以用于社区发现、节点分类等任务;在语义分析中,该模型可以用于文本分类、情感分析等任务。 总之,简单而深入的图卷积神经网络是一种有效的图数据处理工具,具有简单易懂、深度学习、基于图结构等特点。在未来的研究中,将有更多的研究者致力于探索和发展该模型,在图数据处理方面取得更加卓越的成果。 ### 回答3: 简单且深入的图卷积网络(Simple and Deep Graph Convolutional Networks)是一种用于图形数据表示学习的深度学习模型。它是一种预测节点或图形属性的网络,可以处理具有不同特征的大量非结构化数据,例如社交网络,分子结构和语言文本。 图卷积网络(GCN)是一种在图形数据上执行卷积运算的神经网络,它使用图形中的节点和它们的边缘来表示数据,并学习一个表示全部节点和边缘的嵌入向量。简单而深入的GCN模型最初由石遥等人于2018年提出,它将传统的GCN模型中局部和全局信息相结合,并通过嵌入节点特征进行表述。该模型可以减少过拟合,提高分类准确性和泛化能力。 简单而深入的GCN模型具有以下优点: 1. 处理稀疏和密集的图形数据。它可以处理具有不同特征的大量非结构化数据,例如社交网络,分子结构和语言文本 2. 减少过拟合。该模型将过量的学习策略应用于不同的图形,减少了过拟合的风险 3. 提高分类准确性和泛化能力。该模型通过在测试数据上进行处理,并使用自适应特征选择策略改善分类准确性和泛化能力 除此之外,简单而深入的GCN模型还可以应用于多个应用程序,例如社交网络分析,图像分割和分子预测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值