• E


    题意:如果可以交换行列,问主对角线能不能全为1
    分析:要想主对角线全为1很明显要有N个行列不想同的点就行了,可以用二分图匹配计算出来多能有几个。如果小与N就不能。输出要是对的就行,不必和答案一样
    ************************************************************************
    #include<stdio.h>
    #include<algorithm>
    #include<string.h>
    using namespace std;

    const int MAXN = 105;

    int G[MAXN][MAXN], pre[MAXN];
    int used[MAXN], N;

    bool Find(int i)
    {
        for(int j=1; j<=N; j++)
        {
            if(G[i][j] && used[j] == false)
            {
                used[j] = true;
                if(!pre[j] || Find(pre[j]))
                {
                    pre[j] = i;
                    return true;
                }
            }
        }

        return false;
    }

    int main()
    {
        while(scanf("%d", &N) != EOF)
        {
            int i, j, Max=0;

            for(i=1; i<=N; i++)
            for(j=1; j<=N; j++)
                scanf("%d", &G[i][j]);

            memset(pre, 0sizeof(pre));

            for(i=1; i<=N; i++)
            {
                memset(used, falsesizeof(used));
                if( Find(i) == true )
                    Max++;
            }

            if(Max != N)
                printf("-1 ");
            else
            {
                printf("%d ", N);

                for(i=1; i<=N; i++)
                {
                    for(j=i; j<=N; j++)
                    {
                        if(pre[j] == i)
                            break;
                    }
                    pre[j] = pre[i];
                    printf("C %d %d ", i, j);
                }
            }
        } 

    }

  • 相关阅读:
    [MySQL] 怎样使用Mysqlcheck来检查和修复, 优化表
    MySQL 5.6 & 5.7最优配置文件模板
    mysql5.6配置详解
    mysql 复制数据库
    mysql-binlog日志恢复数据库
    Memory Analyzer Tool定位Java heap space内存泄漏
    MySQL Flashback 闪回功能详解
    DisJSet:食物链(POJ 1182)
    BFS:Meteor Shower(POJ 3669)
    DFS:Curling 2.0(POJ 3009)
  • 原文地址:https://www.cnblogs.com/liuxin13/p/4695642.html
Copyright © 2020-2023  润新知