zoukankan      html  css  js  c++  java
  • SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛* B. 我觉得海星 bitset

    B. 我觉得海星

    题意:
    一个无向图,判断是否含有五元环。T 组数据,n 个点。 T<=100, n<=200 。
    tags:
    一开始想 dfs,发现搞不出来。赛后听大佬们bb,原来可以 bitset 水过去 。
    bitset<1000> bit[i][j] 存 i -> { k1,k2... } -> j ,也就是点 i 经过一个点可以点 j 的集合。
    然后枚举一条边 i -> j ,再枚举一个点 k ,看是否有 k -> x1 -> i 和 k -> x2 -> j 。
    复杂度 O(T * n^3 / 32) 。

    #include<bits/stdc++.h>
    using namespace std;
    #pragma comment(linker, "/STACK:102400000,102400000")
    #define rep(i,a,b) for (int i=a; i<=b; ++i)
    #define per(i,b,a) for (int i=b; i>=a; --i)
    #define mes(a,b)  memset(a,b,sizeof(a))
    #define INF 0x3f3f3f3f
    #define MP make_pair
    #define PB push_back
    #define fi  first
    #define se  second
    typedef long long ll;
    const int N = 205;
    
    int n;
    char s[N][N];
    bitset<N> bit[N][N];
    void Init() {
        rep(i,0,N-1) rep(j,0,N-1) bit[i][j].reset();
    }
    bool solve() {
        bitset<N> bi, bj, bb;
        rep(i,1,n) rep(j,1,n) if(j!=i && s[i][j]=='1')
            rep(k,1,n) if(k!=i && k!=j)
            {
                bi=bit[k][i], bj=bit[k][j];
                bi.reset(j),  bj.reset(i);
                if(bi.count()==0 || bj.count()==0) continue;
                bb = bi|bj;
                if(bb.count()>1) return true;
            }
        return false;
    }
    int main()
    {
        int T;  scanf("%d", &T);
        rep(cas, 1, T)
        {
            Init();
            scanf("%d", &n);
            rep(i,1,n) scanf("%s", s[i]+1);
            rep(i,1,n) rep(j,1,n) if(j!=i)
                rep(k,1,n) if(k!=i && k!=j && s[i][k]=='1' && s[j][k]=='1')
                {
                    bit[i][j].set(k);
                }
            printf("Case #%d: ", cas);
            if(solve()) puts("Starfish!");
            else puts("Walk Walk");
        }
    
        return 0;
    }
    
  • 相关阅读:
    JVM视角:值传递or引用传递?【转】
    mybaits trim用法
    Collections.shuffle()用法
    api缓存
    接口开发
    Integer.parseInt()和这个Integer.valueOf()的详解【转】
    MyBatis 通过包含的jdbcType类型
    idea 相关设置
    idea快捷键
    equals 与 ==
  • 原文地址:https://www.cnblogs.com/sbfhy/p/8884808.html
Copyright © 2011-2022 走看看