xdu 1201 An Unfair Game 二分图匹配

简介:

   将近两个月没写程序了,完全不会写了,一开始居然dfs了一次……

   这其实就是个二分图匹配,只要保证m为最大即可,匈牙利算法


#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,Max;
int map[101][101],q[101];
int vis[101],ok;
bool dfs(int now)
{
    int v;
    for(v=0;v<n;v++)
    {
        if(vis[v]||map[now][v]>=Max)continue;
        vis[v]=1;
        if(q[v]==-1||dfs(q[v]))
        {
            q[v]=now;
            return 1;
        }
    }
    return 0;
}
int main()
{
    while(~scanf("%d",&n))
    {
        int i,j;
        ok=0;
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
              scanf("%d",&map[i][j]);
        scanf("%d",&m);
        m--;
        for(i=0;i<n;i++)
        {
            memset(q,-1,sizeof(q));
            Max=map[m][i];
            for(j=0;j<n;j++)
            {
                memset(vis,0,sizeof(vis));
                if(j==m)continue;
                vis[i]=1;
                if(!dfs(j))break;
            }
            if(j==n)
            {
                if(ok)putchar(' ');
                printf("%d",i+1);
                ok=1;
            }
        }
        if(!ok)puts("-1");
        else puts("");
    }
}



目录
相关文章
|
1月前
|
vr&ar
D - I Wanna Win The Game
D - I Wanna Win The Game
|
存储 算法
LeetCode 289. Game of Life
如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡; 如果活细胞周围八个位置有两个或三个活细胞,则该位置活细胞仍然存活; 如果活细胞周围八个位置有超过三个活细胞,则该位置活细胞死亡; 如果死细胞周围正好有三个活细胞,则该位置死细胞复活;
56 0
LeetCode 289. Game of Life
|
算法 索引
LeetCode 45. Jump Game II
给定一个非负整数数组,初始位置在索引为0的位置,数组中的每个元素表示该位置的能够跳转的最大部署。目标是以最小跳跃次数到达最后一个位置(索引)。
59 0
LeetCode 45. Jump Game II
|
算法 索引
LeetCode 55. Jump Game
给定一个非负整数数组,您最初定位在数组的第一个索引处。 数组中的每个元素表示该位置的最大跳转长度。 确定您是否能够到达最后一个索引。
77 0
LeetCode 55. Jump Game
LeetCode 390. Elimination Game
给定一个从1 到 n 排序的整数列表。 首先,从左到右,从第一个数字开始,每隔一个数字进行删除,直到列表的末尾。 第二步,在剩下的数字中,从右到左,从倒数第一个数字开始,每隔一个数字进行删除,直到列表开头。 我们不断重复这两步,从左到右和从右到左交替进行,直到只剩下一个数字。 返回长度为 n 的列表中,最后剩下的数字。
78 0
LeetCode 390. Elimination Game
|
人工智能
jump game
最后一步:如果青蛙能跳到最后一块石头n-1,我们考虑他跳的最后一步,这一步是从石头i跳过来,i&lt;n-1 这需要两个条件同时满足: 1.青蛙可以调到石头i; 2.最后一步不超过跳跃的最大距离:n-1-i &lt;= ai
96 0
jump game
|
机器学习/深度学习 关系型数据库 ice
Mishka and Game
Mishka and Game
112 0
Mishka and Game
|
人工智能 算法 大数据