D Infinite Set 題解 思維 dp

2022-09-22 05:45:11 字數 1851 閱讀 5807

首先要觀察它需要的數是小於\(2^p\),那麼需要往二進位制的思路去想就簡單很多

\(x=2y+1\) 本質上就是在二進位制的表現下末尾加乙個1

\(x=4y\) 本質上就是在二進位制的表現下末尾加兩個\(00\)

那麼如果乙個二進位制長度為\(len\)的數\(x\)

它要延申成長度為\(len+1\)位有\(1\)種

它要延申成長度為\(len+2\)位有\(2\)種

它要延申成長度為\(len+3\)位有\(3\)種

這就是斐波那契數列

定義\(\sum_^ fac[i]=sum[n]\)

那麼如果他要延申成長度小於\(p\)位有\(sum[p-len]\)種

那麼對於乙個數的情況解決了,那麼對於多個數的情況就是需要去重

加入\(x\)可以生成\(y\),那麼需要去掉\(y\)

那麼假如\(y\)是奇數,\(y/=2\) 。假如\(y\)是\(4\)的倍數,\(y/=4\) 看中途是否出現過即可

#include#define fi first

#define se second

#define debug cout<<"i am here"int cal(int x)

return len;

}signed main()

scanf("%d%d",&n,&p);

for(int i=1;i<=n;i++)

for(int i=1;i<=n;i++)else if(tmp%4==0)else

if(mp.count(tmp))

}if(flag) continue;

int len=cal(a[i]);

if(p-len>=0)

}printf("%lld\n",ans);

return 0;

}

首先要觀察它需要的數是小於\(2^p\),那麼需要往二進位制的思路去想就簡單很多

\(x=2y+1\) 本質上就是在二進位制的表現下末尾加乙個1

\(x=4y\) 本質上就是在二進位制的表現下末尾加兩個\(00\)

那麼如果乙個二進位制長度為\(len\)的數\(x\)

它要延申成長度為\(len+1\)位有\(1\)種

它要延申成長度為\(len+2\)位有\(2\)種

它要延申成長度為\(len+3\)位有\(3\)種

這就是斐波那契數列

定義\(\sum_^ fac[i]=sum[n]\)

那麼如果他要延申成長度小於\(p\)位有\(sum[p-len]\)種

那麼對於乙個數的情況解決了,那麼對於多個數的情況就是需要去重

加入\(x\)可以生成\(y\),那麼需要去掉\(y\)

那麼假如\(y\)是奇數,\(y/=2\) 。假如\(y\)是\(4\)的倍數,\(y/=4\) 看中途是否出現過即可

#include#define fi first

#define se second

#define debug cout<<"i am here"int cal(int x)

return len;

}signed main()

scanf("%d%d",&n,&p);

for(int i=1;i<=n;i++)

for(int i=1;i<=n;i++)else if(tmp%4==0)else

if(mp.count(tmp))

}if(flag) continue;

int len=cal(a[i]);

if(p-len>=0)

}printf("%lld\n",ans);

return 0;

}

寒假思雨姐摸底A題,題解

問題的大概意思是這樣的人。一堆學生圍城乙個圈,老師在中間,每個學生剛開始都有一定的偶數糖的數量。每一次轉移會將一半的糖給右邊的同學,如果誰的糖數是奇數的話老師會給你補乙個糖果。問題 最少多少次轉移可以使每個同學手裡的糖的數量一樣。多組輸入 每組開頭乙個n代表n個學生,接下來是n行學生初始的糖果數量。...

天思ERP軟體常見問題解決方案

天思erp軟體常見問題解決方案 1.安裝天思經理人erp企業管理軟體客戶端時個別電腦連不上伺服器,提示伺服器未正確配製 解決方案 1 檢查資料庫sql 2000是否啟動 是否打過sp4補丁 版本號為8.00.2039 2 svrconf.exe中伺服器是否修改,系統預設是連線不到資料庫的,所以也會報...

思 說文解字

說文解字 裡說 思,容也,從心囟聲。我們過去都以為思的上半部分是個 田 其實不是。從篆文本形來看,上半部原來是囟門的 囟 我們知道,剛出生的嬰兒,顱骨上方有一塊尚未完全閉合的地方,那個地方就是囟門。說白了,就是頭腦加心靈共同工作的狀態,才叫有所思。大家或許會問 你說 從心囟聲 囟門這個 囟 跟我們今...