题解

303 条题解

  • 0
    @ 2009-09-09 17:39:50

  • 0
    @ 2009-09-06 12:37:25

    很随意

  • 0
    @ 2009-08-31 20:26:25

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    想知道程序,就往下看!

    想知道程序,就往下看!

    想知道程序,就往下看!

    想知道程序,就往下看!

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    秒杀....... AC!

  • 0
    @ 2009-08-30 13:32:58

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    秒杀.......

  • 0
    @ 2009-08-28 21:50:53

    var

    n,i,j,max:longint;

    a,b,c:array[1..100] of integer;

    begin

    readln(n);

    for i:=1 to n do read(a[i]);

    fillchar(b,sizeof(b),0); fillchar(c,sizeof(c),0);

    for i:=1 to n do

    begin

    b[i]:=1;

    for j:=1 to i-1 do if (a[i]>a[j]) and (b[j]+1>b[i]) then b[i]:=b[j]+1;

    end;

    for i:=n downto 1 do

    begin

    c[i]:=1;

    for j:=i+1 to n do if (a[j]c[i]) then c[i]:=c[j]+1;

    end;

    max:=0;

    for i:=1 to n do if b[i]+c[i]>max then max:=b[i]+c[i];

    writeln(n-max+1);

    end.

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

  • 0
    @ 2009-08-28 17:21:08

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    orz

  • 0
    @ 2009-08-18 14:29:34

    相当水的题...正最长不下降+反最长不下降...可以和在一个循环写...

    ans=n-(正最长不下降+反最长不下降-1)

  • 0
    @ 2009-08-16 10:54:02

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    var

    a,b,it:array[0..1000] of integer;

    i,j,k,m,n,g,p,max:integer;

    begin

    read(n);

    for i:=1 to n do

    read(it[i]);

    a[n]:=1;

    for i:=n-1 downto 1 do

    begin

    a[i]:=1;

    for j:=i+1 to n do

    if (it[i]>it[j]) and (a[i]it[j]) and (b[i]max then max:=a[i];

    end;

    writeln(n-max+1);

    end.

    双向递推!~~~~~~~~~yes~~~~

  • 0
    @ 2009-08-15 20:06:39

    DP

    农夫山泉

  • 0
    @ 2009-08-14 15:36:20

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    一个最长上升,一个最长下降

    强烈BS自己,竟然自己创了个最长啥子序列的DP公式,然后一直UNAC,今天终于A了

  • 0
    @ 2009-08-12 22:51:39

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    program p1100;

    var

    i,j,n,max:longint;

    a,b,c:array [1..100] of longint;

    begin

    readln(n);

    for i:=1 to n do

    read(a[i]);

    fillchar(b,sizeof(b),0);

    fillchar(c,sizeof(c),0);

    for i:=1 to n do

    begin

    b[i]:=1;

    for j:=1 to i-1 do if (a[i]>a[j]) and (b[j]+1>b[i]) then b[i]:=b[j]+1;

    end;

    for i:=n downto 1 do

    begin

    c[i]:=1;

    for j:=i+1 to n do if (a[i]>a[j]) and (c[j]+1>c[i]) then c[i]:=c[j]+1;

    end;

    max:=0;

    for i:=1 to n do

    if b[i]+c[i]>max then max:=b[i]+c[i];

    writeln(n-max+1);

    end.

  • 0
    @ 2009-08-09 20:36:38

    楼下有创意!

  • 0
    @ 2009-08-06 20:41:44

    请用鼠标拖动选择下列文字即可显示题解

    var n,k,i,j:integer; t,a,b:array [1..100] of integer;function max(a,b:integer):integer; begin if a>b then max:=a else max:=b; end;begin k:=1; readln(n); for i:=1 to n do read(t[i]); readln; for i:=1 to n do begin a[i]:=1; for j:=1 to i-1 do if t[i]>t[j] then a[i]:=max(a[i],a[j]+1); end; for i:=n downto 1 do begin b[i]:=1; for j:=i+1 to n do if t[i]>t[j] then b[i]:=max(b[i],b[j]+1); end; for i:=1 to n do if a[i]+b[i]-1>k then k:=a[i]+b[i]-1; writeln(n-k);end.

  • 0
    @ 2009-07-29 15:11:12

    本来左一个右一个导弹就完了…………

    号……害我WA了n次………………~~~~(>_

  • 0
    @ 2009-07-28 09:44:16

    #include

    using namespace std;

    int a[101],up[101],down[101];

    int getUp(int i)

    {

    int j,p=0;

    for(j=i-1;j>=0;j--)

    if(a[i]>a[j]&&up[j]>p)

    p = up[j];

    return p;

    }

    int getDown(int i)

    {

    int j,max=0;

    for(j=i-1;j>=0;j--)

    {

    if(a[i]max)

    max = up[j];

    if(down[j]>max)

    max = down[j];

    }

    }

    return max;

    }

    int main()

    {

    int i,n,t=up[0]=down[0]=1;

    cin>>n;

    cin>>a[0];

    for(i=1;i>a[i];

    up[i]=getUp(i)+1;

    if(up[i]>t)

    t=up[i];

    down[i]=getDown(i)+1;

    if(down[i]>t)

    t=down[i];

    }

    cout

  • 0
    @ 2009-07-27 21:30:51
  • 0
    @ 2009-07-26 13:57:05

    编译通过...├ 测试数据 01:答案正确... 0ms├ 测试数据 02:答案正确... 0ms├ 测试数据 03:答案正确... 0ms├ 测试数据 04:答案正确... 0ms├ 测试数据 05:答案正确... 0ms├ 测试数据 06:答案正确... 0ms├ 测试数据 07:答案正确... 0ms├ 测试数据 08:答案正确... 0ms├ 测试数据 09:答案正确... 0ms├ 测试数据 10:答案正确... 0ms-------------------------Accepted 有效得分:100 有效耗时:0ms

    又学了一种新算法,DP新手

  • 0
    @ 2009-07-25 23:11:13

    #include

    struct

    {

    int pre;

    int value;

    }

    up[100],down[100];

    int height[100];

    int n;

    void input(void)

    {int i;

    scanf("%d",&n);

    for(i=0;i

  • 0
    @ 2009-07-26 15:26:32

信息

ID
1098
难度
5
分类
动态规划 | LIS 点击显示
标签
递交数
12832
已通过
4890
通过率
38%
被复制
21
上传者