关注
#include <stdio.h>
#define BIT(n) (1<<n)
int main()
{
int v[5];//价值
int h[5];//重量
int c=0;//最大容量
unsigned char bit=31;//二进制11111 分别代表5个宝贝 ,选中为1,未选中为0 共有2^5种 可能性
int maxv=0;//偷到宝贝的总价值
scanf("%d,%d,%d,%d,%d",&v[0],&v[1],&v[2],&v[3],&v[4]);
scanf("%d,%d,%d,%d,%d",&h[0],&h[1],&h[2],&h[3],&h[4]);
scanf("%d",&c);
//循环32次
for(int i=0;i<=bit;i++)
{//判断选中宝贝重量之和是否小于最大容量
if(h[0]*(i&BIT(0))+h[1]*((i&BIT(1))>>1)+h[2]*((i&BIT(2))>>2)+h[3]*\
((i&BIT(3))>>3)+h[4]*((i&BIT(4))>>4)<=c)
{ //选中宝贝价值是否大于之前的总价值
if( v[0]*(i&BIT(0))+v[1]*((i&BIT(1))>>1)+v[2]*((i&BIT(2))>>2)+v[3]*\
((i&BIT(3))>>3)+v[4]*((i&BIT(4))>>4)>maxv)
maxv=v[0]*(i&BIT(0))+v[1]*((i&BIT(1))>>1)+v[2]*((i&BIT(2))>>2)+v[3]*\
((i&BIT(3))>>3)+v[4]*((i&BIT(4))>>4);
}
}
printf("\n%d\n",maxv);
return 0;
}
//自己用C语言写的,格式有点乱,凑合着看吧,命令行输入的逗号是英文的逗号,别弄错了
//"\"是我为了看着简洁加上的,不能运行的话删掉就行了
查看原帖
2 评论
相关推荐
06-26 22:20
门头沟学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届的你们有几段实习? #
20121次浏览 276人参与
# 你小时候最想从事什么职业 #
102783次浏览 1771人参与
# 你被哪些公司秒挂过? #
18905次浏览 185人参与
# 网申一定要掌握的小技巧 #
9693次浏览 65人参与
# 如何提高实习转正率? #
7648次浏览 134人参与
# 新凯来求职进展汇总 #
41064次浏览 108人参与
# 你认为哪些项目算烂大街? #
8503次浏览 196人参与
# 机械校招之路总结 #
92450次浏览 1889人参与
# 你后悔自己读研吗? #
9146次浏览 176人参与
# 你以为的实习VS真实的实习 #
11753次浏览 132人参与
# 月薪多少能在一线城市生存 #
10950次浏览 171人参与
# 腾讯工作体验 #
480017次浏览 3498人参与
# 找工作时的取与舍 #
81350次浏览 578人参与
# 最难的技术面是哪家公司? #
6064次浏览 58人参与
# 秋招拿一个offer可以躺平吗 #
145003次浏览 928人参与
# 安利/避雷我的专业 #
77785次浏览 526人参与
# 面试等了一周没回复,还有戏吗 #
137210次浏览 1229人参与
# 你想留在一线还是回老家? #
50105次浏览 513人参与
# 选择和努力,哪个更重要? #
86064次浏览 745人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
114984次浏览 799人参与