hdu 1160——FatMouse's Speed
来源:互联网 发布:网络水军合法吗 编辑:程序博客网 时间:2024/06/06 15:45
题意:找出一堆老鼠中,体重逐渐增加,但是速度逐渐下降的最长的数量。
思路:先将老鼠按照体重升序排序,体重一样的将速度降序排序。然后dp就可以了。
代码如下:
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<vector>using namespace std;struct Mise{ int w; int s; int id; bool operator < (const Mise &a) const { if(w==a.w){ return s>a.s; } else { return w<a.w; } }};int dp[1005];int pre[1005];Mise mise[1005];int tot=0;vector<int> rec;bool judge(const Mise &a,const Mise &b){ return a.w<b.w&&a.s>b.s;}int main(){// freopen("data.txt","r",stdin); int a,b; tot=0; memset(pre,-1,sizeof(pre)); while(scanf("%d%d",&a,&b)!=EOF){ mise[tot].w=a; mise[tot].s=b; mise[tot].id=tot+1; tot++; } for(int i=0;i<=tot;++i){ dp[i]=1; } sort(mise,mise+tot); int ans=0; int tail=0; for(int i=0;i<tot;++i){ for(int j=0;j<i;++j){ if(judge(mise[j],mise[i])&&dp[j]+1>dp[i]){ dp[i]=dp[j]+1; pre[i]=j; } } } for(int i=0;i<tot;++i){ if(dp[i]>ans){ ans=dp[i]; tail=i; } } for(;tail!=-1;tail=pre[tail]){ rec.push_back(tail); } reverse(rec.begin(),rec.end()); printf("%d\n",ans); for(vector<int>::iterator it=rec.begin();it!=rec.end();it++){ printf("%d\n",mise[*it].id); } return 0;}
0 0
- hdu 1160——FatMouse's Speed
- hdu(1160)——FatMouse's Speed
- HDU 1160 FatMouse's Speed
- HDU 1160 - FatMouse's Speed
- hdu FatMouse's Speed 1160
- HDU-1160-FatMouse's Speed
- hdu 1160 FatMouse's Speed
- hdu 1160 FatMouse's Speed
- Hdu 1160 FatMouse's Speed
- hdu 1160 FatMouse's Speed
- hdu 1160 FatMouse's Speed
- HDU 1160 FatMouse's Speed
- HDU 1160 FatMouse's Speed
- hdu 1160 FatMouse's Speed
- HDU-1160 FatMouse's Speed
- hdu 1160 FatMouse's Speed
- hdu 1160 FatMouse's Speed
- hdu 1160 FatMouse's Speed
- nyoj 1 1 0 7 最高奖励
- myEclipse/eclipse下控制台"DeviceMonitor]Adb connection Error:远程主机强迫关闭了一个现有的连接。"解决办法
- 查找第一个与最后一个key值位置
- 生命周期管理
- Anagrams问题 ---- 蓝桥杯
- hdu 1160——FatMouse's Speed
- curl — — 获取登入cookie
- git 配置
- 黑马程序员——java基础——path and classpath,int and Integer,Array and Arrays(初学时的疑惑)
- WPF Data Binding之数据的转换和校验【四】
- /bin/mount:无法识别的选项“–no-canonicalize”
- HDU 1108 最小公倍数
- DP经典5题
- uva409 Excuses, Excuses!(字符串处理)