bzoj 4693 雪中送溫暖

2022-09-16 23:30:20 字數 1202 閱讀 4632

好題。

一眼看上去就是數字$dp$。然後我就在想是否是紅色一定有什麼條件。

之後發現保證了前驅紅色個數的奇偶性,然後我就想是不是紅色個數的奇偶決定的。

分析了一發感覺非常有理,但是後來我發現如果是個數的話我沒有加上自己,然後這個思路就被我扔了。

然後就沒思路了。。。。

看了題解真的覺得自己遲鈍到一定地步了。

顏色取決於$(1,1......,1)$到這個點的路徑條數(雖然很好證,但是怎麼想到才是關鍵啊)。

然後就很簡單了。

條件就是$\forall xi|xj==xi+xj$,即沒有交集($lucas$定理)。

然後就可以數字$dp$了。

$o(t*3^k*k*logw)$。

#include #define for1(a,b,i) for(int i=a;i<=b;++i)

#define for2(a,b,i) for(int i=a;i>=b;--i)

using

namespace

std;

typedef

long

long

ll;

#define m 20

#define n 520

#define mod 998244353

intn;

ll l[m],r[m];

inline

void inc(int &x,int y)

struct

set_

size=0

; }

inline

void add_(int x,int y,int

z) inc(f[id[x][y]],z);

}}y[2];

inline

void turn_(int be,int &x,int &y,int

z)

intmain ()

}y[opt].clear();

opt^=1

; }

int ans=0

; for1(

1,y[opt].size,i) inc(ans,y[opt].f[i]);

y[opt].clear();

printf(

"%d\n

",ans);}}

view code

BZOJ1052 BZOJ3760 覆蓋問題

原題位址 先說自己的逗比方法 二分答案,把所有點用乙個最小的矩形 框 起來,易證矩形的其中乙個端點是最優解中正方形的乙個端點,然後列舉四個端點後遞迴處理,差不多了 然後 olz黃學長的o n 做法 ac code include include include using namespace std...

動態點分治 bzoj 3730,bzoj 1095

總結一下動態點分治的模板。對於乙個樹,把它點分的同時記錄每個點的所有父親 logn個 並記錄點距其父親的距離。具體實現就是dfs的時候fa x dep x u,dis x dep x d bzoj1095 您需要寫乙個程式支援反轉點的顏色,求距離最遠的黑色點對的距離。解析 在每個點u存乙個堆st記錄...

福慧雙修 探險 BZOJ4398 BZOJ2407

分析 雙倍經驗 資料範圍不同 我們考慮,我們必定是從1走一條邊到節點i,之後從i到j跑最短路,之後再從j到1走另一條邊的情況下,不會重複,並且是答案。那麼我們考慮預處理出pre i 表示從1走到i滿足最短路的並且經過pre i pre i 為路徑第二個節點。那麼,針對每乙個邊,x,y,z,v 滿足當...