题解

303 条题解

  • 0
    @ 2009-02-03 09:47:34

    #include

    int main()

    {

    int n,t[101],left[101]={0},i,j,right[101]={0};

    scanf("%d",&n);

    for(i=1;ii;j--)

    if((t[j]right[i]))

    right[i]=right[j]+1;

    }

    j=left[1]+right[1]-1;

    for(i=2;ij)j=t[0];

    }

    j=n-j;printf("%d",j);

    scanf("%d",&n);

    }

  • 0
    @ 2009-01-30 20:35:15

    编译通过...

    ├ 测试数据 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-01-28 15:40:52

    就是最少需要几位同学出列。……囧,我居然当成有多少人参加……交了N+1次……

  • 0
    @ 2009-01-23 21:24:13

    第一道动规,哈哈。

    还不错。

    交了好几遍,有一次测试输出没去掉就交上去了。。。。。郁闷

    其实就是一次从左面上升序列f[i] 一次从右面上升序列g[i]

    求n - max{f[i] + g[i] -1}

  • 0
    @ 2009-01-18 18:46:16

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    第2道dp题。。。

    寒假努力学dp中~~~~~

  • 0
    @ 2009-01-14 17:26:43

    第一道动规题。

    纪念一下。

  • 0
    @ 2009-01-10 20:23:50

    TXX love Horse-TANG

  • 0
    @ 2008-12-21 14:16:46

    郁闷

    题目意思

    理解错了

    看了题解才明白

    不好意思

    (我以为是最大不降子序列)

  • 0
    @ 2008-12-12 21:42:35

    #include

    using namespace std;

    int main()

    {

    int t[50],k=0,n,i;

    cin>>n;

    for(i=0;i>t[i];

    }

    for(i=0;it)k+=1;

    }

    cout

  • 0
    @ 2008-12-11 13:13:27

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    program p1098;

    const

    maxn=100;

    var

    n,i,j,max:integer;

    t,a,b:array[0..maxn+1] of integer;

    begin

    readln(n);

    for i:=1 to n do

    read(t[i]);

    fillchar(a,sizeof(a),0);

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

    t[0]:=-maxint;

    for i:=1 to n do

    for j:=i-1 downto 0 do

    if (t[j]a[i])

    then a[i]:=a[j]+1;

    t[n+1]:=-maxint;

    for i:=n downto 1 do

    for j:=i+1 to n+1 do

    if (t[i]>t[j]) and (b[j]+1>b[i])

    then b[i]:=b[j]+1;

    max:=0;

    for i:=1 to n do

    if a[i]+b[i]>max

    then max:=a[i]+b[i];

    writeln(n-max+1);

    end.

  • 0
    @ 2008-12-08 13:31:33

    program p1098;

    var

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

    i,n,m:integer;

    procedure doit(k:integer);

    var

    i,j,max,p,t:integer;

    begin

    t:=0;

    max:=0;

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

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

    b[k-1]:=1;

    c[k-1]:=0;

    for i:=k-1 downto 1 do

    begin

    if a[i]

  • 0
    @ 2008-12-05 21:49:47

    很容易的说,正一次反一次就过了

    Program singing;

    const maxn=100;

    var t:array[1..maxn]of integer;

    a:array[1..maxn]of integer;

    b:array[1..maxn]of integer;

    i,j,n,count:integer;

    begin

    count:=0;

    readln(n);

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

    a[1]:=1;

    for i:=2 to n do

    begin

    a[i]:=0;

    for j:=1 to i-1 do

    if (a[j]>a[i])and(t[j]b[i])and(t[j]count then count:=a[i];

    end;

    writeln(n-count);

    end.

  • 0
    @ 2008-12-03 14:40:13

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    ***|Hpec killed P1098 with knife

  • 0
    @ 2008-12-02 13:34:13

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    一次AC!

    program p1098;

    const

    maxn=100;

    var

    n,i,j,max:integer;

    t,a,b:array[0..maxn+1] of integer;

    begin

    readln(n);

    for i:=1 to n do

    read(t[i]);

    fillchar(a,sizeof(a),0);

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

    t[0]:=-maxint;

    for i:=1 to n do

    for j:=i-1 downto 0 do

    if (t[j]a[i])

    then a[i]:=a[j]+1;

    t[n+1]:=-maxint;

    for i:=n downto 1 do

    for j:=i+1 to n+1 do

    if (t[i]>t[j]) and (b[j]+1>b[i])

    then b[i]:=b[j]+1;

    max:=0;

    for i:=1 to n do

    if a[i]+b[i]>max

    then max:=a[i]+b[i];

    writeln(n-max+1);

    end.

  • 0
    @ 2008-11-28 23:43:16

    记录编号 Flag 得分 记录信息 环境 评测机 程序提交时间

    R1079793 Accepted 100 From ACKiller-

     P1098 FPC Vag 6K 2008-11-28 23:39:54

    R1079792 Unaccepted 90 From ACKiller-

     P1098 FPC Vag 6K 2008-11-28 23:39:08

    R1079788 Unaccepted 90 From ACKiller-

     P1098 FPC Vag 6K 2008-11-28 23:37:21

    R1079782 Unaccepted 90 From ACKiller-

     P1098 FPC Vivid Puppy 2008-11-28 23:31:58

    R1079775 Unaccepted 90 From ACKiller-

     P1098 FPC Vivid Puppy 2008-11-28 23:26:34

    R1079773 Unaccepted 50 From ACKiller-

     P1098 FPC Vivid Puppy 2008-11-28 23:25:23

    R1079768 Unaccepted 80 From ACKiller-

     P1098 FPC Vivid Puppy 2008-11-28 23:21:11

    其实很简单,最长升/降序列问题,简单动规

    7次才AC, 有个点好阴伢!

    最后逼我.....

    {Kevin} {zui chang sheng xu & jiang xu}

    program p1098;

    var

    n,i,j:integer;

    m:longint;

    fu,fd,t:array[1..100]of integer;

    begin

    fillchar(fu,sizeof(fu),0);

    fillchar(fd,sizeof(fd),0);

    readln(n);

    fu[1]:=1;

    for i:=1 to n do

    begin

    read(t[i]);

    m:=0;

    for j:=1 to i-1 do

    if (t[j]

  • 0
    @ 2008-11-22 22:09:17

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    庆祝AC第40题

  • 0
    @ 2008-11-13 23:11:34

    var

    n,i,j,ans:longint;

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

    function max(a,b:longint):longint;

    begin

    if a>b then exit(a) else exit(b);

    end;

    begin

    readln(n);

    for i:=1 to n do

    read(t[i]);

    for i:=1 to n do begin a[i]:=1;b[i]:=1;end;

    for i:=2 to n do

    for j:=1 to i-1 do

    if t[i]>t[j] then a[i]:=max(a[j]+1,a[i]);

    for i:=n-1 downto 1 do

    for j:=n downto i+1 do

    if t[i]>t[j] then b[i]:=max(b[j]+1,b[i]);

    ans:=0;

    for i:=1 to n do

    ans:=max(ans,a[i]+b[i]-1);

    writeln(n-ans);

    end.

    一开始以为身高相等也可以,结果W了5个。

  • 0
    @ 2008-11-12 19:44:10

    这道题目真的是让我想自杀,检查了半天,竟然忘记写downto,细节决定成败啊

  • 0
    @ 2008-11-10 16:36:05

    无语,总错~~~~~~~

  • 0
    @ 2008-11-10 15:13:10

    囧……

    O(N^3)的枚举老是过不去,最近写了个O(NlogN)的,终于过去了

信息

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