點此看題
由於 這東西 已經鴿掉了,那麼我就寫一篇只記錄做法的部落格吧。
首先講一下保序回歸的一般做法,我們考慮使用整體二分求解 \(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 一看是個橙...