luogu P1275 魔板 題解

2022-01-19 06:05:57 字數 757 閱讀 3265

題面

題意:給你兩個n×m的01矩陣,每次可以對其中乙個矩陣進行交換兩列,或者反轉某一行(0變1,1變0)的 操作,問兩個矩陣是否能互相轉化。

首先我們只考慮對第乙個矩陣進行操作,讓它變成第二個矩陣。

我們考慮無論第乙個矩陣如何變換,最終都需要有一列變得和第二個矩陣的第一列一樣,而如果我們強制某一列變得和第二個矩陣的第一列一樣的話,那麼所有行上的異或操作的狀態就確定了,這樣我們就只需要將剩下的m-1列進行匹配就可以了。

所以我們列舉每一列與第二個矩陣的第一列匹配,將不同的行全部反轉,然後檢查一下這m列能不能互相匹配。

**(另一種做法,將兩個矩陣都變成子典序最小的狀態,然後判斷是否相同):

#includeusing namespace std;

#define n 107

char g[n][n];

int n,m;

void swp(int x,int y)

void chg(int x)

string s[n];

string solve()

sort(s+2,s+m+1);

string t="";

for(int i=2;i<=m;i++)

t+=s[i];

if(o==1)ret=t;

else ret=min(ret,t);

} return ret;

}int main()

return 0;

}

12 7 比賽題解

這個題的意思就是對於給定的數x,找到兩個數a,b滿足以下條件 可以看出a,b是不唯一的,所以這道題是spj,那我們只要找到最好找的就好了。a b 最大的時候,就是a b x對吧,正好這時候也滿足題目中的其它要求。如果x x 都不滿足大於 x 這個條件的話,肯定就無解了,所以我們只需要判斷這個條件就好...

127 單詞接龍

思路和126差不多,區別在於只用bfs,每次訪問一層,用乙個map來儲存訪問過的結點以及與起點的距離,避免重複訪問。最後輸出map中的終點項即可 import queue class solution def ladderlength self,beginword,endword,wordlist ...

127 單詞接龍

給定兩個單詞 beginword 和 endword 和乙個字典,找到從 beginword 到 endword 的最短轉換序列的長度。轉換需遵循如下規則 每次轉換只能改變乙個字母。轉換過程中的中間單詞必須是字典中的單詞。說明 示例 1 輸入 beginword hit endword cog wo...