Metal Steak

Hard to eat

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

公告

aaaaaaaaaaaa

常用链接

留言簿(1)

我参与的团队

搜索

  •  

最新评论

#include <iostream>
using namespace std;

int
n, m, t, f[
21], g[21];

void
__read__()
{
    cin 
>> n >> t >> m;
}

void
__init__()
{

    
forint i = 0; i <= n; i++ )           //初始化很重要!
        g[i] =  f[i] = 9999999;
    f[
0= 0;
}

void
__dp__()
{
    
forint i = 1; i <= n; i++ )
    {
        
int l;
        cin 
>> l;
        
if( l > t )                                //题目说了不会出现这种情况,可是还是出现了
            continue;                          //因为这个WA了不下5次,。。
        forint j = i; j > 0; j-- )
            
if( g[j - 1+ l > t )
            {
                
if( f[j - 1+ 1 < f[j] )
                {
                    f[j] 
= f[j - 1+ 1;
                    g[j] 
= l;
                }
                
if( f[j - 1+ 1 == f[j] )
                    
if( g[j] > l )
                        g[j] 
= l;
            }
            
else
            {
                
if( f[j - 1< f[j] )
                {
                    f[j] 
= f[j - 1];
                    g[j] 
= g[j - 1+ l;
                }
                
if( f[j - 1== f[j] )
                    
if( g[j] > g[j - 1+ l )
                        g[j] 
= g[j - 1+ l;
            }
    }
}

void
__outp__()
{
    
forint i = n; i >= 0; i-- )                    //因为这个没带等号WA了1,2次。。汗。。
        if( f[i] <= m )
        {
            cout 
<< i << endl;
            
return;
        }
}

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

    
return 0;
}

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

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