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

什么网站不用备案做企鹅号的视频素材网站

什么网站不用备案,做企鹅号的视频素材网站,wordpress微博,wordpress首页缓存题目大意: N 头牛 , 每头牛有一个重量(Weight)和一个力量(Strenth) , N头牛进行排列 , 第 i 头牛的风险值为其上所有牛总重减去自身力量 , 问如何排列可以使最大风险值最小 , 求出这个最小的最大风险值&am…

题目大意:

N 头牛 , 每头牛有一个重量(Weight)和一个力量(Strenth) , N头牛进行排列 , 第 i 头牛的风险值为其上所有牛总重减去自身力量 , 问如何排列可以使最大风险值最小 , 求出这个最小的最大风险值;

思路:临项交换

邻项交换排序是一种常见的贪心算法,通过比较两个相邻元素交换前后的优劣对整个序列进行排序,从而使得这个序列成为题目所求的最优解。

我们假设前 i 项已经是最优排列 , 且第 i + 1 项和第 i + 2 项当前排列时最优
在这里插入图片描述
那么对于第 i + 1 个
resi+1=sum−s2res_{i+1} = sum - s_2resi+1=sums2
对于第 i + 2 个
resi+2=sum+s1−w2res_{i+2} = sum + s_1 - w_2resi+2=sum+s1w2

若我们交换第 i + 1 项 和 第 i + 2 项
在这里插入图片描述

那么对于第 i + 1 个
resi+1′=sum−w2res_{i+1}'= sum - w_2resi+1=sumw2
对于第 i + 2 个
resi+2′=sum+w1−s2res_{i+2}' = sum + w_1 - s_2resi+2=sum+w1s2

在这里我们已经假设交换前为最优状态 , 所以我们根据题目中最大值最小的定义可以得到下面这个式子
max(resi+1,resi+2)<=max(resi+1′,resi+2′)max(res_{i+1} , res_{i+2}) <= max(res_{i+1}' , res_{i+2}')max(resi+1,resi+2)<=max(resi+1,resi+2)
转化一下
max(sum−s2,sum+s1−w2)<=max(sum−w2,sum+w1−s2)max(sum - s_2 , sum + s_1 - w_2) <= max(sum - w_2 , sum + w_1 - s_2)max(sums2,sum+s1w2)<=max(sumw2,sum+w1s2)
每一项 减去 sum 加上 (s2+w2s_2 + w_2s2+w2)
max(w2,s1+s2)<=max(s2,w1+w2)max(w_2 , s_1 + s_2) <= max(s_2 , w_1 + w_2)max(w2,s1+s2)<=max(s2,w1+w2)
至此 , 我们就推出了我们想要的交换方程

bool cmp(node a,node b){return max(a.x + a.y , b.y) < max(b.x + b.y , a.y) || (max(a.x + a.y , b.y) == max(b.x + b.y , a.y) && a.x + a.y < b.x + b.y); 
}

这里等于号要特判 ,不懂的可以看看下面这个博客
浅谈邻项交换排序的应用以及需要注意的问题

当我们排好序后 ,不要忘记我们的问题 , 是要求最小的最大值 ,这是只要遍历所有状态求出最大值即可。

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
typedef long long ll;
const int N = 2e5+10;
const int p = 1e9 + 7;
typedef pair<int,int>PII;
const int inf = 1 << 31 - 1;
const double eps = 1e-9;int n;struct node{int x,y;
}a[N];bool cmp(node a,node b){return max(a.x + a.y , b.y) < max(b.x + b.y , a.y) || (max(a.x + a.y , b.y) == max(b.x + b.y , a.y) && a.x + a.y < b.x + b.y); 
}int main(){IOScin >> n;for(int i=1;i<=n;i++){cin >> a[i].x >> a[i].y;}sort(a+1,a+1+n,cmp);int ans = -inf , sum = 0;for(int i=1;i<=n;i++){sum += a[i-1].x;ans = max(ans , sum - a[i].y);}cout << ans ;return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);
http://www.yayakq.cn/news/322825/

相关文章:

  • 西安网站开发公司有哪家中药材初加工平台
  • 电子网站建设基本流程图山西云起时网站建设
  • 北京建网站公司响应式网站开发步骤
  • 做推广的网站微信号软装公司
  • 网站建设交易中心哪个网站可以做优惠券
  • 自适应网站模板企业wordpress 导航栏
  • 金融网站建设方案ppt苍南网站建设shaoky
  • 网站的推广费用wordpress全站301
  • 陕西省建设厅便民服务网站企业网站做的比较好
  • 女人动漫做受网站优设网app手机下载
  • 学校培训网站建设渝北网站建设
  • 化妆品网站设计欣赏wordpress文章插件
  • 手机网站开发之列表开发工业产品设计与创客实践赛题库
  • wordpress建站优化厦门u 网站建设
  • 需要推销自己做网站的公司我的网站百度怎么搜索不到了
  • 邢台提供网站建设公司电话静态网站特点
  • 做网站的价格是多少成都网站营销推广公司
  • 网站建设效果图企业门户网站建设方案书
  • dede 后门暴网站建立一个网站的前期资金
  • 电子工厂网站建设用ssh做网站
  • 老网站改版做别的天津手机网站建设制作
  • 个人网站策划书模板网站后台管理系统制作教程
  • 昆山开发区网站制作百度官网认证多少钱一年
  • 冷门行业做网站的优势海外营销网站建设
  • 学校网站建设开发商wordpress 单页面模板
  • 商务网站要怎么设计cn域名网站
  • 怎么做网站标题优化免费空间搭建免费小说网站
  • 门户网站登录入口网页设计代码水平对齐属性align
  • 四川网站建设价格大连网站空间
  • 黄骅贴吧金宝海南搜索引擎优化