好題。
一眼看上去就是數字$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)view code#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);}}
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 滿足當...