关注
第三题是二位花费的背包问题,每件物品要花费0和1各x和y个,总共有n个0和m个1,问每件物品最多取一次,最多可以取多少物品,递归公式为a[j][k]
=
max(a[j-thing[i].x][k-thing[i].y,a[j][k]),其中thing[i].x为第i件物品消耗多少个x,thing[i].y为第i件物品消耗1的个数。
我的代码:(100%通过)
#include
<iostream>
using
namespace
std
;
struct
thing {
int
x;
//
需要
0
的个数
int
y;
//
需要
1
的个数
thing(){
x
=
0
;
y
=
0
;
}
};
int
maxx(
int
x,
int
y)
{
if
(x<y)
return
y;
return
x;
}
int
main(
int
argc,
const
char
* argv[]) {
int
x,n,m;
cin
>>x>>n>>m;
string
s[
55
];
thing
th[
55
];
int
a[
555
][
555
];
for
(
int
i=
0
;i<x;i++)
cin
>>s[i];
for
(
int
i=
0
;i<x;i++)
for
(
int
j=
0
;j<s[i].
length
();j++)
{
if
(s[i][
j
] ==
'0'
)
th[i].
x
++;
else
if
(s[i][
j
] ==
'1'
)
th[i].
y
++;
}
for
(
int
i=
0
;i<=n;i++)
for
(
int
j=
0
; j<=m;j++)
a[i][j]=
0
;
//
边界
int
ans=
0
;
for
(
int
i=
1
;i<=x;i++)
for
(
int
j=n;j>=th[i-
1
].
x
;j--)
for
(
int
k=m;k>=th[i-
1
].
y
;k--)
{
a[j][k]=
maxx
(a[j][k],a[j-th[i-
1
].
x
][k-th[i-
1
].
y
]+
1
);
if
(a[j][k]>ans)
ans=a[j][k];
}
cout
<<ans<<
endl
;
return
0
;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 2025的主旋律是蛰伏,落寞,遗憾1.0W
- 2... 杂记近期所面试的三家中小厂7829
- 3... 圣诞节用 AI 做个牛客运营翻翻乐!(含代码)5775
- 4... 选择即命运—2025年度总结4349
- 5... 大学废物离开优绩主义之后发现外面根本没下雨4245
- 6... 从H200解禁评估:国资算力平台还值得应届就业吗?4049
- 7... 壕壕壕,京东发7个月年终,此生要做东孝子3516
- 8... 我只是一个脆弱的人3178
- 9... #秋招落幕,你是He or Be# 秋招圆满结束啦,成功以本科学历进入字节算法岗。你可以永远相信ACM竞赛的力量!2834
- 10... 在大厂实习 因为请一天病假要求我离职2817
正在热议
更多
# 2025年终总结 #
172013次浏览 2910人参与
# 找工作,行业重要还是岗位重要? #
85220次浏览 1688人参与
# 职场上哪些行为很加分? #
306739次浏览 3451人参与
# 大家每天通勤多久? #
69637次浏览 441人参与
# 实习的内耗时刻 #
211037次浏览 1538人参与
# 你面试体验感最差/最好的公司 #
17287次浏览 288人参与
# 一人说一个提前实习的好处 #
10411次浏览 204人参与
# 今年你最想重开的一场面试是? #
3888次浏览 69人参与
# 秋招落幕,你是He or Be #
11529次浏览 233人参与
# 互联网行业现在还值得去吗 #
46883次浏览 351人参与
# 实习没事做是福还是祸? #
16473次浏览 253人参与
# 面试吐槽bot #
164970次浏览 814人参与
# 重来一次,你会对开始求职的自己说 #
5914次浏览 150人参与
# 反问环节如何提问 #
126352次浏览 2663人参与
# 礼物开箱Plog #
658次浏览 24人参与
# 工作中听到最受打击的一句话 #
6397次浏览 112人参与
# 团建是“福利”还是是 “渡劫” #
7028次浏览 149人参与
# 我的第一份实习怎么找的 #
208508次浏览 1827人参与
# 比亚迪工作体验 #
74641次浏览 281人参与
# 大家实习每天都在干啥 #
106492次浏览 581人参与
