HDOJ 1160 FatMouse's Speed 解题报告
2013-02-04 16:21
381 查看
动态规划,最长上升子序列。看代码吧,可能更容易懂。
一开始笔者也是不会做的,网上看了大牛的代码。。。然后自己试着去理解,再自己写的代码。嗯,貌似比看书强。做了数塔,Max Sum,还有这题,对于动态规划还是一知半解,还得继续努力啊^_^
#include <iostream> #include <algorithm> using namespace std; struct State { int id; int weight; int speed; int pre; int num; }; bool cmp(const State &a, const State &b) { if(a.weight!=b.weight) return a.weight<b.weight; else return a.speed>b.speed; } void output(int x, State a[]) { if(a[x].num!=1) output(a[x].pre, a); cout<<a[x].id<<endl; } int main() { State mouse[1001]; int i,j,max=0,n=0; while(cin>>mouse .weight>>mouse .speed) { mouse .num=1; mouse .id=n+1; mouse .pre=0; n++; } sort(mouse,mouse+n,cmp); for(i=1;i<n;i++) for(j=0;j<i;j++) if((mouse[i].num<mouse[j].num+1) && (mouse[i].weight>mouse[j].weight) && (mouse[i].speed<mouse[j].speed)) { mouse[i].num=mouse[j].num+1; mouse[i].pre=j; if(mouse[i].num>=mouse[max].num) max=i; } cout<<mouse[max].num<<endl; output(max,mouse); }
一开始笔者也是不会做的,网上看了大牛的代码。。。然后自己试着去理解,再自己写的代码。嗯,貌似比看书强。做了数塔,Max Sum,还有这题,对于动态规划还是一知半解,还得继续努力啊^_^
相关文章推荐
- HDOJ_1160:FatMouse's Speed 解题报告
- HDOJ-1160-FatMouse's Speed 解题报告
- hdoj1160 FatMouse's Speed 动态规划
- HDOJ 1160 FatMouse's Speed
- HDOJ1160 FatMouse's Speed[dp](最长上升子序列)
- 杭电HDOJ 1160 解题报告
- [HDOJ1160]FatMouse's Speed(DP)
- 解题报告-HDOJ-1075(字典树)
- hdoj-2099-整除的尾数(解题报告)
- HDOJ 1020解题报告
- ACM-HDoj暑假竞赛(7)-1009解题报告(
- hdoj 2050 折线分割平面解题报告(简单递推)
- hdoj 2032杨辉三角 解题报告
- HDOJ 1171 Big Event in HDU解题报告
- 杭电HDOJ 1159 解题报告
- 解题报告-HDOJ-2063(最大二分匹配-匈牙利算法)
- HDOJ-2795-Billboard 解题报告
- HDOJ 4008-Parent and son解题报告
- 解题报告-HDOJ-1385(最短路径——Floyd)
- ACM--HDOJ2503解题报告