啊哈,現在有重溫了一遍o(╥﹏╥)o
從以前的o(n2)——>現在的o(n3),感覺自己廢了~
(儘管**大幅度減少)
我們可以發現p其實只是乙個限制的作用,不需要列舉啊,它是乙個個走的,所以只需要記錄一下就行了┭┮﹏┭┮
uses math;
var f,g:array[
0..1001,0.
.1001,0.
.1]of longint;
a:array[
1..1001,1.
.1001
]of longint;
b:array[
1..1001
]of longint;
n,m,p,i,j,k,max1,max2:longint;
begin
assign
(input,
'game.in');
reset
(input)
;assign
(output,
'game.out');
rewrite
(output)
;readln
(n,m,p)
;for i:
=1 to n do
for j:
=1 to m do
read
(a[i,j]);
for i:
=1 to n do
read
(b[i]);
for i:
=1 to m do
begin
for j:
=1 to n do
begin
k:=j-1
;if k=
0 then k:
=n;if
(g[i-
1,k,1]
>0)
and(g[i-
1,k,0]
>0)
and(g[i-
1,k,1]
+1<=p)
and(g[i-
1,k,0]
+1<=p) then
begin
if f[i-
1,k,1]
>f[i-
1,k,
0] then
begin
f[i,j,0]
:=f[i-
1,k,1]
+a[j,i]
; g[i,j,0]
:=g[i-
1,k,1]
+1; end else
begin
f[i,j,0]
:=f[i-
1,k,0]
+a[j,i]
; g[i,j,0]
:=g[i-
1,k,0]
+1; end;
end else
if(g[i-
1,k,1]
>0)
and(g[i-
1,k,1]
+1<=p) then
begin
f[i,j,0]
:=f[i-
1,k,1]
+a[j,i]
; g[i,j,0]
:=g[i-
1,k,1]
+1; end else
if(g[i-
1,k,0]
>0)
and(g[i-
1,k,0]
+1<=p) then
begin
f[i,j,0]
:=f[i-
1,k,0]
+a[j,i]
; g[i,j,0]
:=g[i-
1,k,0]
+1; end;
f[i,j,1]
:=a[j,i]
-b[j]
+max1;
g[i,j,1]
:=1;
max2:
=max
(max
(f[i,j,1]
,f[i,j,0]
),max2)
; end;
max1:
=max2;
end;
writeln
(max1)
;close
(input)
;close
(output)
;end.
只看我傻傻地打了個n三方
#include
#include
#include
using namespace std;
int n,m,p,f[2]
[1010][
1010
],g[
1010][
1010
],c[
1010
],ans=0;
inline
intread()
intmain()
}for
(int j=
1;j<=n;j++
) f[x]
[j][0]
=mx-c[j];}
for(
int j=
1;j<=n;j++
)for
(int k=
0;k<=p;k++
) ans=
max(ans,f[m%2]
[j][k]);
printf
("%d\n"
,ans)
;return0;
}
NOIP2009PJ 道路遊戲
啊哈,現在有重溫了一遍o o 從以前的o n2 現在的o n3 感覺自己廢了 儘管 大幅度減少 我們可以發現p其實只是乙個限制的作用,不需要列舉啊,它是乙個個走的,所以只需要記錄一下就行了 uses math var f,g array 0.1001,0.1001,0.1 of longint a ...
1131 NOIP2009PJ 道路遊戲
1131.noip2009pj 道路遊戲 game.pas cpp 比較難的dp 設 fi,j,0表示當前第i時刻到達第j個工廠,在這裡並不買機械人的最大金幣數 設 fi,j,1表示當前第i時刻到達第j個工廠,在這裡買乙個機械人的最大金幣數 注意,題目要求每個時刻必須要有乙個機械人,且走的時候是順時...
NOIP2009 道路遊戲
小新正在玩乙個簡單的電腦遊戲。遊戲中有一條環形馬路,馬路上有 n n n 個機械人工廠,兩個相鄰機械人工廠之間由一小段馬路連線。小新以某個機械人工廠為起點,按順時針順序依次將這 n n n 個機械人工廠編號為 1 n 1 n 1 n,因為馬路是環形的,所以第 n n n 個機械人工廠和第 1 1 1...