LOJ2002 SDOI2017 序列計數

2022-05-30 18:54:12 字數 1079 閱讀 2594

loj:

洛谷:考慮補集轉換,用所有數減去只用合數的方案數,我們先考慮算所有數的

首先可以得到乙個普及組\(\rm dp\),\(f_\)表示當前填了前\(i\)個,總和\(\ p\)為\(j\)的方案數。

記錄乙個\(cnt_i\)表示\(\ p\)為\(i\)的數的個數。

轉移就是\(f_=\sum_^f_\ p}\cdot cnt_k\)。

然後我們拿矩陣大力優化這個轉移就可以過了。

複雜度\(o(p^3\log n)\)。

#includeusing namespace std;

void read(int &x)

void print(int x)

void write(int x)

#define lf double

#define ll long long

#define pii pair#define vec vector#define pb push_back

#define mp make_pair

#define fr first

#define sc second

#define for(i,l,r) for(int i=l,i##_r=r;i<=i##_r;i++)

const int maxm = 2e7+10;

const int inf = 1e9;

const lf eps = 1e-8;

const int mod = 20170408;

int add(int x,int y)

int del(int x,int y)

int mul(int x,int y)

int n,m,p;

struct matrix

matrix operator * (const matrix &r) const

int pri[maxm],vis[maxm],tot,cnt1[102],cnt2[102];

void sieve()

}}int solve(int *t)

int main()

Loj2003 SDOI2017 新生舞會

這道題太明顯了,一眼看過去就知道是0 1分數規劃。先用二分列舉mid,假設mid就是c 我們要判斷的是 a 1 a2 a nb1 b2 b n c frac c b1 b2 bn a1 a2 an c 然後我們就可以把分母乘到c上面去,得到 a 1 a2 a n c b1 b2 b n a 1 a ...

題解 LOJ2004 SDOI2017 硬幣遊戲

考慮建出ac自動機。則問題相當於,我們每步會從節點 i 等概率地走向 text i,0 或 text i,1 給定了乙個起點和若干個終點,求從每個終點結束的概率。因為到達乙個終點後遊戲就結束了,我們不會繼續走,所以每個終點被經過的次數要麼是 0 要麼是 1 因此,從每個終點結束的概率,在數值上就等於...

LOJ 2270 SDOI 2017 天才黑客

給出一張 n 個點,m 條邊的圖以及乙個大小為 k 的字典樹,每條邊有 x,y 的權值,一條路徑的權值就是上面所有邊的 x 之和 相鄰兩條邊在字典樹上的 lca 的深度之和。求 1 到每個點的最短路。對於 100 的資料,t leq 10 2 leq n leq 50000 1 leq m leq ...