讨论 / 题解c++
moyu 2014-04-11 13:32:27
点我顶贴 收藏 删除
测试点1 Accepted / 8ms / 1884kB

测试点2 Accepted / 11ms / 1884kB

测试点3 Accepted / 7ms / 1884kB

测试点4 Accepted / 7ms / 1884kB

测试点5 Accepted / 13ms / 1884kB

测试点6 Accepted / 7ms / 1884kB

测试点7 Accepted / 7ms / 1884kB

测试点8 Accepted / 7ms / 1884kB

测试点9 Accepted / 7ms / 1884kB

测试点10 Accepted / 7ms / 1884kB

#include<stdio.h>

#include<string.h>

int main()

{int n, a[200], b[200], c[200], i, j, max; 

scanf("%d", &n);

for (i = 0; i < n; i++)   

scanf("%d", &a[i]); 

memset(b, 0, sizeof(a)); 

memset(c, 0, sizeof(c));

for (i = 0; i <n; i++)  

{b[i]=1;  

  for (j = 0; j <=i-1; j++)  

   {     if (a[j] < a[i] && b[j] + 1 > b[i])  

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

    } }

for(i=n;i>0;i--)

  {c[i]=1;

   for(j=i+1;j<n;j++)

    {if(a[i]>a[j]&&c[j]+1>c[i])

      c[i]=c[j]+1;}}

max = b[1] + c[1]; 

for (i = 2; i <= n; i++)

{ if (b[i] + c[i] > max)   max = b[i] + c[i];  } 

printf("%d\n", n - max + 1);

return 0; }

#1 nsfxdyj@2015-07-07 15:11:06
回复 删除
我决定刷新你的时间记录
查看更多回复
提交回复