省選聯考 2020 A 卷 魔法商店

2022-09-24 00:09:19 字數 2133 閱讀 6527

點此看題

由於 這東西 已經鴿掉了,那麼我就寫一篇只記錄做法的部落格吧。

首先講一下保序回歸的一般做法,我們考慮使用整體二分求解 \(f\)(\(f\) 指調整後的**),設現在 \(f\) 的範圍是 \([l,r]\),我們要檢測 \([f_i\leq mid]\) 是否為真,稱額外限制 \(f_i\in[a,b]\) 的問題為 \(\\) 問題

我們可以考慮原問題的 \(\\) 問題,\(f_i\) 是取 \(mid/mid+1\),如果 \(f_i\) 取 \(mid\) 說明最終的 \(f_i\leq mid\),如果 \(f_i\) 取 \(mid+1\) 說明最終的 \(f_i>mid\)

這顯然是最大權閉合子圖模型,我們先強制所有點選 \(mid\),那麼可以計算出調整至 \(mid+1\) 的貢獻 \(c\)(但是建圖的時候要用 \(-c\),最小轉最大),用偏序關係建好圖之後跑網路流,如果乙個點不和源點聯通那麼選的是 \(mid\),否則選的是 \(mid+1\),可以根據這個來劃分左右。

本題還需要寫出偏序關係,考慮最小的充要條件是:線性基的權值小於等於替換乙個元素的線性基的權值,這顯然是必要條件,可以通過調整法證明其充分性(張成線性空間不變,權值變大)

那麼暴力嘗試替換就可以得到偏序關係,網路流的題就不說複雜度了。

#include #include #include #include using namespace std;

const int m = 1005;

#define int long long

const int inf = 1e18;

#define pb push_back

int read()

while(c>='0' && c<='9')

return x*f;

}int n,m,v[m],a[m],b[m],c[m],xs[m];vectorg[m];

int tot,s,t,d[m],f[m],cur[m],p[m],q[m],dp[m],l[m],r[m];

struct edgee[m*m];

//line dick

int ins(int x)

} return -1;

}//network flow

void init(int n)

void add(int u,int v,int c)

,f[u]=tot;

e[++tot]=edge,f[v]=tot;

}int bfs()

} }return 0;

}int dfs(int u,int ept)

} return flow;

}//divide and conquer

int calc(int x,int y)

void cdq(int ql,int qr,int l,int r)

int mid=(l+r)>>1,tl=0,tr=0;

for(int i=ql;i<=qr;i++) q[p[i]]=i-ql+1;

init(qr-ql+1);

for(int i=ql;i<=qr;i++)

for(int i=ql;i<=qr;i++) q[p[i]]=0;

while(bfs())

for(int i=ql;i<=qr;i++)

if(!d[i-ql+1]) l[++tl]=p[i];

else r[++tr]=p[i];

for(int i=1;i<=tl;i++) p[ql+i-1]=l[i];

for(int i=1;i<=tr;i++) p[ql+tl+i-1]=r[i];

cdq(ql,ql+tl-1,l,mid);

cdq(ql+tl,qr,mid+1,r);

}signed main()

} for(int i=1;i<=m;i++) }

for(int i=1;i<=n;i++) p[i]=i;

cdq(1,n,0,1e6);int ans=0;

for(int i=1;i<=n;i++) ans+=calc(i,dp[i]);

printf("%lld\n",ans);

}

省選聯考 2020 A 卷 組合數問題

前言 這是我退役賽省選中唯一一道答得令自己滿意的題目。也就是 skyh 難道你沒 ac 的那道題。這道題我想了大概二十多分鐘。覺得不是很簡單。然而考後出來才發現,大神們都是用數學推導 ac 的這道題。而我,眾所周知,退役在即的我菜的不行,自然不會數學推導。所以說如果你什麼也不會,你怎麼做這道題呢?於...

省選聯考2020A卷 組合數問題 題解

首先常規地把 f k 拆開 sum nf k x k binom sum ma i sum nk ix k binom 然後證明乙個組合恒等式 sum nk ix k binom sum in x j 1 x begini j end square 考慮它的組合意義 有 n 個不同的盒子,每個盒子可...

場外模擬 省選聯考(B卷) 2020 遊記

同步 上次模擬 a aa 卷只有 155 15515 5 分,很不爽!所以,洛谷上已經有了 b bb 卷,抽空看一下吧!聽說 b bb 卷在 jx text jx 和少數省用了,總之挺少的,還挺簡單。還聽說大眾分是 350 35035 0,加油吧!day1 t1 text day1 t1 一看是個橙...