首页 > 代码库 > Bzoj-1059-ZJOI-矩阵游戏

Bzoj-1059-ZJOI-矩阵游戏

技术分享

   发现了一道类似于水题的水题>_<

  自动脑补算法:图论...(雾)

    开始码...

      W?!!!

        调了20+min

          回去再看一波题

            mdzz Yes(No)打成YES(NO)。。。

  然后接着就AC了...

  因为可以进行若干次,所以我们可以吧这个图抽象成一个二分图...然后...就呵呵呵了

  果然蒟蒻还是要多刷题QAQ

  Code:

#include <cmath>
#include <cstring>
#include <cstdio>
#include <iostream>
#include <algorithm>
#define rep(i,l,r) for(int i=l;i<=r;i++)
using namespace std;

int n,m[410][410];
int v[410],y[410];

bool dfs(int x){
	rep(i,1,n) if(m[x][i]&&!v[i]){
			v[i]=1;
				if(!y[i]||dfs(y[i])){
					y[i]=x;
					return 1;
				}
		}
	return 0;
}

int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		scanf("%d",&n);
			rep(i,1,n) rep(j,1,n) scanf("%d",&m[i][j]);
		rep(i,1,n) y[i]=0;int num=1;
		while(num<=n){
			rep(i,1,n) v[i]=0;
				if(dfs(num)) num++;
				else break;
		}
		if(num<=n) printf("No\n");
		else printf("Yes\n");
	}
	return 0;
}

  

 

Bzoj-1059-ZJOI-矩阵游戏