HDU1160】的更多相关文章

hdu1160 题意:给出很多老鼠的数据,分别是它们的体重和跑速,为了证明老鼠越重跑得越慢,要找一组数据,由若干个老鼠组成,保证老鼠的体重依次增加而跑速依次减小,问这组数据最多能有多少老鼠,并按体重从小到大输出这些老鼠的顺序. 并不是难题,我觉得有点类似穷国富国或者是堆砖块,我的做法就是首先将这些老鼠按体重从大到小排序(为什么从大到小呢,因为我是用结构体模拟指针记录了上一只老鼠的序号,所以最终会倒序输出,排序的时候就按倒序排序了) 昂,介绍下我的结构体,是记录了 w(weight),s(spee…
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1160 题意:两个子序列 一个是升序,一个是降序,求最长的子序列是多长,并输出路径.(答案不唯一) 思路都是一样的,不断的更新当前值,优化之前的值,只不过还要记录一下路径. 代码:(注释应该就可以看得懂了)//这注释,我给自己满分.. #include<iostream> #include<cstdio> #include<algorithm> #include&…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1160 题意:给定一些小猫的属性:体重和速度.然后求某些猫顺序的排列,使得体重上升,速度下降,这样的排列尽量长. 分析:主要将速度按从大到小排序,然后对体重求最长上升子序列即可,这里因为要记录路径,所以只能O(n^2)求解. #include <cstdio> #include <cstring> #include <cmath> #include <iostream&…
主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1160 题意:求体重下降.速度添加的样例最多有多少个 依据体重降序排一下,然后求速度的最长上升子序列 ,经典的LIS问题,记录一下路径 代码例如以下: #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const in…
本题大意:给定一定数量的数对,每个数保存着一只老鼠的质量和速度,让你求出一个最长序列,这个序列按照质量严格递增,速度严格递减排列,让你输出这个序列的最长长度,并且输出组成这个最长长度的序列的对应的老鼠的编号... 本题思路:看到最长序列,可以想到是LIS的变形,然后需要打印路径,那我们只需要回溯思想数组保存即可.很基础的一道题目......记得找到最后的那只老鼠... 参考代码: #include <iostream> #include <cstring> #include <…
FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 15801    Accepted Submission(s): 6969Special Judge Problem Description FatMouse believes that the fatter a mouse is, the faster i…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1160 学的东西还是不深入啊,明明会最长上升子序列,可是还是没有A出这题,反而做的一点思路没有,题意就不多说了,真是怀疑了为什么做这题的时候竟然想用nlog(n)的那个算法, 根本不可能有解啊,真想抽自己一下,最后无奈看了题解,发现他们写的非常棒,记录路径仅用一个数组就可以实现,可惜我没有想到啊,还是做题不深入啊. 首先需要排一下序. 代码如下: #include <iostream> #include…
题意是仅仅求一次的顺序.先依照速度从大到小排序,速度想等到按体重增序排列. 然后基本就变成了求已定顺序序列的最长递增序列递增,跟那个求一致最大序列和的基本一致. dp[i]里存储的是到当前i最大的递增序列个数最大的数. dp[i+1]就是在a[i+1]大于前面的a[j]的情况下,dp[i+1]=dp[j]+1; 输出的就是从最大的dp[]值从后往前输出,所以用了个栈改成从前往后. 以为题意仅仅输出一个正确序列就好. 思路是从開始的结构体排序.打一打就想出来的.bug,调了一天.确定dp[]最大值…
/* 简单dp,要记录顺序 解:先排序,然后是一个最长下降子序列 ,中间需记录顺序 dp[i]=Max(dp[i],dp[j]+1); */ #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 1100 /*w,s代表重量和速度,index记录原来输入时的顺序下标,pre指向排序后的上一个下标,answer记录排序后每一个位置的最优值*/ typedef struct node { int…
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1160 FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 17386    Accepted Submission(s): 7694Special Judge Problem Description…