CF420 div2 821A Okabe and Future Gadget Laboratory

題意:
給你一個n*n矩陣,要你判斷不是1的數能不能有同一行 + 同一列的一個數得到。
題解:
A題很簡單,暴力就可以過了。

#include<stdio.h> 
#include<string.h>
#include<algorithm>
using namespace std;
int n,m;
int a[55][55];
bool check(int x,int y)
{
    for(int i=1;i<x;i++)
    {
        for(int j=1;j<y;j++)
        {
            if(a[i][y]+a[x][j]==a[x][y])
            {
                return true;
            }
        }
        for(int j=y+1;j<=n;j++)
        {
            if(a[i][y]+a[x][j]==a[x][y])
            {
                return true;
            }
        }   
    }
    for(int i=x+1;i<=n;i++)
    {
        for(int j=1;j<y;j++)
        {
            if(a[i][y]+a[x][j]==a[x][y])
            {
                return true;
            }
        }
        for(int j=y+1;j<=n;j++)
        {
            if(a[i][y]+a[x][j]==a[x][y])
            {
                return true;
            }
        }   
    }
    return false;   
}
int main()
{
    while(~scanf("%d",&n))
    {
        for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
        scanf("%d",&a[i][j]);
        bool flag=false;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
            if(a[i][j]==1)
            continue;
            if(!check(i,j))
            {
                flag=true;
                break;
            }
        }
            if(flag)
            break;      
        }
        if(flag)
        printf("No\n");
        else
        printf("Yes\n");
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章