送你乙個集合
題目背景:
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按...