FatMouse's Speed

来源:互联网 发布:要怎么注销淘宝账号 编辑:程序博客网 时间:2024/06/11 23:00

http://acm.hdu.edu.cn/showproblem.php?pid=1160

#include<iostream>

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct Mice
{
int m,v,num;
}mice[1010];
int pre[1010];
int dp[1010],res[1010];
bool cmp(Mice a,Mice b)
{
if(a.m<b.m)
return 1;
else if(a.m==b.m && a.v>b.v)
return 1;
else 
return 0;
}
int main()
{

int i=1,j;
// freopen("C:\\Users\\John\\Desktop\\hi.txt","r",stdin);
while(scanf("%d%d",&mice[i].m,&mice[i].v)!=EOF)
{
dp[i]=1;
pre[i]=0;
mice[i].num=i;
i++;
}
int n=i-1;
sort(mice+1,mice+1+n,cmp);
int maxlen=0;
int maxi;
dp[1]=1;
for(i=1;i<=n;i++)
{
for(j=1;j<i;j++)
if(mice[i].m>mice[j].m && mice[i].v<mice[j].v && dp[j]+1>dp[i])
{
dp[i]=dp[j]+1;
pre[i]=j;
if(dp[i]>maxlen)
{
maxi=i;
maxlen=dp[i];
}
}
}
int t=maxi;
i=0;
while(t!=0)
{
res[i++]=t;
t=pre[t];
}
cout<<i<<endl;;
while(i>0)
{
i--;
cout<<mice[res[i]].num<<endl;
}
return 0;
}
0 0
原创粉丝点击