BZOJ4475 Jsoi2015 子集選取

2022-05-05 21:03:10 字數 877 閱讀 5388

\(1\leq n,k \leq 10^9\)

集合s中每個元素互不影響,不妨依次考慮其中乙個元素在三角形中的出現情況

問題轉化為乙個\(0/1\)的三角形\(\\}\),用\(0\)表示選了,\(1\)表示沒選,那麼如果\(a_\)為\(1\),則\(a_\)左邊和上邊都是\(1\)

考慮\(n\)比較小的情況,可以dp

\(f_i\)表示乙個\(i*i\)的三角形的方案數

對於\(f_i\),第\(i\)行一定是一段\(1\)和一段\(0\)拼起來,列舉\(1\)的長度\(j\),前\(j\)列的元素都必須選\(1\),其他列除去第\(i\)行構成乙個長為\((i-j-1)\)的三角形,填法為\(f_\)種

最後加上是第\(i\)行全選\(1\)的情況,只有\(1\)種

\(f_i=1+\sum_^f_=1+\sum_^f_j\)

\(f_0=1\)

不妨令\(s_i=\sum_^if_j\)

原式\(f_i=1+s_\)即\(s_=f_i-1\)

則有\(s_i-s_=(f_-1)-(f_i-1)\)

即 \(f_i=f_-f_\)

\(f_=2*f_i\) 且\(f_0=1\)

得\(f_n=2^n\)

\(ans=^k=2^\)

#include#include#include#define int long long

using namespace std;

const int mod=1000000007;

int n,k;

inline int qpow(int x,int k)

return s;

}signed main()

小店購物 JSOI2008 BZOJ 2260

grant是乙個個體戶老闆,他經營的小店因為其豐富的優惠方案深受附近居民的青睞,生意紅火。小店的優惠方案十分簡單有趣。grant規定 在一次消費過程中,如果您在本店購買了精製油的話,您購買香皂時就可以享受2.00元 塊的 如果您在本店購買了香皂的話,您購買可樂時就可以享受1.50元 聽的 諸如此類的...

BZOJ 4327 JSOI2012 玄武密碼

字尾自動機裸題。藉著這道裸題總結一下字尾自動機的查詢問題。1.查字首 查詢時不跳parent,遇到空節點就跳出。2.查子串 查詢時跳parent,記錄最大ans.3.查次數 lct維護right陣列 4.查不同的串的數目 在建樹時維護,乙個點對答案的貢獻為this max len this pare...

JSOI2009 bzoj1449 球隊收益

description input output 乙個整數表示聯盟裡所有球隊收益之和的最小值。首先假設全輸,然後給每場比賽分配乙個贏家,每個隊伍每多贏一場多獲得的收益作為費用。但是有乙個問題,如何保證每次走的是對應的邊?也就是,如何保證贏第一場的時候增加的收益是贏一場減贏零場,而不是贏兩場減贏一場?...