Metal Steak

Hard to eat

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  0 Posts :: 79 Stories :: 0 Comments :: 0 Trackbacks

公告

aaaaaaaaaaaa

常用链接

留言簿(1)

我参与的团队

搜索

  •  

最新评论

#include <iostream>
using namespace std;

int    s[5001];
int    f[5001];
int    g[5001];
int    vst[65537];
int    n;

void
__read__()
{
    cin 
>> n;
    
forint i = 1; i <= n; i++ )
    {
        cin 
>> s[i];
        f[i] 
= 1;
    }
}

void
__dp__()
{
    s[
0= 999999;
    
forint i = n - 1 ; i >= 0; i-- )        //小心循环方向
        forint j = n; j > i; j-- )
        
if( s[j] < s[i]
         
&& f[j] + 1 > f[i] )
            f[i] 
= f[j] + 1;
}

void
__count__()
{
    
forint i = n; i >= 0; i-- )                       //小心循环方向
        if( f[i] == 1 )
            g[i] 
= 1;
        
else
        {
        memset( vst, 
0sizeof vst );
        
forint j = i + 1; j <= n; j++ )        //小心循环方向
            if( vst[s[j]] == 0
             
&& f[i] == f[j] + 1
             
&& s[j] < s[i] )
            {
                vst[s[j]] 
= 1;
                g[i] 
= g[i] + g[j];
            }
    }
}

void
__outp__()
{
    cout 
<< f[0- 1 << " "
    
<< g[0<< endl;
}

int
main()
{
    __read__();
    __dp__();
    __count__();
    __outp__();

    
return 0;
}

posted on 2009-09-15 20:49 mad4alcohol 阅读(155) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理