有 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 的價值。乙個數字只能參與一次配對,可以不參與配對。在獲得的...