AcWing
  • 首页
  • 课程
  • 题库
  • 更多
    • 竞赛
    • 题解
    • 分享
    • 问答
    • 应用
    • 校园
  • 关闭
    历史记录
    清除记录
    猜你想搜
    AcWing热点
  • App
  • 登录/注册

何以包邮?暴搜、暴力二进制遍历、二维01背包、一维01背包

作者: 作者的头像   乐_96 ,  2025-07-06 16:11:58 · 山东 ,  所有人可见 ,  阅读 2


0


/*

dfs暴搜

*/

include[HTML_REMOVED]

include[HTML_REMOVED]

include[HTML_REMOVED]

using namespace std;

const int N = 33;
int n, x;
int w[N];
int res = 1e8;

void dfs(int j, int sum)
{
if(j>=n)
{
if(sum>=x)
res = min(res, sum);
}
else
{
dfs(j+1, sum);
dfs(j+1, sum+w[j]);
}
}

int main()
{
cin>>n>>x;
for(int i = 0; i < n; i ++) cin>>w[i];

dfs(0, 0);

cout<<res;

}

/*

暴力n位二进制遍历

*/

include[HTML_REMOVED]

include[HTML_REMOVED]

include[HTML_REMOVED]

using namespace std;

const int N = 33;
int w[N];
int n, x;
int res = 1e8;

int main()
{
cin>>n>>x;
int sum = 0;
for(int i = 0; i < n; i ++) cin>>w[i];
for(int i = 0; i < 1<[HTML_REMOVED]>j & 1)
{
sum = sum + w[j];
}
}
if(sum>=x) res = min(res, sum);
}
cout<<res;
}

/*

二维0-1背包

*/

include[HTML_REMOVED]

include[HTML_REMOVED]

include[HTML_REMOVED]

using namespace std;

const int N = 33;
int n, x;
int w[N];
const int M = 10000000;
int f[N][M];

int main()
{
cin>>n>>x;
int sum = 0;
for(int i = 1; i <= n; i ++)
{
cin>>w[i];
sum = sum + w[i];
}
int m = sum - x;

for(int i = 1; i <= n; i ++)
{
    for(int j = 0; j <= m; j++)
    {
        f[i][j] = f[i-1][j];
        if(j>=w[i])
        f[i][j] = max(f[i-1][j],f[i-1][j-w[i]]+w[i]);
    }
}
int res=0;
for(int i = 1; i <= m; i++) res=max(res, f[n][i]);
res = sum - res;
cout<<res;

}
/*

一维0-1背包

*/

include[HTML_REMOVED]

include[HTML_REMOVED]

include[HTML_REMOVED]

using namespace std;

const int N = 33;
int n, x;
int w[N];
const int M = 10000000;
int f[M];

int main()
{
cin>>n>>x;
int sum = 0;
for(int i = 1; i <= n; i ++)
{
cin>>w[i];
sum = sum + w[i];
}
int m = sum - x;

for(int i = 1; i <= n; i ++)
{
    for(int j = m; j >= w[i]; j--)
    {

        f[j] = max(f[j],f[j-w[i]]+w[i]);
    }
}
int res=0;
res = sum - f[m];
cout<<res;

}

0 评论

App 内打开
你确定删除吗?
1024
x

© 2018-2025 AcWing 版权所有  |  京ICP备2021015969号-2
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息