HDOJ1160 Fat Mouse's Speed
来源:互联网 发布:图片加白边是什么软件 编辑:程序博客网 时间:2024/06/07 17:45
FatMouse's Speed
http://acm.hdu.edu.cn/showproblem.php?pid=1160
最长递增子序列问题的一个变体,实际上跟最长递增子序列问题没有任何本质的区别。
定义一个结构体mice,设mice[i].w表示第i只老鼠的重量,mice[i].s表示第i只老鼠的速度。对mice结构体进行排序,以w为第一关键字,递增,s为第二关键字,递减。设dp[i]表示以mice[i]为结尾的最长序列的长度。考虑某一个dp[i],则有:
dp[i] = max(dp[i], dp[j]+1) (1<=j<i,且mice[i].w>mice[j].w,mice[i].s < mice[j].s)
其中,初始条件为dp[i]=1 (i=1, 2, ..., n)
排序的过程中需要加一个变量记录其原始的位置,因为最终的输出是原始的排序。
贴上AC代码:
#include<iostream>#include<algorithm>using namespace std;struct mouse{int w;int s;int index;}; mouse mice[1005];int dp[1005];//dp[i]表示以mice[i]为结尾的最长递增子序列 int pre[1005];//pre[i]记录i的上一个数据 int res[1005];//存放最终的结果bool cmp(mouse a,mouse b){if(a.w!=b.w)return a.w<b.w;return a.s>b.s;}int main(){ freopen("1160.in","r",stdin); freopen("1160.out","w",stdout);int i=1,j;while(cin>>mice[i].w>>mice[i].s){dp[i]=1;pre[i]=0;mice[i].index=i;i++;} int n=i-1;sort(mice+1,mice+1+n,cmp);int maxlen=0;//最长序列长度 int end;//最长序列的末尾下标 dp[1]=1;for(i=1;i<=n;i++){for(j=1;j<i;j++){if(mice[i].w>mice[j].w&&mice[i].s<mice[j].s&&dp[j]+1>dp[i]){dp[i]=dp[j]+1;pre[i]=j;if(dp[i]>maxlen){end=i;maxlen=dp[i];}}}}int t=end;i=0;while(t!=0){res[i++]=t;t=pre[t];} cout<<i<<endl;//i指向总数 while(i>0){i--;cout<<mice[res[i]].index<<endl;}return 0;}
1 0
- HDOJ1160 Fat Mouse's Speed
- hdu 1160 fat mouse speed
- hdoj1160 FatMouse's Speed ( STL + 最长下降子序列 /DP)
- HDOJ1160 FatMouse's Speed[dp](最长上升子序列)
- fat mouse
- hdu_p1009 Fat Mouse' Trade
- HDU-Fat Mouse' Trade
- HDOJ1160 FatMouse's Speed 弄了一晚上还是WA了,感觉有不止一个解啊
- HDOJ 1009 FAT MOUSE TRADE
- hdoj1160
- hdoj1160
- hdoj1160
- FatMouse's Speed
- zoj_1108 Fatmouse's Speed
- 【DP】FatMouse's Speed
- FatMouse's Speed(dp)
- FatMouse's Speed
- hdoj_1160FatMouse's Speed
- CS224d lecture 14札记
- 【POJ 1837】 Balance
- Hdu3363 贪心
- poj2442---Sequence
- android jni方法模拟高频按键点击
- HDOJ1160 Fat Mouse's Speed
- POJ 3903 Stock Exchange(LIS)
- 一则简单的Windows共享内存IPC代码
- 如何求C语言字符串长度(strlen函数和sizeof关键字)
- 如果父视图半透明, 如何使子试图不是半透明
- 数据结构-双向链表(学习笔记)
- Elastos获取测试用例列表工具--gtci.py(get testcase info)
- 设计模式之观察者模式
- Linux环境PHP5.5以上连接SqlServer2008【全网最经典无错版】