`
java-mans
  • 浏览: 11443223 次
文章分类
社区版块
存档分类
最新评论

hdu_1160 感觉就是模拟题

 
阅读更多

程序还是要多写啊。。。debug了好久才ac,唉~

#include<iostream>
#include<vector>
#include<algorithm>
#include<stack>
using namespace std;
const int maxn=12;
struct pp
{
    int w,s;
    int num;
    int back;
    bool operator < (const pp &cmp) const
    {
        if(w != cmp.w)
        {
            return w < cmp.w;
        }
        else
        {
            return s < cmp.s;    
        }
    }   
    bool operator == (const pp &cmp) const 
    {
        if(w == cmp.w && s == cmp.s)
        {
            return true;
        }  
        else
        {
            return false;
        }
    }
}px;
vector<pp>v,vp;
stack<int>s;
int x,y,temp,t2,tmax;
int dp[1<<maxn];
int tmaxn=1;
int ti=1;
int main()
{
    v.clear();
    vp.clear();
    memset(dp,0,sizeof(dp));
    while(scanf("%d%d",&x,&y)!=EOF)
    {
        px.w=x; 
        px.s=y;
        px.num=ti++;
        vp.push_back(px);
    }    
    sort(vp.begin(),vp.end());
    v.push_back(vp[0]);
    for(int i=1;i<vp.size();i++)
    {
        if(vp[i] == v.back())
        {
            continue;
        }               
        else
        {
            v.push_back(vp[i]);
        }
    }
    dp[0]=1;
    v[0].back=-1;
    tmax=0;
    for(int i=1;i<v.size();i++)
    {
        temp=-1;
        t2=0;
        for(int j=i-1;j>=0;j--)
        {       
            if(v[i].s<v[j].s)
            {
                if(dp[j]>t2)
                {
                    temp=j;
                    t2=dp[j];
                }
            }
        }       
        if(temp==-1)
        {
            dp[i]=1;
            v[i].back=-1;
        }
        else
        {
            dp[i]=t2+1;
            v[i].back=temp;
            if(dp[i]>dp[tmax])
            {
                tmax=i;
            }
        }
    }
    cout<<dp[tmax]<<endl;
    s.push(tmax);
    while(v[s.top()].back!=-1)
    {
        s.push(v[s.top()].back);
    }
    while(!s.empty())
    {
        cout<<v[s.top()].num<<endl;
        s.pop();
    }
    return 0;
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics