我去考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;
預處理
f[1][0][0][0][0]=0;其他都是inf;
轉移就是考慮當前第i位a,b要不要放1;
然後對應的計算c新增的值;
#include
#define ll long long
using
namespace
std;
const
int n=35;
ll f[n][n][n][n][2],v;
int w,a,b,c,n;
int er(int x)
int main()
if(f[n+1][a][b][c][0]>(1
<<30))printf("-1\n");else
printf("%lld\n",f[n+1][a][b][c][0]);
}
}
洛谷P1582 倒水 二進位制
一天,cc買了n個容量可以認為是無限大的瓶子,開始時每個瓶子裡有1公升水。接著 cc發現瓶子實在太多了,於是他決定保留不超過k個瓶子。每次他選擇兩個當前含水量相同的瓶子,把乙個瓶子的水全部倒進另乙個裡,然後把空瓶丟棄。不能丟棄有水的瓶子 顯然在某些情況下cc無法達到目標,比如n 3,k 1。此時cc...
洛谷P2456 二進位制方程
題目 字串模擬 並查集 建立兩個並查集分別存放每個變數的每一位數的祖先,乙個是1乙個是2 考慮每個字母的每一位的數都是唯一的,先模擬,記錄每乙個變數的每一位。一一對映到方程中去,最後將兩個方程進行一一比較,然後合併並查集。中間判斷是否出現一位既是1又是2的情況 最後統計自由元的個數cnt,高精求解2...
二進位制 二進位制起源
現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...