Vijos1407_古韵之刺绣
来源:互联网 发布:狸窝ppt转换器mac 编辑:程序博客网 时间:2024/04/27 16:05
因为本身楼主对于编程这方面很菜,所以请多多包容,谢谢。
//下面是正文
古韵之刺绣是一道简单的01背包,难的地方因该是题目的理解和对数据的预处理,首先我先来吧01背包的程序给大家。
for(i=1;i<=n;i++) {for(j=m;j>=v[i];j--) {a[j]=max(a[j],a[j-v[i]]+w[i]);}}在这段代码里,n表示物品个数,m表示最大容量,因为我用的是一位数组,所以第二重循环要递减,v[ ]表示存入背包要占用的空间,w[ ]则是价值。
因为题目描述不是很清楚,所以我来说明题目中一个隐藏着的信息——实际一张刺绣的价值因该是布的体积*花纹美观度,而刺绣的体积因该是布的体积+布的体积*花纹体积
也就是说,布的每个体积单位都有一个花纹
所以预处理因该是这样的:
for(i=1;i<=n;i++) {cin>>v[i]>>k;w[i]=v[i]*mp[k];v[i]+=v[i]*mmp[k];}
这里我用了一个STL工具,map——映射,mp代表的是花纹美观度(价值),mmp表示花纹的体积。我觉得需要讲的就这么多,下面是我的程序:
#include <bits/stdc++.h>using namespace std;int w[1001],v[1001],a[10001],v1[1001];int main(){map<int,int> mp;map<int,int> mmp;memset(a,0,sizeof(a));int i,j,k,l,n,m;cin>>n>>m;for(i=1;i<=3;i++) {int x,y;cin>>l>>x>>y;mmp[l]=y;mp[l]=x;}for(i=1;i<=n;i++) {cin>>v[i]>>k;//cout<<w[i]<<" "<<v[i]<<endl;w[i]=v[i]*mp[k];v[i]+=v[i]*mmp[k];//cout<<mmp[k]<<" "<<mp[k]<<endl;//cout<<w[i]<<" "<<v[i]<<endl<<endl;}for(i=1;i<=n;i++) {for(j=m;j>=v[i];j--) {a[j]=max(a[j],a[j-v[i]]+w[i]);}}cout<<a[m]<<endl;return 0;}
0 0
- Vijos1407_古韵之刺绣
- 古韵之刺绣 vijos
- Vijos P1407 古韵之刺绣
- [01背包]vijos1407 古韵之刺绣
- Vijos P1407 古韵之刺绣(动态规划,01背包)
- TOJ 2921 古韵之鹊桥相会 / 深搜
- |Vijos|图论最短路|P1406 古韵之鹊桥相会
- VIJOS-P1406 古韵之鹊桥相会 最短路 模型
- 最短路径 vijos P1406古韵之鹊桥相会
- 关于刺绣--阿棒
- 机器刺绣图案
- 年轻小伙依靠刺绣增收致富
- 在知行学校感受国学古韵
- 知识产权保护案例分析----CodeMeter在刺绣机行业中的运用
- 古香古韵——何必秋风悲画扇
- 以贫求富,农不如工,工不如商,刺绣文不如倚市门
- 復之之理
- 博学之,审问之,慎思之,明辨之,笃行之
- 回文排列(Palindrome Permutation)
- jsp+servlet 建立自己的第一个网站
- 组合模式
- Leetcode 530 Minimum Absolute Difference in BST
- BCE0004: Ambiguous reference 'preview': CameraMotionBlurEditor.preview, UnityEditor.Editor.preview.
- Vijos1407_古韵之刺绣
- 《机器学习&&深度学习》 视频课程资源百度云下载
- 51nod 编程挑战
- (51nod)1001
- 【Leetcode】417. Pacific Atlantic Water Flow
- Qt 遍历目录并删除目录下所有文件
- Oracle找回误删除数据有两种方法
- SQL教程重温(4)
- 关于一些Vue的文章。(1)