BZOJ2059: [Usaco2010 Nov]Buying Feed 购买饲料
数轴上n<=500个站可以买东西,每个站位置Xi,库存Fi,价格Ci,运东西价格是当前运载重量的平方乘距离,求买K<=10000个东西到达点E的最小代价。
f[i,j]--到第i站不买第i站东西的最大值,转移时决策的是买上一个站的东西,f[i,j]=f(i-1,k)+(j-k)*C(i-1)+j*j*(Xi-Xi-1)。
这个拆一下就可以单调队列了。
1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<algorithm> 5 #include<queue> 6 //#include<iostream> 7 using namespace std; 8 9 int T,E,n; 10 #define maxn 511 11 struct Point{int x,f,c;}a[maxn]; 12 bool cmp(const Point &a,const Point &b) {return a.x<b.x;} 13 #define LL long long 14 #define maxm 10011 15 LL f[maxm];const LL inf=1e15; 16 LL que[maxm],head,tail,id[maxm]; 17 int main() 18 { 19 scanf("%d%d%d",&T,&E,&n); 20 for (int i=1;i<=n;i++) 21 scanf("%d%d%d",&a[i].x,&a[i].f,&a[i].c); 22 sort(a+1,a+1+n,cmp);a[++n].x=E; 23 for (int i=1;i<=T;i++) f[i]=inf;f[0]=0; 24 for (int i=2;i<=n;i++) 25 { 26 head=tail=0; 27 for (int j=0;j<=T;j++) 28 { 29 LL tmp=f[j]-1ll*a[i-1].c*j; 30 while (head<tail && que[tail-1]>=tmp) tail--; 31 while (head<tail && id[head]<j-a[i-1].f) head++; 32 que[tail]=tmp;id[tail++]=j; 33 f[j]=que[head]+1ll*a[i-1].c*j+1ll*j*j*(a[i].x-a[i-1].x); 34 } 35 } 36 printf("%lld\n",f[T]); 37 return 0; 38 }
View Code
转载于:https://www.cnblogs.com/Blue233333/p/7574814.html
BZOJ2059: [Usaco2010 Nov]Buying Feed 购买饲料相关推荐
- bzoj2059[Usaco2010 Nov]Buying Feed 购买饲料*
bzoj2059[Usaco2010 Nov]Buying Feed 购买饲料 题意: 约翰开车来到镇上,他要带K吨饲料回家.如果他的车上有X吨饲料,每公里就要花费X^2元,开车D公里就需要D* X^ ...
- [DP/单调队列]BZOJ 2059 [Usaco2010 Nov]Buying Feed 购买饲料
首先我想吐槽的是题目并没有表明数据范围... 这个题目 DP方程并不难表示. dp[i][j]表示前i个地点携带了j个货物的最小花费 dp[i][j] = dp[i-1][k] + (j-k) * c ...
- bzoj2020[Usaco2010 Jan]Buying Feed, II*
bzoj2020[Usaco2010 Jan]Buying Feed, II 题意: FJ开车去买食物,如果他的车上有X份食物.每走一里就花费X元. 城市总共E里路,FJ从0开始走,到E结束(不能往回 ...
- bzoj 1618: [Usaco2008 Nov]Buying Hay 购买干草(完全背包)
1618: [Usaco2008 Nov]Buying Hay 购买干草 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1196 Solved: 62 ...
- 洛谷 P2616 [USACO10JAN]购买饲料II Buying Feed, II
P2616 [USACO10JAN]购买饲料II Buying Feed, II 题目描述 Farmer John needs to travel to town to pick up K (1 &l ...
- Buying Feed, 2010 Nov (单调队列优化DP)
约翰开车回家,又准备顺路买点饲料了(咦?为啥要说"又"字?)回家的路程一共有 E 公里, 这一路上会经过 K 家商店,第 i 家店里有 Fi 吨饲料,售价为每吨 Ci 元.约翰打算 ...
- 洛谷 P4544 [USACO10NOV]Buying Feed G)(单调队列优化DP)
题目链接:P4544 [USACO10NOV]Buying Feed G 建议做这题前先做下这题P1886 滑动窗口 /[模板]单调队列 我们可以用dp[i][j]表示当前走到前i个点,已经买了j吨饲 ...
- NYOJ 248 BUYING FEED (贪心)
BUYING FEED 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 Farmer John needs to travel to town to pick up K ...
- bzoj 1676: [Usaco2005 Feb]Feed Accounting 饲料计算(差分)
1676: [Usaco2005 Feb]Feed Accounting 饲料计算 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 252 Solved ...
最新文章
- PythonGUI开发:59行代码开发小型商店添加系统
- 解决 /usr/share/git-cola/bin/ssh-askpass: 3: exec: wish: not found
- 讨论.NET Core 配置对GC 工作模式与内存的影响
- PyTorch 1.6、TensorFlow 2.3、Pandas 1.1 同日发布!都有哪些新特性?
- 机器学习基础(二十八) —— 数据规格化
- 记单表数据较多的数据库查询实例及测试结果
- 分享一个非常强大且好用的绘图控件QCustomPlot
- Immervision推出由计算机视觉社区开发的首台具有智能视觉的仿人机器人JOYCE
- 支付宝授权登陆php,支付宝app登录授权的infoStr授权登录流程
- JBoot 全网上最好用的 API 文档工具
- 如何使用select()函数
- Java面向对象程序设计综合练习2(编程题)
- ClickOnce介绍
- deepin升级到20.2,开机显示deepin LOGO之后屏幕黑屏解决办法
- NOI / 1.7编程基础之字符串题目排名状态提问15:整理药名
- 卖罐头(冬季每日一题 32)
- ubuntu删除虚拟网卡
- CSRF Token has been associated to this client
- 一篇关于PCA的深度好文
- 第三十二章 投光物和多光源总结
热门文章
- Java过滤器详细文档,简介,实例,应用
- mongodb从2.6迁移到3.0过程
- Android数据库升级、降级、创建(onCreate() onUpgrade() onDowngrade())的注意点
- 泥鳅般的const(一个小Demo彻底搞清楚)
- 纯数学教程 Page 325 例LXVIII (15) 调和级数发散
- db2 命令选项解释
- JavaScript实现图片旋转构成3D圆环代码
- 为什么不用小驼峰也能查到数据库数据_为什么不用驼峰命名创建表名和字段?...
- 大数据与大量数据处理_我们如何处理和使用如此大量的数据?
- onenote组织知识体系_如何提升组织的安全专业知识