栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 2923 Relocation

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 2923 Relocation

#include<iostream>#include<algorithm>#include<string>#include<cstdio>#include<cstring>using namespace std;const int inf=0xffffff;int n,c1,c2;int vis[1050],fur[20];int dp[1050],f[1050];int package(int x){int i,sum=0,j;memset(vis,0,sizeof(vis));vis[0]=1;for(i=0;i<n;i++)  {  if((1<<i)&x)    {    sum+=fur[i];    for(j=c1;j>=fur[i];j--)      {       if(vis[j-fur[i]])vis[j]=1;  }  }  }if(sum>c1+c2)return 0;for(i=c1;i>=0;i--)    if(vis[i]&&(sum-i<=c2))return 1;return 0;}int main(){int tot,c=0,t,i,j,k;cin>>t;while(t--){cin>>n>>c1>>c2;for(i=0;i<n;i++)      cin>>fur[i];for(i=0;i<=(1<<n);i++)      dp[i]=inf;dp[0]=0;tot=0;for(i=1;i<(1<<n);i++)  {  if(package(i))f[tot++]=i;  }for(i=0;i<tot;i++)  {  for(j=(1<<n)-1;j>=0;j--)    {    if(dp[j]==inf)       continue;    if(!(j&f[i]))  dp[j|f[i]]=min(dp[j|f[i]],dp[j]+1);  }  }cout<<"Scenario #"<<++c<<":"<<endl<<dp[(1<<n)-1]<<endl<<endl;}return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378658.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号