zoukankan      html  css  js  c++  java
  • CF1093D Beautiful Graph

    思路:

    题目倒是没啥好说的,就是注意memset的效率问题。如果循环多次调用memset去初始化一个比较大的数组,那就会很费时间。就是因为这个被hack了。:(

    实现:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 
     5 const int MOD = 998244353;
     6 const int MAXN = 300005;
     7 
     8 vector<int> G[MAXN];
     9 int col[MAXN];
    10 int n, m;
    11 ll c1 = 0, c2 = 0, bin[MAXN];
    12 
    13 bool dfs(int v, int c)
    14 {
    15     col[v] = c;
    16     if (c == 1) c1++;
    17     else c2++;
    18     for (int i = 0; i < G[v].size(); i++)
    19     {
    20         if (col[G[v][i]] == c) return false;
    21         if (col[G[v][i]] == 0 && !dfs(G[v][i], 3 - c)) return false;
    22     }
    23     return true;
    24 }
    25 
    26 int main()
    27 {
    28     bin[0] = 1;
    29     for (int i = 1; i <= 300000; i++) bin[i] = bin[i - 1] * 2 % MOD;
    30     int t, v, u;
    31     scanf("%d", &t);
    32     while (t--)
    33     {
    34         scanf("%d%d", &n, &m);
    35         for (int i = 1; i <= n; i++) { G[i].clear(); col[i] = 0; }
    36         for (int i = 0; i < m; i++)
    37         {
    38             scanf("%d%d", &u, &v);
    39             G[u].push_back(v);
    40             G[v].push_back(u);
    41         }
    42         bool flg = true;
    43         ll ans = 1;
    44         for (int i = 1; i <= n; i++)
    45         {
    46             if (col[i]) continue;
    47             ll tmp = 0; c1 = c2 = 0;
    48             if (!dfs(i, 1)) { flg = false; break; }
    49             tmp = (bin[c1] + bin[c2]) % MOD;
    50             ans = ans * tmp % MOD;
    51         }
    52         if (!flg) puts("0");
    53         else printf("%lld
    ", ans);
    54     }
    55     return 0;
    56 }
  • 相关阅读:
    shell脚本学习001
    Discuz 代码分析 001 forum.php
    Oauth2.0 入门
    第一篇文章
    position的四个属性值: relative ,absolute ,fixed,static
    JQuery中stop([clearQueue],[goToEnd])介绍
    <meta>
    sublime 2中Package control安装和使用
    ios 状态码
    <video>和<audio>标签,对视频和音频的支持
  • 原文地址:https://www.cnblogs.com/wangyiming/p/10127419.html
Copyright © 2011-2022 走看看