题目链接

首先把商店按坐标排序

\(dp_{i,j}\)表示前i个商店买了j吨饲料并运到终点的花费,二进制拆分优化转移

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#define int long long
using namespace std; const int N=10010; int n,E,K,dp[N];
struct Data{
int x,f,c;
} a[N]; inline bool cmp(Data p,Data q){
return p.x<q.x;
} signed main()
{
scanf("%lld%lld%lld",&K,&E,&n);
for(int i=1;i<=n;++i)
scanf("%lld%lld%lld",&a[i].x,&a[i].f,&a[i].c);
sort(a+1,a+1+n,cmp);
memset(dp,0x3f,sizeof(dp));
dp[0]=0;
for(int i=1;i<=n;++i){
int sum=0;
for(int k=1;sum+k<=a[i].f;k<<=1){
sum+=k;
for(int j=K;j>=k;--j)
dp[j]=min(dp[j],dp[j-k]+a[i].c*k+(j*j-(j-k)*(j-k))*(E-a[i].x));
}
int k=a[i].f-sum;
for(int j=K;j>=k;--j)
dp[j]=min(dp[j],dp[j-k]+a[i].c*k+(j*j-(j-k)*(j-k))*(E-a[i].x));
}
printf("%lld\n",dp[K]);
return 0;
}

最新文章

  1. 类模板的static成员
  2. 【周年版】Cnblogs for Android
  3. 使用UEditor 的时候,ajax注意使用同步的方法
  4. mongodb备忘
  5. phpeclipse常用快捷键
  6. Scrapy源码学习(二)
  7. SQL Server的三种物理连接之Hash Join(三)
  8. 解决VirtualBox下安装虚拟机(Ubuntu)出错(不能为虚拟电脑Ubuntu打开一个新的任务)的有关问题
  9. EL表达式的简单实用
  10. mybatis choose标签的使用
  11. SQL Server创建Job, 实现执行相同脚本而产生不同作业计划的探究
  12. Python:Day26 socket
  13. Java实现简单计算器、抽票程序
  14. PM九步法
  15. spring cloud(一)带你进入分布式
  16. 【Codeforces 1120C】Compress String
  17. 《精通Python网络爬虫》
  18. wx小程序自定义组件与页面之间参数传递
  19. Matlab练习——rpy2tr函数与自己实现的ZYX欧拉角的结果不同的问题
  20. kafka生产消费原理笔记

热门文章

  1. java之 代理设计模式
  2. 手把手教你打造高效的 Kubernetes 命令行终端
  3. Tensorflow在python3.7版本的运行
  4. Java知识回顾 (17)MySQL链接
  5. 关于创建Web图像时应记住的五个要素
  6. 编程风格统一配置EditorConfig
  7. MySQL修炼之路三
  8. 电脑 DNS纪要
  9. dt框架自定义url规则
  10. Vue --- 前后台总结