1. 程式人生 > >若菜acmer感覺自己智商全然被碾壓了QAQ~~

若菜acmer感覺自己智商全然被碾壓了QAQ~~

cout 打出 沒有 ret 點播 cpp name 輸入 分鐘

題目大意是:輸入n,m,給出n*m(n。m<=100)的不是正規的布滿棋子的棋盤,求最少改幾個棋子能夠使得棋盤正規,正規的棋盤必須是每一個相鄰的棋子顏色都不同(僅僅有黑白兩種,用0,1取代)

比方2*2

00

00

最少須要換2個棋子

10

01最少換0個棋子

3*3

111

111

111

最少換四個棋子

這題我一點思路都沒有,全場已經非常多人做出來了。我感覺這題應該是非常難的貪心才對,怎麽田大神7分鐘就做出來了。。。想啊想。。。

一直到比賽結束都沒非常好的思路。。。。

全場非常多人都作出這題目了。賽後問帆哥,點播了一下。瞬時間感覺自己智商已經是集訓隊裏面最低的了,全然被碾壓。。。自上次區域賽回來以後一蹶不振。狀態一直處於低谷。各種比賽被碾壓,在隊裏被隊友壓。在外面被外面強隊壓,我艹艹艹。。。。。好痛苦啊。。

。。。。。

。。怎麽感覺這一年白學了一樣。。。

。。別人都在變強,我怎麽越來越弱啊。

。。

草泥馬啊,。。

哎。

。。只是痛苦歸痛苦,無論怎麽說吧,即使認為自己笨,這不會,那也不會,各種被虐,回頭擦幹眼淚,還是要低頭默默A題————這就是我的忍道(2333333)


廢話少說。說下這題的正確思路吧:n×m的正規的棋盤。永遠僅僅有兩種正確的擺放,就是開始是0或者開始是1,然後我們拿給出的不正規的棋盤每一個棋子都和這兩個正確的棋盤比較,比較兩個總共不同的取當中最小的

還有註意打出01棋盤的時候巧妙的方法:i+j為奇數為0或者為1

為什麽我就想不到呢?果然還是智商不行。。。

QAQ。。。多多A題。提高智商(23333)


#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int b[150][150];
int a[150][150];
int c[150][150];

int main()
{
    #ifdef xxz
    freopen("in.txt","r",stdin);
    #endif // xxz
    int n,m;
    while(cin>>n>>m)
    {
        for(int i = 0; i < n; i++)
            for(int j = 0; j < m; j++)
            cin>>a[i][j];
            int ans , num_c, num_b;
            num_c = num_b = 0;

            for(int i = 0; i < n ; i++)
            {
                for(int j = 0; j < m; j++)
                {
                    if((i+j)%2 == 1)
                    {
                        b[i][j] = 1;
                        c[i][j] = 0;
                        if(a[i][j] != b[i][j]) num_b++;
                        if(a[i][j] != c[i][j]) num_c++;
                    }
                    else {
                        b[i][j] = 0;
                        c[i][j] = 1;
                        if(a[i][j] != b[i][j]) num_b++;
                        if(a[i][j] != c[i][j]) num_c++;
                    }
                }
            }
            cout<<min(num_b,num_c)<<endl;
    }
    return 0;
}


若菜acmer感覺自己智商全然被碾壓了QAQ~~