zoukankan      html  css  js  c++  java
  • loj526「LibreOJ β Round #4」子集

    分析

    求满足条件的最大团

    我们可以考虑建出补图

    发现对于奇数之间和偶数之间

    由于一定满足所以补图上一定可以将奇数一组偶数一组建成一个二分图

    求二分图最大独立集即可

    代码

    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    int n,m,d[1010],g[1010][1010],a[1010],b[1010],c1,c2,ans,T,used[1010],wh[1010];
    inline bool work(int x){
        for(int i=1;i<=m;i++)
          if(g[x][i]&&used[i]!=T){
              used[i]=T;
              if(!wh[i]||work(wh[i])){
                wh[i]=x;
                return 1;
            }
          }
        return 0;
    }
    inline void go(){
        for(int i=1;i<=n;i++){
          ++T;
          if(work(i))ans++;
        }
    }
    signed main(){
        int i,j,k;
        scanf("%lld",&n);
        for(i=1;i<=n;i++){
          scanf("%lld",&d[i]);
          if(d[i]&1)a[++c1]=d[i];
            else b[++c2]=d[i];
        }
        n=c1,m=c2;
        for(i=1;i<=c1;i++)
          for(j=1;j<=c2;j++)
            if(__gcd(a[i],b[j])==1&&__gcd(a[i]+1,b[j]+1)==1)g[i][j]=1;
        go();
        printf("%lld",n+m-ans);
        return 0;
    }
  • 相关阅读:
    LINUX下用PHPIZE安装PHP GD扩展
    LNMP下使用Phabricator(一)
    关于学习
    PHP EXCEL相关
    curl_setopt 注意
    JS代码运行延迟
    ajax跨域
    Bootstrap-下拉菜单
    Bootstrap-基本的按钮组
    Bootstrap-基本的输入框组
  • 原文地址:https://www.cnblogs.com/yzxverygood/p/11519775.html
Copyright © 2011-2022 走看看