收集樣本問題(num)

2021-05-27 17:09:52 字數 1259 閱讀 5265

演算法:dp

分析:跟傳紙條是乙個題,只不過本題算上了起點和終點,即從起點出發也要算上起點,因此在最後再加上起點和終點位置上的值即可。

program num;

const

maxn=9;

var n:longint;

a:array [0..maxn,0..maxn] of longint;

f:array [0..maxn,0..maxn,0..maxn,0..maxn] of longint;

procedure init;

var x,y,v:longint;

begin

readln(n);

readln(x,y,v);

while x+y+v<>0 do

begin

a[x,y]:=v;

readln(x,y,v);

end;

end;

function max(x,y:longint):longint;

begin

if x>y then exit(x) else exit(y);

end;

procedure main;

var i,j,k,l:longint;

begin

for i:=1 to n do

begin

for j:=1 to n do

begin

for k:=1 to n do

begin

for l:=1 to n do

begin

if (i<>k) or (j<>l) then

begin

f[i,j,k,l]:=max(max(f[i-1,j,k-1,l],f[i,j-1,k,l-1]),max(f[i-1,j,k,l-1],f[i,j-1,k-1,l]))+a[i,j]+a[k,l];

end;

end;

end;

end;

end;

end;

begin

assign(input,'num.in'); reset(input);

assign(output,'num.out'); rewrite(output);

init;

main;

writeln(f[n-1,n,n,n-1]+a[1,1]+a[n,n]);

close(input); close(output);

end.

樣本收集問題

機械人rob在乙個有n n 個方格的方形區域f 中收集樣本。i,j 方格中樣本的價值為v i,j 如下圖所示 rob 從方形區域f 的左上角a點出發,向下或向右行走,直到右下角的b 點,在走過的路上,收集方格中的樣本。rob 從a點到b 點共走2次,試找出rob 的2條行走路徑,使其取得的樣本總價值...

樣本收集問題JAVA實現

機械人rob 從方形區域f 的左上角a點出發,向下或向右行走 直到右下角的b 點,在走過的路上,收集方格中的樣本。rob 從a點到b 點共走2次,試找出rob 的2條行走路徑,使其取得的樣本總價值最大。input 第1 行有1 個正整數n,表示方形區域f有n n 個方格。接下來每行有3 個整數,前2...

關於num 2的問題

首先我們先來 一下這個結果,大概很多同志都會思考一下,然後覺得是201吧 其實我一開始也是這麼覺得的,但是大多數往往是錯的,捂臉 首先我是使用的cb,預設的gcc編譯器,gdb32除錯。直接讓我們來看看除錯結果!換個方式看看吧 由此可見,運算子建立了乙個新的執行變數 新的記憶體位址 但是乘法並沒有,...