WC模擬(1 8) T2 送你乙個集合

2021-08-14 13:24:23 字數 1364 閱讀 1277

送你乙個集合

題目背景:

1.8 wc

模擬t2

分析:二進位制

第一次做通訊題。

最樸素的想法,直接把

x傳回去,這樣顯然不夠優秀,考慮優化一下,顯然x,

y至少存在一位

2進製位是不同的,那麼我們只要傳第乙個不同的位置,然後再傳

x在當前位是

0/1,這樣可以在

20以內解決,還是不夠優秀,考慮如何優化掉返回

0/1,我們發現,如果滿足兩個數中二進位制位為

1的個數是相同的,那麼如果兩個數不同,一定存在一位是x為

1,y為

0,那麼我們發現

c(12, 6) = 924 > 920

(組合數)那麼我們直接將

1 ~ 920

對映到所有有六個二進位制位為

1的數然後返回第乙個x為

1,y為

0的位置就可以了。

source:

/*

created by scarlyw

*/#include #include #include #include #include #include #include #include #include #include #include #include inline char read()

return *s++;

}///*

templateinline void r(t &x)

for (x = 0; isdigit(c); c = read())

x = ((x << 2) + x << 1) + (c ^ '0');

if (iosig) x = -x;

}//*/

const int out_len = 1024 * 1024;

char obuf[out_len], *oh = obuf;

inline void write_char(char c)

templateinline void w(t x)

}inline void flush()

/*templateinline void r(t &x)

//*/

int type, n;

int cnt[1 << 12 | 1];

std::vectorcode;

inline void init()

}int encode(int x, int y)

bool decode(int q, int h)

int main()

flush();

return 0;

}

WC模擬(1 8) T3 送你一朵聖誕樹

送你一朵聖誕樹 題目背景 1.8 wc 模擬t3 分析 並查集 堆 貪心 對於全域性最小的那個點,選擇了它的父親之後,就一定會選擇它,所以我們直接合併它和它的父親,那麼對於乙個點集 i,記錄 ti為點集中的點的個數,si為點集中的點的權值和,那麼,對於兩個點集,如果點集 i優於點集 j,那麼 ti ...

2020只剩2個月了,送你乙個財富密碼,請收藏

因為疫情的原因,各行業在2020年都遭遇了寒冬,對於我們這些 打工人 來說,資金 資訊渠道有限,本身優質投資專案就匱乏的情況下,幾乎很難接觸到好的投資機會。轉眼間,2020只剩2個月了,無比惆悵。而推易吧發行的數字貨幣tweeb和twee,自10月27號上線後,都有著不錯的漲幅。結合twee過去的表...

Postman介面測試2 建立乙個集合

1.什麼是集合?集合是postman中的乙個重要的概念,有點類似於windows作業系統中的資料夾的概念,postman中,集合表示將請求進行分組 分模組管理,對功能相近或者屬於同一專案的請求儲存在同乙個集合,方便後期的維護,管理,匯出。2.如何建立集合?一般我們可以通過header工具欄的new按...