zoukankan      html  css  js  c++  java
  • luogu P1129 [ZJOI2007]矩阵游戏

    传送门

    要使得经过一系列移动后对角线上全是黑的,也就是要存在(n)个点,满足每行都只有一个,以及每列都只有一个,这(n)个棋子也就是所在行和所在列一一匹配

    于是把题目给的矩阵当成二分图邻接矩阵,然后最大匹配救星了

    // luogu-judger-enable-o2
    #include<bits/stdc++.h>
    #define LL long long
    #define il inline
    #define re register
    #define max(a,b) ((a)>(b)?(a):(b))
    #define min(a,b) ((a)<(b)?(a):(b))
    
    using namespace std;
    const int N=200+10;
    il LL rd()
    {
        re LL x=0,w=1;re char ch=0;
        while(ch<'0'||ch>'9') {if(ch=='-') w=-1;ch=getchar();}
        while(ch>='0'&&ch<='9') {x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
        return x*w;
    }
    int n;
    int vis[N],ti,mp[N][N],mat[N];
    bool xyl(int x)
    {
      for(int y=1;y<=n;y++)
        if(mp[x][y]&&vis[y]<ti)
          {
            vis[y]=ti;
            if(!mat[y]||xyl(mat[y])) {mat[y]=x;return true;}
          }
      return false;
    }
    
    int main()
    {
      int T=rd();
      while(T--)
        {
          memset(vis,0,sizeof(vis));
          memset(mat,0,sizeof(mat));
          n=rd();
          for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
              mp[i][j]=rd();
          bool ok=true;
          for(int i=1;i<=n&&ok;i++)
            ++ti,ok&=xyl(i);
          printf("%s
    ",ok?"Yes":"No");
        }
      return 0;
    }
    
    
  • 相关阅读:
    1、求loss:tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None))
    创建目录
    Sqli-Labs less8-10
    Sqli-Labs less-7
    Sqli-Labs less 5-6
    Sqli-Labs less1-4
    DVWA-全等级SQL注入(显注)
    ACL的配置
    NAT配置
    OSPF和ACL综合实验
  • 原文地址:https://www.cnblogs.com/smyjr/p/9703918.html
Copyright © 2011-2022 走看看