题解:P14259 兄妹(siblings)
VinstaG173 · · 题解
tag:背包。
暴力
直接分配每本书共
特殊性质
设
首先发现一行的书可以由同一个人解决,我们只需要对
那么问题可以转化为如下形式:将
不妨设
背包
由如上讨论我们发现所有可能的方案总用时为对于某个
设计背包 dp,设
正解
发现测试点
Code:
int n,r,c;
int x[503];
int f[250003],ans;
inline void solve(){
for(int i=1;i<=500;++i)x[i]=0;
for(int i=1;i<=250000;++i)f[i]=0;
cin>>n;while(n--){
cin>>r>>c;
x[r]=max(x[r],c);
}for(r=500;!x[r];--r);
c=0;f[0]=1;ans=3e5;
for(int i=1;i<=r;++i)c+=x[i];
for(int i=1,s=0;i<=r;++i){
if(!x[i])continue;
for(int j=s;j>=0;--j)
if(f[j])f[j+x[i]]=1;
s+=x[i];
for(int j=0;j<=s;++j)
if(f[j])
ans=min(ans,max(i+j,r+c-j));
}cout<<ans*2<<"\n";
}