hdu--1160--LIS+打印路径
2014-07-18 16:24
162 查看
这题做完 就去吃饭了...
快1年了 没有正常的饮食....
这题 数据蛮小的 1000可以用O(n^2)水过 而且只花了0ms
一般来说 打印路径是正序输出 而我们记录的时候都是 逆序记录的 所以 借用下stack特别好用
touch me
View Code
快1年了 没有正常的饮食....
这题 数据蛮小的 1000可以用O(n^2)水过 而且只花了0ms
一般来说 打印路径是正序输出 而我们记录的时候都是 逆序记录的 所以 借用下stack特别好用
touch me
#include <iostream> #include <algorithm> #include <stack> using namespace std; const int size = 1010; struct data { int id; int w; int speed; }mice[size]; int road[size]; int len[size]; stack< int >s; bool cmp( data p , data q ) { if( p.w == q.w ) return p.speed>q.speed; return p.w<q.w; } bool judge( data& p , data& q ) { if( q.w>p.w && q.speed<p.speed ) return true; return false; } int main() { cin.sync_with_stdio(false); int ans , pos , cnt; cnt = pos = 1; ans = 0; while( cin >> mice[cnt].w >> mice[cnt].speed ) { mice[cnt].id = cnt; len[cnt] = 1; road[cnt] = -1; cnt++; } sort( mice+1 , mice+cnt+1 , cmp ); while( !s.empty() ) s.pop(); for( int i = 1 ; i<cnt ; i++ ) { for( int j = i+1 ; j<=cnt ; j++ ) { if( judge( mice[i] , mice[j] ) ) { if( len[j] < len[i]+1 ) { len[j] = len[i]+1; road[j] = i; } if( len[j] > ans ) { ans = len[j]; pos = j; } } } } cout << ans << endl; for( int i = pos ; ; i=road[i] ) { s.push( mice[i].id ); if( road[i] == -1 ) break; } while( !s.empty() ) { cout << s.top() << endl; s.pop(); } return 0; }
View Code
相关文章推荐
- [HDU 1160 ] FatMouse's Speed [LIS 原理+ 路径输出]
- DP LIS 记录路径 hdu 1160
- 【DP|LIS+输出路径】HDU-1160 FatMouse's Speed
- hdu 1160 FatMouse's Speed 【lis+记录路径】
- Hdu 1160 FatMouse's Speed (LIS路径输出)
- HDU1160 - FatMouse's Speed(最长下降子序列+打印路径)
- DP LIS 记录路径 hdu 1160
- HDU 1160 FatMouse's Speed[LIS]
- ZOJ 1076 Gene Assembly(LIS+路径打印 贪心)
- hdu-1104-Remainder(BFS打印路径+数论)(%与mod的区别)
- uva 10131 Is Bigger Smarter?(动态规划:LIS变形+路径打印)
- hdu1160 FatMouse's Speed 最长下降子序列 及其打印
- UVa 103 - Stacking Boxes (LIS,打印路径)
- hdu 1160 FatMouse's Speed(最长递减子序列+输出路径)
- hdu 1385 Minimum Transport Cost(最短路+字典序+打印路径)
- HDU--1026:Ignatius and the Princess I (BFS+优先队列+打印路径)
- HDU 1385 Minimum Transport Cost(Floyd+打印字典序最小路径)
- HDU 1160 FatMouse's Speed (最长上升子序列+记录路径)
- HDU 1385 Minimum Transport Cost(Floyd 最短路 打印路径)
- hdu 1026 Ignatius and the Princess (广度优先搜索+路径打印)