zoj1108&&hdu1160 FatMouses's speed(dp)
来源:互联网 发布:如何强身健体知乎 编辑:程序博客网 时间:2024/06/05 12:39
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<stack>#define N 1005using namespace std;typedef struct { int w,s,num;}MICE;MICE mice[N];stack <int > S;int cmp(MICE a,MICE b){ if(a.w!=b.w) return a.w<b.w; else return a.s>b.s;}int ind[N];int main(){ //freopen("test.txt","r",stdin); int i,j; int n=0,len[N]; while(cin>>mice[n].w>>mice[n].s){ mice[n].num=n; n++; } sort(mice,mice+n,cmp); memset(len,0,sizeof(len)); memset(ind,0,sizeof(ind)); len[0]=1; for(i=1;i<n;i++){ int sum=0,temp=0; for(j=0;j<i;j++) if(len[j]>sum&&mice[j].w<mice[i].w&&mice[j].s>mice[i].s) { sum=len[j]; temp=j; } if(sum!=0) ind[i]=temp; else ind[i]=0; sum++; len[i]=sum; } int max1=0;int tempi; for(i=0;i<n;i++){ if(len[i]>max1) max1=len[tempi=i]; } cout<<max1<<endl; i=tempi; while(ind[i]!=0){ S.push(mice[i].num+1); i=ind[i]; } S.push(mice[i].num+1); while(!S.empty()){ cout<<S.top()<<endl; S.pop(); } return 0;}
阅读全文
0 0
- zoj1108&&hdu1160 FatMouses's speed(dp)
- ZOJ1108 FatMouse's Speed
- hdu1160 FatMouse's Speed--DP&记录路径
- HDU1160--FatMouse's Speed
- HDU1160 FatMouse's Speed
- HDU1160 FatMouse's Speed
- hdu1160,FatMouse's Speed
- HDU1160--FatMouse's Speed
- hdu1160 FatMouse's Speed
- HDU1160 FatMouse's Speed
- hdu1160 FatMouse's Speed
- HDU1160 FatMouse's Speed
- hdu1160 FatMouse's Speed
- [HDU1160]-FatMouse's Speed
- hdu1160 FatMouse's Speed
- HDU1160 FatMouse's Speed(DP,最长下降子序列)
- HDU1160——FatMouse's Speed(DP入门)
- hdu1160 - FatMouse's Speed (dp 最长有序子序列问题)
- 26. Remove Duplicates from Sorted Array
- idea玩转“码云”(二、项目上传码云)
- Android 开发的未来语言 Kotlin 及学习资源
- c++实验五
- 跳房子散列
- zoj1108&&hdu1160 FatMouses's speed(dp)
- JFinal 执行 Main 方法
- 第2章 数据绑定
- C++作业6
- C++作业6
- Druid架构说明
- git使用笔记
- secache 官方介绍
- 自定义View技巧