演算法:dp
分析:這道題曾經做過的,是usaco上的一道題,其實就是個搜尋+dp,也沒什麼新鮮的,但是不知道為什麼就是老超時,只優化了乙個地方,最後乙個點通過需要1.34s……
program vijos1159;
const
maxq=20000;
maxp=100;
var p,q,tot,depth:longint;
a,sel:array [0..maxp] of longint;
f:array [0..maxq] of longint;
procedure init;
var i:longint;
begin
tot:=0;
readln(q);
readln(p);
for i:=1 to p do readln(a[i]);
end;
procedure qsort(l,r:longint);
var i,j,m,t:longint;
begin
i:=l;
j:=r;
m:=sel[(l+r) shr 1];
repeat
while sel[i]m do dec(j);
if i<=j then
begin
t:=sel[i];
sel[i]:=sel[j];
sel[j]:=t;
inc(i);
dec(j);
end;
until i>j;
if i0 then
begin
write(tot,' ');
qsort(1,tot);
for i:=1 to tot do write(sel[i],' ');
writeln;
close(input);
close(output);
halt;
end;
end;
procedure dfs(dep,st:longint);
var i:longint;
begin
check;
if depth=dep then exit;
for i:=st to p do
begin
inc(tot);
sel[tot]:=a[i];
dfs(dep+1,st+1);
dec(tot);
end;
end;
procedure main;
var i:longint;
begin
for i:=1 to p do
begin
depth:=i;
dfs(0,1);
end;
end;
begin
assign(input,'vj1159.in'); reset(input);
assign(output,'vj1159.out'); rewrite(output);
init;
main;
close(input); close(output);
end.
題解 Vijos1159 岳麓山上打水
題面 迭代加深搜尋模板題。注意開始時要先對桶的容量從小到大排序。達到搜尋層數時使用完全揹包 text 即可。具體實現參考 include define itn int define gi gi using namespace std inline int gi while c 0 c 9 x x 1...
Vijos1159 岳麓山上打水 迭代加深
vijos1159岳麓山上打水 mzoj1005打水 今天算是學到了,到一些oj上提交程式需要選擇語言,不然會炸qaq 大概是我太菜了現在才知道 1 include2 using namespace std 3const int n 100 10 4 const int m 20000 10 5 i...
夜晚的岳麓山
來到長沙這麼多天,除開出差,大部分時間就在公司,姐家和酒店三點一線的生活,今天降溫,渴望的一場雨沒有到來,倒是刮了一天的風。晚上吃過晚飯本打算藉著涼爽的天氣徒步回酒店,正好緩解下緊張的工作情緒。姐姐打來 晚上一起去爬岳麓山,跟我徒步回家的想法不謀而合,相比之下爬山比壓馬路好多了,不僅有清新的空氣,還...