UVA 10718 Bit Mask 貪心 位運算

2021-06-18 05:30:44 字數 885 閱讀 9162

題意:給出乙個數n,下限l上限u,在[l,u]裡面找乙個整數,使得n|m最大,且讓m最小。

很明顯用貪心,用位運算搞了半天,樣例過了後還是wa,沒考慮清楚。。。

然後網上翻到了乙個人家位運算一句話解決了 = =....orz...

人家的分析:(by天然呆大神)

盡量讓 n 中為 0 的位元,m 為 1;n 為 1 的位元, m 為 0。

因此從高位往低位檢查,

如果 n 為 1(m 盡量為 0),若 m 不能為 0,則必是因為 m 為 1 仍小於 l;

如果 n 為 0(m 盡量為 1),若 m 不能為 1,則必是因為 m 為 0 仍大於 u(此時不可能),

換句話說,m 為 1 時,m 需不大於 u。

注意:如果是long long的位運算操作,最好在數後面加個ll,不如會溢位的。

**:

/*

* author: illuz * blog:

* file: uva10718.cpp

* lauguage: c/c++

* create date: 2013-09-04 09:26:39

* descripton: uva 10718 bit mask, bitmap, greed

*/#include #include #define repd(i, a, b) for (int i = (a); i >= (b); i--)

const int maxn = 100;

int main()

else

} printf("%lld\n", m);

} return 0;

}

小總結 快速冪 貪心 Bit Mask

傳送門 preview bitstream a flow of data in binary form.in bit wise expression 用位表示。her face was a cold blank mask.她裝出一副冰冷冷毫無表情的樣子。perform a bit wise and ...

uva 10382題解(貪心)

題目大意 有一塊草坪,長為l,寬為w,在它的水平中心線上有n個位置可以安裝噴水裝置,各個位置上的噴水裝置的覆蓋範圍為以它們自己的半徑ri為圓。求出最少需要的噴水裝置個數。8 20 2 5 34 1 1 27 2 10 2 13 3 16 2 19 4 3 10 1 3 59 3 6 13 10 1 ...

UVA 11729 簡單貪心

新增鏈結描述 結論 根據完成的時間排序。證明 假設交代任務時間為a,完成任務時間為b。選取n個人之中的兩個人進行觀察,這兩個人之間的順序對其他人不產生影響,假設b1 b2,當b1在前面的時候,二者為max1 a1 a2 b2,a1 b1 當b1在後面的時候max2 a2 b2,a1 a2 b1 因為...