您的位置:首页 > 其它

1996: [Hnoi2010]chorus 合唱队

2015-05-01 21:21 323 查看

1996: [Hnoi2010]chorus 合唱队

Time Limit: 4 Sec Memory Limit: 64 MB
Submit: 1057 Solved: 681
[Submit][Status][Discuss]

Description



Input



Output



Sample Input

4

1701 1702 1703 1704

Sample Output

8

HINT



Source

题解:萌萌哒DP题,其实和我一开始想的暴力方法很接近,基本上就是记忆化暴力,然后转变为循环形式(HansBug:无后效性这玩意就是爽^_^),然后就只管AC啦
(PS:不过话说第一遍的记忆化暴力WA掉了是What Ghost???)

/**************************************************************
Problem: 1996
User: HansBug
Language: Pascal
Result: Accepted
Time:108 ms
Memory:8172 kb
****************************************************************/

const p=19650827;
var
i,j,k,l,m,n:longint;
c:array[0..10000] of longint;
a:array[0..1005,0..1005,1..2] of longint;
begin
readln(n);
for i:=1 to n do
begin
read(c[i]);
a[i,i,0]:=1;
end;
readln;
for i:=n-1 downto 1 do
for j:=i+1 to n do
begin
a[i,j,0]:=0;a[i,j,1]:=0;
if c[i]<c[i+1] then inc(a[i,j,0],a[i+1,j,0]);
if c[i]<c[j] then inc(a[i,j,0],a[i+1,j,1]);
if c[j]>c[i] then inc(a[i,j,1],a[i,j-1,0]);
if c[j]>c[j-1] then inc(a[i,j,1],a[i,j-1,1]);
a[i,j,0]:=a[i,j,0] mod p;
a[i,j,1]:=a[i,j,1] mod p;
end;
writeln((a[1,n,1]+a[1,n,0]) mod p);
readln;
end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: