4514 Sdoi2016 數字配對

2022-05-10 02:56:39 字數 888 閱讀 9966

有 n 種數字,第 i 種數字是 ai、有 bi 個,權值是 ci。

若兩個數字 ai、aj 滿足,ai 是 aj 的倍數,且 ai/aj 是乙個質數,

那麼這兩個數字可以配對,並獲得 ci×cj 的價值。

乙個數字只能參與一次配對,可以不參與配對。

在獲得的價值總和不小於 0 的前提下,求最多進行多少次配對。

對於滿足條件的\(a_i/a_j\)一定要滿足\(a_i\)的質因子個數比\(a_j\)大一

所以可以對於每個數的質因子個數建二分圖,只有異側才有連邊

至於總價值不小於0,在總價值<0的時候停止就行了

#include#include#include#include#include#include#define m 1000001

#define ll long long

using namespace std;

ll t,n,m,k,a[m],b[m],c[m],edge[m],nex[m],head[m],ver[m],cnt=1,h[m],d[m],cs[m],inq[m],cur[m],w[m],e[m],ed,zz,ans;

queue q;

void add(ll x,ll y,ll z,ll co)

bool spfa()

} if(d[t]) return 1;

return 0;

}ll dinic(ll x,ll flow)

return flow-re;

}ll fj(ll x)

int main()

ed+=h[t]*k, ans+=k;

} if(!bll) break;

} printf("%lld",ans);

}

4514 Sdoi2016 數字配對 費用流

description 有 n 種數字,第 i 種數字是 ai 有 bi 個,權值是 ci。若兩個數字 ai aj 滿足,ai 是 aj 的倍數,且 ai aj 是乙個質數,那麼這兩個數字可以配對,並獲得 ci cj 的價值。乙個數字只能參與一次配對,可以不參與配對。在獲得的價值總和不小於 0 的前...

bzoj4514 Sdoi2016 數字配對

有 n 種數字,第 i 種數字是 ai 有 bi 個,權值是 ci。若兩個數字 ai aj 滿足,ai 是 aj 的倍數,且 ai aj 是乙個質數,那麼這兩個數字可以配對,並獲得 ci cj 的價值。乙個數字只能參與一次配對,可以不參與配對。在獲得的價值總和不小於 0 的前提下,求最多進行多少次配...

bzoj4514 Sdoi2016 數字配對

bzoj4514 sdoi2016 數字配對 題意 有 n 種數字,第 i 種數字是 ai 有 bi 個,權值是 ci。若兩個數字 ai aj 滿足ai 是 aj 的倍數且 ai aj 是乙個質數,那麼這兩個數字可以配對,並獲得 ci cj 的價值。乙個數字只能參與一次配對,可以不參與配對。在獲得的...