HDOJ 1160 FatMouse's Speed 杭电 ACM
2013-07-16 14:19
253 查看
DP原理和1087几乎相同 稍多些其他工作
注意:解不唯一 我的输出和范例不同也AC了
为了方便用SWAP排序 换成C++写 但未ADT化
注意:解不唯一 我的输出和范例不同也AC了
为了方便用SWAP排序 换成C++写 但未ADT化
#include<iostream> using namespace std; int main(){//w=weight v=velocity p=previous a=area 分工明确吧 s先作状态转移方程 后作栈 int i,j,n=0,w[1001],v[1001],s[1001],p[1001],a[1001],m,index=0; for(i=0;i<1001;++i)p[i]=-1; while(cin>>w >>v )a[n++]=n+1; for(i=0;i<n-1;++i) for(j=i+1;j<n;++j) if(w[i]>w[j]) swap(w[i],w[j]),swap(v[i],v[j]),swap(a[i],a[j]); for(m=s[0]=1,i=1;i<n;++i){ for(s[i]=1,j=0;j<i;++j) if(w[j]!=w[i]&&v[j]>v[i]&&s[j]+1>s[i]) s[i]=s[j]+1,p[i]=j;//通过静态链表p来找出解 if(s[i]>m)m=s[i],index=i; } cout<<m<<endl; for(i=0;index>-1;++i)s[i]=a[index],index=p[index];//放入栈中来逆序输出 for(--i;i>-1;--i)cout<<s[i]<<endl; }
相关文章推荐
- HDOJ1160 FatMouse's Speed 弄了一晚上还是WA了,感觉有不止一个解啊
- 动态规划—杭电1160 FatMouse's Speed
- HDOJ 题目1160 FatMouse's Speed(最长上升子序列,输出路径)
- HDOJ 1160 FatMouse's Speed
- HDOJ 1160 FatMouse's Speed(LIS)
- HDOJ 1160 FatMouse's Speed
- HDOJ1160 FatMouse's Speed[dp](最长上升子序列)
- HDOJ 1160 FatMouse's Speed
- 杭电1160-FatMouse's Speed(超详细解释)
- HDU 1160 FatMouse's Speed (最長單調递增子序列 dp)
- hdu 1160 FatMouse's Speed(动态规划)
- ACM HDOJ FatMouse' Trade
- HDU 1160 FatMouse's Speed(DP)
- HDU 1160 FatMouse's Speed(LIS)
- hdu1160--fatmouse.speed
- (DP)FatMouse's Speed --HDOJ
- 动态规划练习二:HDU 1160 FatMouse's Speed
- FatMouse's Speed HDU - 1160 --dp的路径记忆问题
- hdu 1160 FatMouse's Speed (最长上升子序列 + 记录路径)
- hdu 1160 FatMouse's Speed【dp】