題目大意:給定 n 個操作,每個操作為按位與、或、異或乙個固定的數字,現在要求從 0 到 m 中任選乙個數字,使得依次經過 n 個操作後的值最大。
題解:位運算有乙個重要的性質是:位運算時,無進製產生,每一位之間相互獨立。因此,可以從高到低依次考慮每一位對答案的貢獻值,計算每一位經過這 n 個操作後的值,比較後更新答案貢獻即可。
**如下
#include using namespace std;
const int maxn=1e5+10;
int n,m;
paira[maxn];
void read_and_parse()
}int calc(int bit,int now)
return now;
}void solve()
printf("%d\n",ans);
}int main()
Luogu 2114起床困難症候群(位運算貪心)
題目鏈結 這題真是噁心死我了。由於位運算每一位互不干涉,所以貪心由大到小選擇每一位最優的解,但是要判斷一下邊界,如果選擇該解使得原數 m則不能選擇。如下 include include include inline long long read while isdigit ch return num...
NOI 2014 起床困難症候群
2121 世紀,許多人得了一種奇怪的病 起床困難綜合症,其臨床表現為 起床難,起床後精神不佳。作為一名青春陽光好少年,atm 一直堅持與起床困難綜合症作鬥爭。通過研究相關文獻,他找到了該病的發病原因 在深邃的太平洋海底中,出現了一條名為 drd 的巨龍,它掌握著睡眠之精髓,能隨意延長大家的睡眠時間。...
起床困難症候群(C語言) 位運算
時間限制 1 sec 記憶體限制 128 mb 21 世紀,許多人得了一種奇怪的病 起床困難綜合症,其臨床表現為 起床難,起床後精神不佳。作為一名青春陽光好少年,atm 一直堅持與起床困難綜合症作鬥爭。通過研究相關文獻,他找到了該病的發病原因 在深邃的太平洋海底中,出現了一條名為 drd 的巨龍,它...