HDOJ_1160:FatMouse's Speed 解题报告
2012-02-25 10:09
344 查看
先对输入的数据按重量作第一关键字、速度作第二关键字进行排序,注意实际排序函数中是先处理第二关键字。本题从前向后递推就好,不必反序。ppt里面有个描述个人觉得有一定误导性,“设f[i]为Mice[i]至Mice
最长的序列长度。” 我看来,f[i]是从Mice[1]开始、以Mice[i]为结尾时,最长的满足单调条件的序列长度。
if( m[j].w!=m[i].w && m[j].s>m[i].s && m[j].length+1>m[i].length)
m[i].length = m[j].length+1; //此为递推关系
最长的序列长度。” 我看来,f[i]是从Mice[1]开始、以Mice[i]为结尾时,最长的满足单调条件的序列长度。
if( m[j].w!=m[i].w && m[j].s>m[i].s && m[j].length+1>m[i].length)
m[i].length = m[j].length+1; //此为递推关系
// HDOJ_1160.cpp : FatMouse's Speed #include <iostream> #include <algorithm> using namespace std; struct MICE { int w,s; int length,index; int pre; }; bool cmp( MICE x, MICE y ) { if( x.w==y.w ) return x.s > y.s; else return x.w < y.w; } int main() { MICE m[1001]; int i=1, j, maxLength=1, maxIndex=1; while( cin >> m[i].w >> m[i].s ) { m[i].index = i; m[i].length = 1; m[i].pre = 0; i++; } //cout<<i<<endl; int n = i-1; //记录老鼠数量 sort(m,m+n,cmp); for( i=2; i<=n; i++ ) for( j=1; j<i; j++ ) if( m[j].w!=m[i].w && m[j].s>m[i].s && m[j].length+1>m[i].length){ m[i].length = m[j].length+1; m[i].pre = j; } for( i=2; i<=n; i++ ) if( maxLength<m[i].length ){ maxLength = m[i].length; maxIndex = i; } cout << maxLength << endl; int *maxPath = new int[maxLength]; maxPath[maxLength] = maxIndex; for( i=maxLength-1; i>0; i-- ){ maxPath[i] = m[maxPath[i+1]].pre; if( maxPath[i]==0 ) maxPath[i] = maxPath[i+1]; } for( i=1; i<=maxLength; i++ ) cout << m[maxPath[i]].index << endl; return 0; }
相关文章推荐
- HDOJ-1160-FatMouse's Speed 解题报告
- HDOJ1160 Fat Mouse's Speed
- YT05-动态归划求解课后题目-1001—FatMouse's Speed-(6.21日-烟台大学ACM预备队解题报告)
- HDOJ 1160 FatMouse's Speed (子序列 - 动态规划)
- hdoj1160 FatMouse's Speed ( STL + 最长下降子序列 /DP)
- hdoj1160_FatMouse's Speed(dp)
- 【hdoj 1160】FatMouse's Speed
- HDU 1160 FatMouse's Speed(dp)
- HDU1160——FatMouse's Speed(DP入门)
- hdu 1160 FatMouse's Speed 贪心
- HDU - 1160 FatMouse's Speed(DAG)
- hdu 1160 FatMouse's Speed 题解(简单dp)
- HDU 1160 FatMouse's Speed 最优方案
- HDU 1160 FatMouse's Speed (最长有序的上升子序列)
- hdu 1160 FatMouse's Speed 简单dp 题解
- HDU 1160 FatMouse's Speed(DP)
- 杭电ACM1160——FatMouse's Speed
- Hdu 1160 FatMouse's Speed (LIS路径输出)
- 【HDU】 1160 FatMouse's Speed (DP)
- HDU 1160 FatMouse's Speed 动态规划