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

产品排序

题目概述

你是一个公司的员工,你会按时间顺序受到一些产品的订单,你需要用一个栈来改变这些订单的顺序(每个产品都必须入栈和出栈一次)。

按初始顺序,每次可以将一个产品入栈,或将栈顶产品弹至现在的序列末尾。

  每个产品有一个制作时间t i 和单位时间惩罚值d i 。

  总的惩罚值为∑ ni=1 (s i × d i ),其中s i 为第i个产品的完成时间,你需要最小化总的惩罚值。

分析

考虑区间 \(dp\)

\(f_{i,j}\) 表示处理 \([i,j]\) 最小的总惩罚值。

分类:

  • 产品 \(i\) 第一个出栈,则有 \(f_{i,j}=t_i\times sd_{i,j}+f_{i+1,j}\)
  • 产品 \(i\)\(k\) 个出栈,则有 \(f_{i,j}=f_{i+1,k}+f_{k + 1,j}+st_{i,k}\times(d_i+sd_{k+1,j})\)

第二种情况第 \(k\) 个出栈,那肯定 \(i+1\)\(k\) 都已经出完栈了,所以后这些贡献。

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,t[205],d[205];
int st[205][205],sd[205][205],f[205][205];
signed main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n;for(int i=1;i<=n;i++)cin>>t[i]>>d[i];for(int i=1;i<=n;i++){for(int j=i;j<=n;j++){st[i][j]=st[i][j-1]+t[j];sd[i][j]=sd[i][j-1]+d[j];}}for(int i=n;i>=1;i--){f[i][i]=t[i]*d[i];for(int j=i+1;j<=n;j++){f[i][j]=t[i]*sd[i][j]+f[i+1][j];for(int k=i+1;k<=j;k++){f[i][j]=min(f[i][j],f[i+1][k]+st[i][k]*(d[i]+sd[k+1][j])+f[k+1][j]);}}}cout<<f[1][n];
}
http://www.sczhlp.com/news/148521/

相关文章:

  • 网站空间哪里买做电商的常去网站
  • 网站建设开发的条件信誉好的龙岗网站设计
  • 网站备案需要去哪里中国建设工程监理协会网站
  • 做兼职那个网站比较好烟台企业展厅设计公司
  • 网站被黑客攻击怎么办淮北做网站
  • 做网站设计的长宽一般是多少钱三网合一的网站
  • 2020站群seo系统2017响应式网站 全站
  • 环形链表II-leetcode
  • ubuntu20.04安装nvidia显卡
  • [线段树系列 #6] 标记永久化
  • 9.29
  • 中石油第六建设公司网站企业营销策划实现的途径
  • 网站的设计 改版 更新北京南站到北京站怎么走
  • 公司怎么做网站页面抖音推广方式
  • 做网站哪家好公司这么做网站教程
  • c语言switch和if语句
  • Qt(制作一个方便的文本编辑器)
  • 做网站用php还是python免费优化推广网站的软件
  • 做网站优化排名设计网站做海报
  • 重庆校园网站开发域名注册西部数码
  • 中山精品网站建设公司wordpress 移动导航菜单
  • 网站站点断开东莞做网站做什么赚钱
  • 注册做网站的营业执照没有网站备案可以做诚信认证嘛
  • 天津网站制作福州wordpress页面伪静态
  • ps怎样做网站设计网站改版案例
  • iis网站伪静态百度公司网站seo方案
  • Java EE初阶启程记05---线程安全 - 指南
  • 广州比较好的网站设计网络营销是做什么工作
  • 重庆网站备案大厅个人成立公司怎么做企业网站
  • 国家小城镇建设政策网站企业电子商务网站有哪些功能