当前位置: 首页 > news >正文

网站建设 中企动力宜昌暴雪游戏有哪些

网站建设 中企动力宜昌,暴雪游戏有哪些,深圳保障性住房有哪些,网站设计遇到的问题首先用最最最经典的部分背包问题来引入贪心的思想。 由题意可知我们需要挑选出价值最大的物品放入背包&#xff0c;价值即单位价值。 我们需要计算出每一堆金币中单位价值。金币的属性涉及两个特征&#xff0c;重量和价值。 所以我们使用结构体。 上代码。 #include <i…

首先用最最最经典的部分背包问题来引入贪心的思想。 

 由题意可知我们需要挑选出价值最大的物品放入背包,价值即单位价值。

我们需要计算出每一堆金币中单位价值。金币的属性涉及两个特征,重量和价值。

所以我们使用结构体。

上代码。

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
struct Item {int c, w;
};//定义结构体,c代表价值,w代表重量
Item item[1010];//创建结构体变量
bool cmp(Item a, Item b){//定义排序方式return a.w * b.c > b.w * a.c;//单价的转换形式
}//排序函数,说白了就是比性价比
int main() {int N, V;cin >> N >> V;for (int i = 1; i <= N; i++) {cin >> item[i].c >> item[i].w;}sort(item + 1, item + N + 1, cmp);//输入后排序double ans = 0;for(int i=1; i<=N; i++){if(V <= item[i].c){ans += (double)item[i].w / item[i].c * V;//double强转V = 0;break;}else{ans += item[i].w;V -= item[i].c;}}printf("%.2lf", ans);return 0;
}

 第二种写法 

 

class Item {//定义一个类里面包含价值和重量两个参数,以方便创建vector数组
public:int w, v;//变量Item(int w, int v) :w(w), v(v) {//列表初始化}};
double solve(vector<int>& wei, vector<int>& val,int t)
{vector<Item>ans;//声明类型为Item的vector数组,每一个元素包含两个变量for (int i = 0; i < wei.size(); i++){ans.push_back(Item(wei[i], val[i]));//将价值和重量填入创建的Item类型数组}sort(ans.begin(), ans.end(), [](Item& a, Item& b) {return(double)a.v / a.w > (double)b.v / b.w; });//对vector数组进行排序,lamba表达式【】为定义排序的格式,这里也可以定义一个bool函数来实现排序的方式double res = 0;for (auto& items : ans)//遍历{if (items.w <= t)//如果第一堆金币总重量小于背包重量全部放入{res += items.v;t -= items.w;}else {res +=(double)items.v / items.w * t;//将剩余的重量用最大的价值单价填入break;}}return res;
}int main()
{int n, t,w,v;cin >> n >> t;vector<int>wei;//创建重量数组vector<int>val;//创建价值数组for (int i = 0; i < n; i++){cin >> w >> v;wei.push_back(w);val.push_back(v);}double ans = solve(wei, val,t);printf("%.2lf", ans);
}

 这一题选自洛谷p1223题,根据题意我们可以知道要想得到最短的等待时间得先让排队时间少的先接水。下面介绍两种方法进行解决。

由于题目既要有接水时间又要有序号且这两个元素是对应同一个人,所以我们第一种方法使用结构体。

上代码。

#include <iostream>
#include <vector>
#include <algorithm>
#include<cstdio.h>using namespace std;
struct human {int b, num;//输出的两个变量有联系,用结构体
};
bool cmp(human a, human x)//定义比较的方式
{return a.b < x.b;
}
int main()
{struct human ans[1001];int n, i, j;double time = 0;cin >> n;for (int i = 1; i <= n; i++){cin >> ans[i].b;//每个人的时间ans[i].num = i;//每个人对应的序号}sort(ans + 1, ans + n + 1, cmp);for (int i = 1; i <= n; i++){cout << ans[i].num << " ";}cout << endl;for (j = n - 1; j >= 1; j--){i = n - j;//此时的总人数time += ans[i].b * j;//当前人的等待时间要乘以此时的总人数}printf("%.2lf",time);return 0;
}

第二种方法,不使用结构体,使用vector+pair。

#include <iostream>//洛谷p1223
#include <vector>
#include <algorithm>using namespace std;
int main() {int n;double sum = 0;cin >> n;vector<pair<int, int>> a(n);//既要记录每个人的序号也要记录每个人的时间,定义vector的元素类型为pairfor (int i = 0; i < n; i++) {cin >> a[i].first;//第一个为时间,调用每一个为pair类型元素的firsta[i].second = i + 1;//第二个为序号,调用每一个为pair类型元素的second}sort(a.begin(), a.end());//排序,升序for (int i = 0; i < n; i++) {sum += a[i].first * (n - i - 1);//先排上的人后面所有人都要等待cout << a[i].second << " ";}printf("\n%.2f", sum / n);return 0;
}

 

http://www.yayakq.cn/news/647460/

相关文章:

  • 设计网站的在工作中的品牌网站编写 网站 语言
  • 宜昌市住房城乡建设网站网站建设与设计教程
  • ppt 做的最好的网站有哪些外汇自动跟单网站开发
  • 如何在凡科建设网站做商城网站怎么做
  • 网站建设的目标是什么?提供了哪些栏目?当下最火的购物app
  • 站长域名查询工具办公空间设计要素
  • 有做美食的视频网站么业务员自己掏钱做网站可以吗
  • 网站域名dns济南网站建设行知keji
  • 快速建站phpwordpress和pageadmin
  • 网站建站商城创意wordpress主题
  • 网站的链接要怎么做建设局长
  • 西安网站开发高端网站开发网站建设方任务 职责
  • 网站推广公司转型方向thinkphp做企业网站
  • 个人怎么做网站页面广告片宣传片拍摄公司
  • 网站备案期北京黑马计算机培训机构
  • 承德百度网站建设苏州保洁公司有多少家
  • 莱州市规划建设管理局网站做网站纸张大小
  • 长沙网站技术专家上海牛人岛企业服务有限公司
  • 济宁网站建设方面九曲网站建设
  • 电信备案网站微信公众号推广网站
  • 衡水的网站建设设计素材网站推荐pin
  • 网站网站建设考虑要素微信小程序设计制作
  • xampp 做网站如何注销网站备案负责人
  • 织梦做的网站老是被黑wordpress 群发插件
  • 公司如何做网站做推广方正园林建设监理中心网站
  • 深圳专业网站建设免费维护送域名空间浦东新区网站优化推广
  • 网站建设的快乐卖产品怎么做网站
  • 网站设计论文引言外贸网站怎么建设
  • php 企业网站开发教程做知识产权相关的网站
  • 网站百度地图怎么做合肥设计工作室