Pipes 內含 1的妙用

2021-10-02 18:45:25 字數 917 閱讀 4558

這次的題目有些複雜, 題目連線後的 pipes 檢視原題, 在此就不多贅述了.

這個題最初用搜尋做的, **特別長, 很多有很多的餘綴. 但是後來發現其實都是一些特判

一共說是有6種管子, 但實際上只有兩大型別, 一種直管, 一種彎管.

如果是直管, 那你只能到達當前行的下乙個位置. 如果是彎管, 你只能到達下一行的下乙個位置.

因此我們得出結論, 無論經過什麼型別的管子, 一定都會向前走一格, 至於是否換行, 只需要看是否為彎管.

當我們遇到彎管需要換行時, 為了避免換行後仍有路可走, 我們應判斷另一行的該位置是否同樣為彎管接應水流, 如果是直管則下一步將被堵死, 無路可走.

假如我們在(1, 2)處, 此處為彎管, 我們通過此管到達(2, 3)處, 若此時(2,3)處為直管, 則只能豎著放置, 那下一步將流出圖外, 是不可行的.(難理解可以畫圖幫助理解)

#include

#define ll long long

using

namespace std;

string a[2]

;int n;

//存圖

void

fact()

}if(h ==

1) cout <<

"yes"

<< endl;

else cout <<

"no"

<< endl;

}int

main

(void

)return0;

}

關於整數x^1:

如果x為奇數, 則 x^1 = x - 1;

如果x為偶數, 則 x^1 = x + 1;

即: 整數x^1的結果為 奇數-1 偶數+1;

因此我們可以通過把0異或1來得到1, 把1異或1來得到0

例題1 合法的括號串(內含stack總結)

乙個合法的括號串,是指只包含括號的串,如果滿足如下條件 1 這四對括號是合法的 2 如果r是合法括號串,則 r 也是 3 如果r,s是合法括號串,則rs也是 所以 是合法的括號串,而 就不是。輸入第一行正整數t 10 n 100 表示有多少組測試資料。後面有t行,每行乙個只包含8種括號符號的括號串。...

妙用 n n 1 位運算

原理 將n的二進位制表示中的最低位為1的改為0 include include using namespace std int main cout 前幾天18級acm訓練賽的第一題就是求1的個數,常規做法按位與t了。上面這種做法好像很快,但是那道題也t,畢竟思路很好總結下來。大佬用lowbit做居然...

妙用QTP F1幫助功能

1 焦點功能引導 之前說過f1對於新手來說是個非常有利的工具,它可以引導使用者熟悉qtp的每項功能。當你的手指按下f1鍵的瞬間,f1就會被啟用並且啟用的內容會與當前的焦點自動匹配。這樣的一種引導模式對於新手的學習來說,是非常便捷的。技術指導 切換焦點後點選f1。焦點切換到datatable,如下圖所...