160 条题解
-
0BZOI2008 LV 9 @ 2008-11-09 17:55:41
最短的:
program Accepted;
var
i,j,r,k,n,max:longint;
f:array[1..200,1..200] of longint;
da:array[1..200] of longint;begin
readln(n);
fillchar(f,sizeof(f),0);
for i:=1 to n do read(da[i]);
for i:=n+1 to 2*n+1 do da[i]:=da;
for j:=3 to 2*n do
for i:=j-2 downto 1 do
for k:=i+1 to j-1 do
begin
max:=f+f[k,j]+da[i]*da[k]*da[j];
if max>f then f:=max;
end;
max:=0;
for i:=1 to n do if f>max then max:=f;
writeln(max);
end. -
02008-11-09 11:41:33@
#include
#include
#include
#include
using namespace std;struct{
int a,b;
} mars[210];int dp[220][220];
int n;int MAX(int i, int j){
return i>j?i:j;
}int main(){
cin >> n;
for (int i=1; i> mars[i].a;
}
mars[n+1].a=mars[1].a;
for (int i=1; i -
02008-11-07 07:40:02@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
明白了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
谢谢大牛!!! -
02008-11-06 17:25:22@
program energy;
var
a:array [1..200] of longint;
q:array [1..200,1..200] of longint;
i,j,n,x,max,m,k:longint;
begin
fillchar(a,sizeof(a),0);
fillchar(q,sizeof(q),0);
readln(n);
max:=0;m:=0;
for i:=1 to n do read(a[i]);
for i:=n+1 to 2*n do a[i]:=a;
for x:=2 to n do
for i:=1 to n do
begin
j:=i+x;
for k:=i+1 to j-1 do
begin
m:=a[i]*a[k]*a[j]+q+q[k,j];
if qmax then max:=q;
writeln(max);
end.编译通过...
├ 测试数据 01:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 08:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 09:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:50 有效耗时:0ms为什么只有50分啊~~
-
02008-11-06 00:51:29@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
难受啊,当年贪心10分
刚才调了半个小时最后发现是把 2*n-i 打成了 N
rp啊。 -
02008-11-01 10:42:11@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-10-31 22:18:30@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
轻松ac,又是石子合并的dp。。 -
02008-10-31 09:07:41@
为了练习
写了2种不同的方程
F I~J的最大
F I持续J个的最大 .对石子归并彻底了解!
30行...
超过30行我不写了..
很普通的石子`\
-
02008-10-27 16:13:12@
for(p=1;p
-
02008-10-21 21:54:14@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-10-18 20:54:05@
加了那段 第七个点过了~~~
第一个点死都过不去~~~~~
彻底无语了~~
-
02008-10-08 21:24:18@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-10-05 16:10:14@
#include
#includeusing namespace std;
void Energy()
{
#define in cin
#define out cout
//if(in.fail()){ cerrN;
int l[N+1],matrix[N+1][N+1];for(i=1;i>l[i];
matrix[i][1]=0;
}for(j=2;j
-
02008-10-04 21:19:51@
#include
main(){
int i,j,n,p,k;
long int a[202];
scanf("%d\n",&n);
for (i=1;i -
02008-10-03 19:09:30@
F=Max{F+F[k+1,j]+A*A[k]*A[j]}
( i
-
02008-09-30 10:25:53@
program energy;
var a:array[1..200] of integer;
n,tmp,i,j,k,max:longint;
q:array[1..200,1..200] of longint;procedure getin;
begin
readln(n);
for i:=1 to n do begin
read(a[i]);
a:=a[i];
end;
end;
begin
getin;
fillchar(q,sizeof(q),0);
for i:=1 to (n-1) do begin
for j:=1 to (2*n-i-1) do begin
max:=0;
for k:=0 to i-1 do begin
tmp:=q[j,j+k]+q[j+k+1,j+i]+a[j]*a[j+k+1]*a[j+i+1];
if tmp>max then max:=tmp;
end;
q[j,j+i]:=max;
end;
end;
max:=0;
for i:=1 to n do begin
tmp:=q;
if tmp>max then max:=tmp;
end;
writeln(max);
end. -
02008-09-30 09:48:02@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms1,推荐不会的同学把输入数据修改成题目所给的形式 (record数组,p[i].f,p[i].r)这样理解,思考比较方便
2.记忆化搜索更容易编写. -
02008-09-27 22:07:32@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-09-18 17:07:26@
readln(n);
for i:=1 to n do{t[i],w[i]分别表示i位置的头尾标记}
begin
read(t[i]);
w:=t[i];
end;
w[n]:=t[1];
m:=2*n-1;{将前面的n-1个珠子连在最后一个后面,将环形转换为串形}
for i:=n+1 to m do
begin
t[i]:=t;
w[i]:=w;
end;关键的转换
把串变成环 -
02008-09-15 15:07:50@
第2000人,纪念一下!