九度 題目1250:矩陣變換

對於一個整數矩陣,存在一種運算,對矩陣中任意元素加一時,需要其相鄰(上下左右)某一個元素也加一,
現給出一正數矩陣,判斷其是否能夠由一個全零矩陣經過上述運算得到。

輸入:

輸出:

如果可以變換得到輸出"Yes",否則"No"。
存在多組數據,每組數據第一行一個正整數n(n<=10),表示一個n*n的矩陣,然後緊跟n行,每行n個整數。當n爲0時,測試結束。

樣例輸入:
3
1 10 9
1 1 2
1 0 1
3
0 1 0
0 1 2
1 0 1
0
樣例輸出:
Yes

No

/////////////////////////////////////////////////////////////////////////////////

逆向減一下就行了

#include<iostream>
using namespace std;
int main()
{
    int n;
    while(cin>>n&&n!=0)
    {
        int v[11][11];
        int j,k;
        int suma=0,sumb=0;
        for(j=1;j<=n;j++)
        for(k=1;k<=n;k++)
        {
            cin>>v[j][k];
            if((j%2==1&&k%2==0)||(j%2==0&&k%2==1))
                suma+=v[j][k];
            else
                sumb+=v[j][k];
            
        }
        if(suma!=sumb)
            cout<<"No"<<endl;
        else
        {
            int temp;
            bool am=true;
            for(j=1;j<=n;j++)
            for(k=1;k<=n;k++)
            {
                temp=0;
                if(j-1>0)
                    temp+=v[j-1][k];
                if(j+1<=n)
                    temp+=v[j+1][k];
                if(k+1<=n)
                    temp+=v[j][k+1];
                if(k-1>0)
                    temp+=v[j][k-1];
                if(v[j][k]>temp)
                    am=false;
                 
            }
            if(am)
                cout<<"Yes"<<endl;
            else
                cout<<"No"<<endl;
        }
 
    }
    return 0;
}
/**************************************************************
    Problem: 1250
    User: 午夜小白龍
    Language: C++
    Result: Accepted
    Time:10 ms
    Memory:1520 kb
****************************************************************/



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章