poj3257
dp,先将材料按以终点为关键字升序排
设f[i,j]为过山车到建到位置i在用了j元钱所得到的最大价值,然后
var x,y,v,w:array[..] of longint;
f:array[..,..] of longint;
l,n,k,m,j,i,ans:longint; function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end; procedure swap(var a,b:longint);
var c:longint;
begin
c:=a;
a:=b;
b:=c;
end; procedure sort(l,r: longint);
var i,j,p: longint;
begin
i:=l;
j:=r;
p:=y[(l+r) div ];
repeat
while y[i]<p do inc(i);
while p<y[j] do dec(j);
if not(i>j) then
begin
swap(x[i],x[j]);
swap(y[i],y[j]);
swap(v[i],v[j]);
swap(w[i],w[j]);
inc(i);
j:=j-;
end;
until i>j;
if l<j then sort(l,j);
if i<r then sort(i,r);
end; begin
readln(l,n,m);
for i:= to n do
begin
readln(x[i],j,v[i],w[i]);
y[i]:=x[i]+j;
if y[i]>l then y[i]:=l;
end;
sort(,n);
j:=;
fillchar(f,sizeof(f),);
f[,]:=;
for i:= to l do
begin
while y[j]<=i do
begin
if y[j]=i then
begin
for k:= to m do
if (f[x[j],k]>) and (k+w[j]<=m) then
f[i,k+w[j]]:=max(f[i,k+w[j]],f[x[j],k]+v[j]);
end;
inc(j);
end;
end;
ans:=;
for j:= to m do
ans:=max(ans,f[l,j]);
writeln(ans-);
end.
容易分析复杂度为O(nm)
首尾必须相连是这题关键
poj3257的更多相关文章
随机推荐
- 用JS写的无缝滚动特效
代码如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta ...
- php截取字符串的实例代码(支持utf-8)
分享下php中截取字符串的例子,支持utf-8格式. 1,截取字符串 <?php $string="2006年4月我又长大了一岁!"; echo substr($string ...
- SDP协议分析
一.SDP协议介绍 SDP 完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议,包括会话通知协议(SAP).会话初始协议(SIP).实时流协议(RTSP).MIME 扩展协 ...
- 八、mysql视图、存储过程、函数以及时间调度器
.create or replace view emp_view as select * from t4 ;给t4表创建一个名为emp_view的视图 .drop view emp_view 删除视图 ...
- redis缓存的安装和使用
Redis介绍 Redis本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,他的值可以是s ...
- 微软职位内部推荐-Principal Architect for Windows Security
微软近期Open的职位: Location: China, BeijingDivision: Operations System Group Engineering Group OverviewOSG ...
- 主题: 为kindsoft编辑器替换SyntaxHighlighter代码高亮,整合DEDECMS
作者: fmamcn, 发布日期: 2012-09-29 12:28:39, 浏览数: 1567 看了狼魂发表的将kindeditor中的代码高亮插件prettify换为SyntaxHighlight ...
- php+mysql分页类的入门实例
php+mysql分页类的简单代码 时间:2016-02-25 06:16:26来源:网络 导读:php+mysql分页类的简单代码,二个php分页类代码,对商品进行分页展示,当前页面数,每个页面展示 ...
- 应该如何入门deep learning呢?从UFLDL开始!
抱歉,大家,这里不是要分享如何学习deep learning,而是想要记录自己学习deep learning的小历程,算是给自己的一点小动力吧,希望各位业内前辈能够多多指教! 看到有网友提到,Andr ...
- 一个简单的js计数器(web储存)。
<span id="countspan"></span> <a href="#" onclick="countNumbe ...