博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj2020[Usaco2010 Jan]Buying Feed, II*
阅读量:7286 次
发布时间:2019-06-30

本文共 1122 字,大约阅读时间需要 3 分钟。

题意:

FJ开车去买食物,如果他的车上有X份食物。每走一里就花费X元。 城市总共E里路,FJ从0开始走,到E结束(不能往回走),要买K份食物。 城里有N个商店,每个商店的位置是Xi,有Fi份食物,每份Ci元。 问到达E并买K份食物的最小花费。k≤100,n≤100。

题解:

dp。f[i][j]表示现在在第i个商店,在j份食物。f[i][j]=f[i-1][j-k]+k*c[i]+j*(x[i]-x[i-1]),k≤fi。

代码:

1 #include 
2 #include
3 #include
4 #define inc(i,j,k) for(int i=j;i<=k;i++) 5 #define maxn 110 6 #define INF 1e16 7 #define ll long long 8 using namespace std; 9 10 inline int read(){11 char ch=getchar(); int f=1,x=0;12 while(ch<'0'||ch>'9'){
if(ch=='-')f=-1; ch=getchar();}13 while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();14 return f*x;15 }16 ll f[2][maxn]; int k,e,n,x,y; struct nd{
int pos,f,c;}nds[maxn];17 bool cmp(nd a,nd b){
return a.pos
=1;i--){22 inc(j,0,k){23 f[y][j]=INF;24 inc(l,j,min(j+nds[i].f,k))25 f[y][j]=min(f[y][j],f[x][l]+(ll)(l-j)*nds[i].c+(ll)(nds[i+1].pos-nds[i].pos)*l);26 }27 swap(x,y);28 }29 printf("%lld",f[x][0]); return 0;30 }

 

20161011

转载于:https://www.cnblogs.com/YuanZiming/p/5978787.html

你可能感兴趣的文章
信号槽的实现实例—— Qt 和 Boost
查看>>
一段简单的php翻页代码
查看>>
AMD峰会:AMD继续领先intel 并走在节能前沿
查看>>
MySQL第三方复制工具 --- Tungsten-Replicator
查看>>
软件平台与框架的生命周期
查看>>
mysql 引擎MyISAM 和 InnoDB区别
查看>>
Docker(二十)在 Kubernetes 中配置私有 DNS 和上游域名服务器
查看>>
AIX 6.1 + HACMP 6.1 + Oracle 11g双机实施 (1) --- AIX 6.1配置HACMP 6.1
查看>>
我的友情链接
查看>>
mysqldump 使用
查看>>
做最好的自己,人生十件事(事业,人生,情感)
查看>>
jboss 优化
查看>>
Android OpenGL ES与EGL
查看>>
python中urllib和urllib2小结
查看>>
我的友情链接
查看>>
再续专注提高技术
查看>>
【Glassfish入门】使用Glassfish
查看>>
部署社交网站
查看>>
Centos7 安装JDK
查看>>
浅谈个人安全意识
查看>>