hdu 5661貪心二進位制

2022-08-19 21:06:15 字數 790 閱讀 3788

這題寫起來很奇怪所以發個部落格以後複習,

題意 是給你兩個區間, 讓你從中選出兩個數,使得他們的異或值最大,1e18的範圍,

取得異或值最大肯定要高位越大越好了,一路貪下去

那麼分情況討論,計算在第x位的時候兩個數可以取0還是1還是都可以,所以寫乙個判斷函式,(由於都可以不好討論不妨求出只能是0和只能是1的)

當兩個數都是都可以取時候要注意,

這裡貪心  將能剩餘選擇空間更大的取1,顯然用上界減去現在的就是剩餘空間,(這裡我也當時是猜的,一交居然ac了,

放**,**巨搓,本蒟蒻還在努力中。。。

#include #include using namespace std;

long long a,b,c,d;

const long long on=1;

long long x1=0,x2=0;

long long c1,c2;

inline long long pan(long long x,long long a,long long b,int cnt){

if((x|(onreturn 0;

if((x|(on<>t;

while(t--){

scanf("%lld%lld%lld%lld",&a,&b,&c,&d);

x1=0,x2=0;

for(int i=60;i>=0;i--){

c1=pan(x1,a,b,i);

c2=pan(x2,c,d,i);

if(c1==2&&c2==2){

if(b-(x1|on

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

二進位制迷宮 貪心 BFS

題目大意 給出乙個n m的圖,數字要麼是0要麼是1。從左上角座標為 1,1 的格仔出發,走到右下角的座標為 n,m 的格仔,可以沿上下左右四個方向行走。每到乙個格仔,就記錄下裡面的數字。到達終點的時候,將得到乙個由0和1構成的序列,把這個序列看做乙個二進位制數 可以含前導零 要求這個二進位制數盡可能...

判斷二進位製半整數(二進位制)

10年後,tokitsukaze大佬已經變成了年收入超百萬的的精英程式設計師,家裡沒錢也沒礦的teitoku,找tokitsukaze大佬借1000塊錢,然後tokitsukaze大佬說,借你1024吧,湊個整數。沒錯在2進製下1024是 二進位制整數 乙個正整數滿足其值為2的k次方 k為正整數 我...