BZOJ2020: [Usaco2010 Jan]Buying Feed II
【传送门:BZOJ2020】
简要题意:
约翰开车回家,遇到了双十一节,那么就顺路买点饲料吧。回家的路程一共有E 公里,这一路上会经过N 家商店,第i 家店里有Fi 吨饲料,售价为每吨Ci 元。约翰打算买K 吨饲料,他知道商家的库存是足够的,至少所有店的库存总和不会少于K。除了购买饲料要钱,运送饲料也是要花油钱的,约翰的卡车上如果装着X 吨饲料,那么他行驶一公里会花掉X 元,行驶D 公里需要DX 元。已知第i 家店距约翰所在的起点有Xi 公里,那么约翰在哪些商店买饲料运回家,才能做到最省钱呢?
输入格式:
• 第一行:三个整数K,E 和N,1 ≤ K ≤ 100, 1 ≤ E ≤ 350, 1 ≤ N ≤ 100
• 第二行到第N + 1 行:第i + 1 行有三个整数Xi,Fi 和Ci,0 < Xi < E; 1 ≤ Fi ≤ 100; 1 ≤Ci ≤ 10^6
输出格式:
• 单个整数:表示购买和运送饲料的最小费用之和
样例输入:
2 5 3
3 1 2
4 1 2
1 1 1
样例输出:
7
样例解释:
在离家较近的两家商店里各购买一吨饲料,则花在路上的钱是1 + 2 = 3,花在店里的钱是2 + 2 = 4
题解:
一眼贪心题,但是不会打,只好弄个DP水了过去
参考代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<cmath>
using namespace std;
struct node
{
int x,f,c;
}a[];
int cmp(const void *xx,const void *yy)
{
node n1=*(node *)xx;
node n2=*(node *)yy;
if(n1.x>n2.x) return ;
if(n1.x<n2.x) return -;
return ;
}
int f[][];
int main()
{
int k,e,n;
scanf("%d%d%d",&k,&e,&n);
for(int i=;i<=n;i++) scanf("%d%d%d",&a[i].x,&a[i].f,&a[i].c);
qsort(a+,n,sizeof(node),cmp);
memset(f,,sizeof(f));
for(int i=;i<=a[].f;i++) f[][i]=a[].c*i;
for(int i=;i<=n;i++)
{
for(int p=;p<=k;p++)
{
for(int q=;q<=a[i].f;q++)
{
if(p+q>k) break;
f[i][p+q]=min(f[i][p+q],f[i-][p]+(a[i].x-a[i-].x)*p+q*a[i].c);
}
}
}
printf("%d\n",f[n][k]+(e-a[n].x)*k);
return ;
}
BZOJ2020: [Usaco2010 Jan]Buying Feed II的更多相关文章
- 2020: [Usaco2010 Jan]Buying Feed, II
2020: [Usaco2010 Jan]Buying Feed, II Time Limit: 3 Sec Memory Limit: 64 MBSubmit: 220 Solved: 162[ ...
- 【BZOJ】2020: [Usaco2010 Jan]Buying Feed, II (dp)
http://www.lydsy.com/JudgeOnline/problem.php?id=2020 和背包差不多 同样滚动数组 f[j]表示当前位置j份食物的最小价值 f[j]=min(f[j- ...
- BZOJ 2020 [Usaco2010 Jan]Buying Feed,II:贪心【定义价值】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2020 题意: FJ开车去买K份食物. 如果他的车上有X份食物,每走一里就花费X元. FJ的 ...
- USACO Buying Feed, II
洛谷 P2616 [USACO10JAN]购买饲料II Buying Feed, II 洛谷传送门 JDOJ 2671: USACO 2010 Jan Silver 2.Buying Feed, II ...
- 洛谷 P2616 [USACO10JAN]购买饲料II Buying Feed, II
洛谷 P2616 [USACO10JAN]购买饲料II Buying Feed, II https://www.luogu.org/problemnew/show/P2616 题目描述 Farmer ...
- 【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 ...
- BZOJ2059: [Usaco2010 Nov]Buying Feed 购买饲料
数轴上n<=500个站可以买东西,每个站位置Xi,库存Fi,价格Ci,运东西价格是当前运载重量的平方乘距离,求买K<=10000个东西到达点E的最小代价. f[i,j]--到第i站不买第i ...
- ACM BUYING FEED
BUYING FEED 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 Farmer John needs to travel to town to pick up ...
- BZOJ2021: [Usaco2010 Jan]Cheese Towers
2021: [Usaco2010 Jan]Cheese Towers Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 184 Solved: 107[Su ...
随机推荐
- (四)React高级内容
1. React developertools安装及使用 2. PropTypes与DefaultProps 讲一下PropTypes, 先拿TodoItem来说: 从几种类型中选: 3 props ...
- TP5 错误信息提示入坑指南
查遍了百度,基本都是在 config.php 开启调试 然后还有一个错误信息提示 然后做完这些以后,很神奇的事情发生了! 那就是居然没有任何鬼用.依旧是提示页面错误!什么鬼信息都没有! 然后发现在 ...
- Python学习笔记(二):字符串类型
在上一篇随笔(https://www.cnblogs.com/g-qiang/p/10448813.html)中,说到 Python 有六种标准数据类型,而数字类型和字符串类型又是其中基本的数据类型. ...
- 009实现一个算法来删除单链表中的一个结点,仅仅给出指向那个结点的指针(keep it up)
呵呵,这个题不能直接删除已知的结点.由于是单链表,不知道前驱,仅仅知道 后继结点,直接删除会使链表断开.只是我们能够删除已知结点的后继结点, 把后继结点的值赋值给已知结点. #include < ...
- 完毕乔布斯的梦想:一个免费wifi共享的乌托邦
早在2007年推出iPhone时,乔布斯就提出这种如果:商业区与居民区的wifi路由器全民开放,实现与路人共享网络之便.能够想象,那算是一个wifi共享的乌托邦. 数年过去了,乔布斯的梦想依然没能全然 ...
- 【Oracle】Exadata虚拟机配置(一)
Exadata是Oracle软硬结合的一体机.通过自己的机子不可能全然模拟出来,这里搭建的虚拟机仅仅是一个简单的.能够供我们学习Exadata的环境. 最简单能够模拟的Exadata虚拟机须要两个节点 ...
- Pixhawk---烧写FMU/IO bootloader
Pixhawk-FMU/IO烧写Bootloader 1 说明 用J-link来烧写Bootloader,Pixhawk板FMU/IO接口说明: J-link接口说明: Pix ...
- Caffe-python interface 学习|网络训练、部署、測试
继续python接口的学习.剩下还有solver.deploy文件的生成和模型的測试. 网络训练 solver文件生成 事实上我认为用python生成solver并不如直接写个配置文件,它不像net配 ...
- jsoncpp-src-0.5.0.tar.gz 源码错误!!!!
近期在做毕设,使用到了JsonCpp0.5.0版本号的源码! 依照网上的安装配置教程,搭建好环境后就能够使用了! 在这里就不浪费空间去将怎样搭建开发环境了!请大家去google一下就好了! 在解析一个 ...
- <a>标签是什么意思 怎么使用?
转自:https://www.imooc.com/qadetail/190881 (1) a标签的作用:超链接,用于跳转到别的网页. (2) a标签的用法:<a href="网址&qu ...