4513 Sdoi2016 儲能表 數字DP

2022-05-02 02:09:09 字數 1337 閱讀 6980

國際慣例的題面:

聽說這題的正解是找什麼規律,數字dp是暴力......

好的,我就寫暴力了qaq。

我們令f[i][la][lb][lc]表示二進位制從高到低考慮位數為i(最低位為1),是否頂n上界,是否頂m上界,是否頂k下界的數字和,g[i][la][lb][lc]表示(同上定義)的數字個數。

轉移的話,先計算出這一位n,m,k的限制,然後列舉這一位第乙個數和第二個數填什麼,判定xor和是否滿足k的條件,轉移即可。

記憶化搜尋實現較為簡單。

注意最後計算答案的時候,方案數乘以k可能爆long long,所以k要先取模。

**:(就算我wa了,tle了,**寫的像屎一樣,也不include!pair真好用。)

1 #include2 #include3 #include4 typedef long

long

intlli;

5const

int maxn=1e2+1e1;

67 lli f[maxn][2][2][2],g[maxn][2][2][2]; //

f is sum , g is count .

8int

ba[maxn],bb[maxn],bc[maxn],mod;

910 inline void dfs(int bit,int la,int lb,int lc) int lima = !la || ba[bit] , limb = !lb || bb[bit] , limc = lc &&bc[bit];

16 f[bit][la][lb][lc] = g[bit][la][lb][lc] = 0;17

for(int i=0;i<=lima;i++) for(int j=0;j<=limb;j++) if( ( i ^ j ) >=limc ) 23}

2425 inline int cutbit(lli t,int*dst)

3031

intmain()

39return0;

40 }

view code

く遠く続いてる 空

遙遠地 遙遠地 無盡延伸的天空

その向こうで 君は 何想う

彼方的你 現在正想些什麼

いつか消える あの星の下

在那顆終會隕落的星星下

永遠(とわ)を願い 想い見上げ

翹首仰望著 祈求著永恆

強く弱く光を放つ

燦爛的 黯淡的 明滅閃耀的星光

君の近くに 北斗七星

在你身邊的 北斗七星

そんな 輝きであるように

我想像它一樣照耀著你

君を想い 願い掛けて

思念著你 許下了願望

SDOI2016 數字配對

傳送門 裸費用流。建邊 對於a i a j pr ime a j a i frac prime a j a i a j a i prim e a j a i 需要i ii向j n j nj n連,並且j jj向i n i ni n連。費用即為c i c j c i c j c i c j 流量無窮大...

SDOI2016 數字配對

點此看題 考慮這個條件ai是aj的倍數,且ai aj是乙個質數,滿足這個條件就必須要滿足下面兩個條件 第二個條件很重要,它告訴我們可以把數字的cnt cntcn t奇偶劃分,就能得到乙個二分圖,我們就可以想網路流的方面想,圖是這樣建的 然後我們在建好的圖上跑費用流,由於圖是二分圖,最長路一定是單調遞...

SDOI 2016 數字配對

戳一戳 感覺自己調了半天然後模板打錯了。好難過。rsduheiutfhnesrfnsjkenfkj 不bibi了我們講一下如何建圖。我們可以發現這2個數字之間的關係是雙向的。那我們怎麼辦呢 手動滑稽 這裡有乙個很神奇的結論 如果a為b的因數且b除以a的值為質數,那麼將a與b質因數分解後a與b的指數差...