description
農民john以擁有世界上最健康的奶牛為驕傲。他知道每種飼料中所包含的的牛所需的最低的維他命量是多少。請你幫助農夫餵養他的牛,以保持他們的健康,使餵給牛的飼料的種數最少。
給出牛所需的最低的維他命,輸出餵給牛需要哪些種類的飼料,且所需的種類數最少。
input
第1行:乙個整數v(1<=v<=25),表示需要的維他命的種類數。
第2行:v個整數(1<=每個數<=1000),表示牛每天需要的維他命的最小量。
第3行:乙個整數g(1<=g<=15),表示可用來喂牛的飼料的數量。下面g行,第i行表示編號為i飼料包含的各種維他命的量的多少。
output
輸出檔案只有一行,包括:
• 牛必需的最小的飼料種數p
• 後面有p個數,表示所選擇的飼料編號(按從小到大排列)。
末尾有空行
題解就乙個dfs,水了。
executing…
test 1: test ok [0.000 secs, 340 kb]
test 2: test ok [0.000 secs, 340 kb]
test 3: test ok [0.000 secs, 340 kb]
test 4: test ok [0.000 secs, 340 kb]
test 5: test ok [0.000 secs, 340 kb]
test 6: test ok [0.000 secs, 340 kb]
test 7: test ok [0.000 secs, 340 kb]
test 8: test ok [0.000 secs, 340 kb]
test 9: test ok [0.011 secs, 340 kb]
test 10: test ok [0.011 secs, 340 kb]
all tests ok.
**
var m,n,l,tot,min:longint;
a:array [0..31]of longint;
ans,tmp:array [0..20]of longint;
f:array [0..20,0..31] of longint;
procedure
init;
var i,j:longint;
begin
readln(n);
for i:=1
to n do
read(a[i]);
readln(m);
for i:=1
to m do
for j:=1
to n do
read(f[i,j]);
tot:=0;
min:=maxlongint;
end;
function
check:boolean;
var i:longint;
begin
for i:=1
to n do
if a[i]>0
then
exit(false);
exit(true);
end;
procedure
dfs(k:longint);
var i:longint;
begin
if (check) and (totthen
begin
ans:=tmp;
min:=tot;
end;
if k>m then
exit;
inc(tot);
tmp[tot]:=k;
for i:=1
to n do
a[i]:=a[i]-f[k,i];
dfs(k+1);
dec(tot);
for i:=1
to n do
a[i]:=a[i]+f[k,i];
dfs(k+1);
end;
procedure
print;
var i:longint;
begin
write(min,' ');
for i:=1
to min-1
dowrite(ans[i],' ');
writeln(ans[min]);
end;
begin
assign(input,'holstein.in');
assign(output,'holstein.out');
reset(input);
rewrite(output);
init;
dfs(1);
print;
close(input);
close(output);
end.
USACO2 1 解題報告
usaco2.1主要內容是圖論。其中有幾道題是要用深搜做的。而另外幾道題則是利用模擬的方法來完成簡單圖論。總體來說難度還是比較小的,算是最基礎的演算法吧。uasco 題解思路 可以列舉分子和分母,然後判斷他們的最小公約數是不是1 1 其實就是判斷是否互質 如果是的話就將這個分數加入到結構體裡面,儲存...
USACO 2 1 順序的分數
description 輸入乙個自然數n 請寫乙個程式來增序輸出分母小於等於n的最簡真分數 input 單獨的一行 乙個自然數n 1.160 output 每個分數單獨佔一行 最後一行有回車 sample input 5 sample output 0 1 1 5 1 4 1 3 2 5 1 2 3...
USACO 2 1 健康的好斯坦奶牛 DFS
description 農民john以擁有世界上最健康的奶牛為驕傲。他知道每種飼料中所包含的的牛所需的最低的維他命量是多少。請你幫助農夫餵養他的牛,以保持他們的健康,使餵給牛的飼料的種數最少。給出牛所需的最低的維他命,輸出餵給牛需要哪些種類的飼料,且所需的種類數最少。input 第1行 乙個整數v ...