hdu5375 格雷碼性質 dp

2021-07-28 23:51:34 字數 741 閱讀 5653

//格雷碼性質,等於其對應的二進位制數和其二進位制數的右移一位做異或

//有這個性質可以知道如果二進位制這一位是0那麼只有前一位為1他才能取這一位為0對應的值,

//反之這一位為1也是這樣

//由於存在?,所以這一位如果是?,那麼這一位可以是0或者1,就可以和前面的值任意值結合,既這一位

//如果想要取,那麼一定可以取到

//定義dp[i][0]表示這一位為0可以取到的最大值

//dp[i][0]=max(dp[i-1][1]+a[i],dp[i-1][0]);前一位可以得到的最大值轉換成這一位可以

//得到的最大值

#include

#include

#include

#include

using namespace std;

const int maxn = 2e5 + 7;

char s[maxn];

int d[maxn];

int dp[2][2];

int main()

for (int i = 1; i <= n; i++)

if (s[i] == '1' || s[i] == '?')

}cout << "case #" << k++ <<": ";

cout << max(dp[n % 2][0], dp[n % 2][1]) << endl;

}return 0;

}

生成格雷碼

程式設計題 生成格雷碼 在一組數的編碼中,若任意兩個相鄰的 只有一位二進位制數不同,則稱這種編碼為格雷碼 gray code 請編寫乙個函式,使用遞迴的方法生成n位的格雷碼。給定乙個整數n,請返回n位的格雷碼,順序為從0開始。測試樣例 1返回 0 1 思想 用遞迴法實現,把求n位格雷碼分解為求n 1...

生成格雷碼

題目描述 在一組數的編碼中,若任意兩個相鄰的 只有一位二進位制數不同,則稱這種編碼為格雷碼 gray code 請編寫乙個函式,使用遞迴的方法生成n位的格雷碼。給定乙個整數n,請返回n位的格雷碼,順序為從0開始。測試樣例 1返回 0 1 1 n 1時,返回0,1 2 n 2時,返回00,01,10,...

關於格雷碼

典型二進位制格雷碼 binary gray code 簡稱格雷碼,因1953年公開的弗蘭克 格雷 frank gray,18870913 19690523 專利 pulse code communication 而得名。在一組數的編碼中,若任意兩個相鄰的 只有一位二進位制數不同,則稱這種編碼為格雷碼...