4514 Sdoi2016 數字配對 費用流

2021-08-16 22:46:02 字數 1157 閱讀 4980

description

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

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

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

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

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

全程%werkeytom_ftd,這個價值總和不小於0比較難搞,看完題解後發現是可以用類似貪心的方法來搞的,就是一直跑,跑到不能跑為止,當然二分答案之後再check也是可以的,慢一點。

#include

using

namespace

std;

#define ll long long

#define pa pair

const ll maxn=410;

const ll inf=2147483647;

ll read()

while(ch>='0'&&ch<='9')x=(x<<3)+(x<<1)+(ch^48),ch=getchar();

return x*f;

}ll n,a[maxn],b[maxn],c[maxn],f[maxn];

bool check(ll x,ll y)

ll getf(ll x)

if(x>1)re++;

return re;

}ll st,ed;

struct edgee[maxn*maxn*2];

ll last[maxn],len=1;

void ins(ll x,ll y,ll d,ll c)

void addedge(ll x,ll y,ll d,ll c)

ll dis[maxn];bool in[maxn];ll pre[maxn];

bool spfa()}}

return(dis[ed]!=-4485090715960753727ll);

}int main()

ll ans=0,v=0;

while(spfa())

if(v+mn*dis[ed]>=0)

}else

}printf("%lld",ans);

}

4514 Sdoi2016 數字配對

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