160 条题解
-
0xusc_2009 LV 9 @ 2009-08-07 19:53:42
33行
-
02009-08-04 20:59:19@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02009-10-24 16:44:53@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02009-07-15 17:20:17@
program g;
var
n:integer;
a:array[1..250] of integer;
i,j,k:integer;
b:array[1..250,1..250] of int64;
max:qword;
begin
readln(n);
for i:=1 to n do
begin
read(a[i]);
a[n+i]:=a[i];
end;for i:=1 to n do
for j:=1 to n+n-i do
for k:=j to i+j-1 do
if b[j,i+j] -
02009-07-14 16:16:21@
经典的区间动态
很短不是么
var i,j,k,t,n,max,temp:longint;
a:array[0..201] of longint;
f:array[0..201,0..201] of longint;
begin
readln(n);
for i:=1 to n do
begin
read(a[i]);
a:=a[i];
end;for j:=3 to 2*n do
for i:=j-2 downto 1 do
for k:=i+1 to j-1 do
begin
temp:=f+f[k,j]+a[i]*a[k]*a[j];
if temp>f then f:=temp;
end;for i:=1 to n do if f>max then max:=f;
writeln(max);
end. -
02009-06-17 21:02:19@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar i,j,k,t,n,max,temp:longint;
a:array[1..201]of longint;
f:array[1..201,1..201]of longint;
begin
readln(n);
for i:=1 to n do
begin
read(a[i]);
a:=a[i];
end;
for i:=1 to 2*n-2 do
f:=a[i]*a*a;
for t:=2 to n-1 do
for i:=1 to 2*n-t-1 do
begin
max:=0;
j:=i+t;
for k:=i to j-1 do
begin
temp:=f+f[k+1,j]+a[i]*a[k+1]*a[j+1];
if temp>max then max:=temp;
end;
f:=max;
end;
max:=0;
for i:=1 to n do
if f>max then max:=f;
writeln(max);
end. -
02009-06-16 16:33:41@
program p1312;
var a:array[1..100] of integer;
f:array[1..100,1..100] of longint;
i,j,n,k:integer;
max:longint;
beginfillchar(a,sizeof(a),0);
fillchar(f,sizeof(f),0);
readln(n);
for i:=1 to n do read(a[i]);
for j:=2 to n do
for i:=1 to n do
begin
max:=0;
for k:=1 to j-1 doif f+f[(i+k-1)mod n +1,j-k]+a[i]*a[(i+j-1)mod n+1]*a[(i+k-1)mod n +1] >max then
max:= f+f[(i+k-1)mod n +1,j-k]+a[i]*a[(i+j-1)mod n+1]*a[(i+k-1)mod n +1] ;f:=max;
end;
max:=0;
for i:=1 to n do
if f>max then max:=f;
writeln(max);end.
-
02009-06-06 03:28:19@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
总算第50题啦,真不容易。 -
02009-08-22 16:22:35@
我用DP终于A了,但用贪心有什么反例吗?
-
02009-05-04 22:15:33@
dp是个好方法
简单说一下项链的表示(给像我一样菜鸟的提示):
1.存n个数 访问时加上mod n
或 2.存2n个数 1 2 3 就存 1 2 3 1 2 3
{居然有人用链表 我晕倒}
剩下的和矩阵练乘法一样了 -
02009-04-18 14:46:21@
记忆化搜索
var
a:array[1..2000] of longint;
f:array[1..2000,1..2000] of longint;
i,n,max:longint;function find(p,q:longint):longint;
var
j:longint;
begin
if f[p,q]0 then exit(f[p,q]);
find:=0;
for j:=p+1 to q-1 do
if find(p,j)+find(j,q)+a[p]*a[q]*a[j]>find then
find:=find(p,j)+find(j,q)+a[p]*a[q]*a[j];
f[p,q]:=find;
exit;
end;begin
readln(n);
for i:=1 to n do read(a[i]);
for i:=1 to n do a:=a[i];
find(1,n shl 1);
for i:=1 to n do
if f>max then max:=f;
writeln(max);
end. -
02009-04-09 16:03:53@
love_947
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms( 2009-1-21 12:40:57 )
-
02009-02-25 15:57:30@
为什么!!!!!!!!!!!!!!!!!!!
数组开200不可以???????????要250!!!!!!!!!!!!!! -
02009-01-21 12:40:57@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-12-15 11:54:15@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02008-12-13 19:14:33@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms经典问题,石子归并
注意区间型的要枚举区间长度~~
把数组开到2n就可以了***|Hpec killed P1312 with AWP
-
02008-12-06 23:34:28@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
数组没开到220,居然写运行超时…………RP有问题 -
02008-11-11 21:08:37@
还是不太懂,能否写清楚些!!
-
02008-11-10 17:19:54@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 41ms
├ 测试数据 09:答案正确... 9ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:50ms
f=max(f,f[k+1,j]+ball[i]*ball[k+1]*ball[j+1])
(i为头珠子,j为尾珠子,i -
02008-11-09 19:43:39@
program cx1;
var
n,i,j,k,l,max:longint;
a,b:array[0..1000] of longint;
ma:array[1..1000,1..1000] of longint;
procedure work;
var
max:longint;
begin
fillchar(ma,sizeof(ma),0);
for i:=1 to i-1 do
begin for j:=1 to 2*n-i do
begin
l:=j+i;
for k:=j to l-1 do
if ma[j,k]+ma[k+1,l]+b[k]*a[j]*b[i]>ma[j,l] then
ma[j,l]:=ma[j,k]+ma[k+1,l]+b[k]*a[j]*b[i];
end;
end;
max:=0;
for i:=1 to n do
if ma>max then max:=ma;
writeln(max);
end;
begin
readln(n);
for i:=1 to n do
read(a[i]);
readln;
a[0]:=a[n];
a[2*n+1]:=a[1];
for i:=1 to n do
a:=a[i];
for i:=0 to 2*n do
b[i]:=a;
work;
end.哪位大牛帮忙看看哪错了啊