HDU 1160 FatMouse's Speed(最长递减子序列变形)
来源:互联网 发布:软件功能和技术特点 编辑:程序博客网 时间:2024/06/11 22:52
题目地址:点击打开链接
题意:给一堆老鼠,求一个最大的子集,子集的特点是从开头到结尾重量严格递增,速度严格递减
思路:先给所有老鼠按重量递增排个序,然后对速度求最长递减子序列
AC代码:
#include <iostream>#include <cstring>#include <cstdio>#include <cstdlib>#include <algorithm>using namespace std;int dp[1001],pre[1001];struct mouse{ int weight,speed,num;}mou[1001];int cmp(const void *_a,const void *_b){ mouse *a = (mouse*)_a; mouse *b = (mouse*)_b; if(a->weight != b->weight) return a->weight - b->weight; return b->speed - a->speed;}void output(int i){ if(i == 0) return; output(pre[i]); printf("%d\n",mou[i].num);}int main(){ int i,j,n = 1,max = 0,l; while(scanf("%d%d",&mou[n].weight,&mou[n].speed) != EOF) { mou[n].num = n; n++; } memset(dp,0,sizeof(dp)); memset(pre,0,sizeof(pre)); qsort(mou+1,n-1,sizeof(mouse),cmp); dp[1] = 1; for(i=2; i<=n; i++) { for(j=1; j<i; j++) { if(mou[i].weight > mou[j].weight && mou[i].speed < mou[j].speed && dp[i] < dp[j])//要严格递增,所以要再比较一次 { dp[i] = dp[j]; pre[i] = j; } } dp[i]++; } for(i=1; i<=n; i++) { if(dp[i] > max) { l = i; max = dp[i]; } } printf("%d\n",max); output(l); return 0;}
0 0
- HDU 1160 FatMouse's Speed(最长递减子序列变形)
- HDU 1160 FatMouse's Speed(严格最长递减序列变形+输出)【输出路径模板】
- hdu 1160 FatMouse's Speed(最长递减子序列+输出路径)
- hdu 1160 FatMouse's Speed(最长递减子序列 (加强版) )
- hdu 1160 FatMouse's Speed (最长单调递减子序列+纪录路径)
- HDU 1160 FatMouse's Speed (动规+最长递减子序列)
- hdu 1160 FatMouse's Speed( 最长下降子序列 )
- HDU 1160 FatMouse's Speed (dp, 最长子序列)
- hdu 1160 排序+下降子序列变形 FatMouse's Speed
- hdu-1160 FatMouse's Speed 【最长上升子序列】
- HDU 1160 FatMouse's Speed 最长上升子序列
- HDU 1160 FatMouse's Speed(求最长递减序列+记录路径)
- hdu 1160 FatMouse's Speed (dp---最长有序子序列)
- HDU 1160 FatMouse's Speed (最长有序的上升子序列)
- HDU 1160 FatMouse's Speed(最长上升子序列长度及其路径)
- J - FatMouse's Speed HDU 1160 (动态规划,最长上升子序列+路径输出)
- hdu 1160 FatMouse's Speed (最长上升子序列 + 记录路径)
- HDU NO.1160 FatMouse's Speed(“最长上升子序列”,记录路径)
- Java回调机制解析
- UVA 11748 Rigging Elections
- 蓝懿ios 技术内容和心得交流分享 11.8
- Python编写微信打飞机小游戏(二)
- c 中分号的应用详解 以及 什么时候该用{} 以及shell脚本中的分号
- HDU 1160 FatMouse's Speed(最长递减子序列变形)
- bzoj1626【Usaco2007 Dec】Building Roads 修建道路
- JSP,js,servlet之间传值时中文乱码的处理
- 用Go实现的简易TCP通信框架
- 用Eclipse进行C++开发时Bianry not found的问题解决
- 黑马程序员——面对对象———继承、多态、内部类等
- bzoj1627【Usaco2007 Dec】穿越泥池
- Android Studio中AVD SDk找不到的解决办法
- 大水题--CodeForces - 591A Wizards' Duel