文章
2
粉丝
0
获赞
2
访问
213
//问题的本质就是是否存在一组非零向量使得其与权重矩阵的点击为背包容量
#include<bits/stdc++.h>
using namespace std;
int main(){
int s,n;
while(cin>>s>>n){
int a[n+1];//0代表不装,1代表装,最后如果全零代表无解
for(int i=0;i<n;i++){
a[i]=0;//初始化0
}
int w[n+1];//代表权重
for(int i=0;i<n;i++){
cin>>w[i];
}
for(int i=0;i<=n;i++){//遍历权重矩阵如果装得下就置a矩阵对应位置为1,装不下不操作
if(s>=w[i]){//装得下
a[i]=1;
s-=w[i];
}
}
int sum=0;
for(int i=0;i<=n;i++){//a和w做内积等于s则输出yes否则输出no
sum+=a[i]*w[i];
}
if(sum==s){
cout<<"yes!"<<endl;
}else cout<<"no!"<<endl;
}
}
最后的结果是66%有人能改进吗
登录后发布评论
暂无评论,来抢沙发