題目
字串模擬+並查集
建立兩個並查集分別存放每個變數的每一位數的祖先,乙個是1乙個是2
考慮每個字母的每一位的數都是唯一的,先模擬,記錄每乙個變數的每一位。
一一對映到方程中去,最後將兩個方程進行一一比較,然後合併並查集。中間判斷是否出現一位既是1又是2的情況
最後統計自由元的個數cnt,高精求解2^cnt
#include #include #include #include #define int long long
#define n 100100
using namespace std;
int k, tot, len, len1, len2, tot1, tot2;
int x[n], y[n], sum[n], fa[n], jin[n]; //sum[i]表示i所代表的字母的開始位置
string s1, s2;
int find(int a)
signed main()
else x[++tot1] = s1[i] - '0';
} for (int i = 0; i < len2; i++)
else y[++tot2] = s2[i] - '0';
} if (tot1 != tot2)
printf("0"), exit(0);
for (int i = 1; i <= tot1 * 4; i++)
fa[i] = i;
for (int i = 1; i <= tot1; i++)
int big[100010]= , top=1;
for(int i=tot; i>=1; i--)
for(; big[top]; ++top)
}for(int i=top-1; i>=0; --i) printf("%lld", big[i]);
return 0;}/*
54 2 4 4 2
1bad1
acbe
*/
洛谷 P1633 二進位制
我去考fop zz的 結果他真的秒掉了 我們考慮三個長度為l的串 顯然如果這3個串符合條件的話 我們就只要保證增加2 l級別的值滿足加法原則就好了 所以我們大力dp f i a b c 0 1 i表示位數 a表示x串前i 1個字元所有的1的數量 b,c同理 0 1表示c串在第i位是1還是0 預處理 ...
洛谷P1582 倒水 二進位制
一天,cc買了n個容量可以認為是無限大的瓶子,開始時每個瓶子裡有1公升水。接著 cc發現瓶子實在太多了,於是他決定保留不超過k個瓶子。每次他選擇兩個當前含水量相同的瓶子,把乙個瓶子的水全部倒進另乙個裡,然後把空瓶丟棄。不能丟棄有水的瓶子 顯然在某些情況下cc無法達到目標,比如n 3,k 1。此時cc...
二進位制 二進位制起源
現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...