FatMouse's Speed
J - FatMouse's Speed
DP的题写得多了慢慢也有了思路,虽然也还只是很简单的DP。因为需要输出所有选择的老鼠,所以刚开始的时候想利用状态压缩来储存所选择的老鼠,后面才发现
n太大1<<1000根本存不下来...思路的话其实也不难,把体重排序之后,对速度求一个最长下降子序列即可。
对于每一次求最长有序子序列,只需要全部遍历一遍,遍历的时候,将该位置作为所选择序列的最后一个元素,
DP[i]即为该序列的最大长度。
代码:
// Created by CAD on 2019/10/29.
#include <bits/stdc++.h>
using namespace std;
struct state{
int pre=-1;
int cnt=1;
}dp[1005];
struct mouse{
int speed,weight;
int id;
bool operator<(mouse &m)
{
if(weight!=m.weight)
return weight<m.weight;
else return speed>m.speed;
}
}m[1005];
void print(int n)
{
if(n==-1) return ;
print(dp[n].pre);
cout<<m[n].id<<endl;
}
int main()
{
// FOPEN;
ios::sync_with_stdio(false);
cin.tie(0);
int n=0,ans=0;
while(cin >> m[n].weight >> m[n].speed)
{
m[n].id=n+1;
n++;
}
sort(m, m+n);
for(int i=0; i<n; i++)
{
for(int k=0; k<i; ++k)
{
if(m[k].weight<m[i].weight && m[k].speed>m[i].speed&&dp[k].cnt+1>dp[i].cnt)
dp[i].cnt=dp[k].cnt+1, dp[i].pre=k;
}
if(dp[ans].cnt<dp[i].cnt)
ans=i;
}
cout<<dp[ans].cnt<<endl;
print(ans);
return 0;
}
FatMouse's Speed的更多相关文章
- FatMouse's Speed——J
J. FatMouse's Speed FatMouse believes that the fatter a mouse is, the faster it runs. To disprove th ...
- HDU 1160 FatMouse's Speed(要记录路径的二维LIS)
FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDU 1160 FatMouse's Speed (DP)
FatMouse's Speed Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Su ...
- FatMouse's Speed(HDU LIS)
FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- FatMouse's Speed 基础DP
FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- zoj 1108 FatMouse's Speed 基础dp
FatMouse's Speed Time Limit: 2 Seconds Memory Limit:65536 KB Special Judge FatMouse believe ...
- J - FatMouse's Speed
p的思路不一定要到最后去找到ans:也可以设置成在中间找到ans:比如J - FatMouse's Speed 这个题,如果要是让dp[n]成为最终答案的话,即到了i,最差的情况也是dp[i-1],就 ...
- HDU 1160:FatMouse's Speed(LIS+记录路径)
FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- (最长上升子序列 并记录过程)FatMouse's Speed -- hdu -- 1160
http://acm.hdu.edu.cn/showproblem.php?pid=1160 FatMouse's Speed Time Limit: 2000/1000 MS (Java/Other ...
- zoj 1108 FatMouse's Speed 基础dp
FatMouse's Speed Time Limit: 2 Seconds Memory Limit:65536 KB Special Judge FatMouse believe ...
随机推荐
- Asp.net core 学习笔记 QR code and Barcode
QR code 和 Barcode 经常会使用到. Java 阵营有著名的 zxing https://github.com/zxing/zxing .Net 有对接它的 port https://g ...
- 题解 P3369 【【模板】普通平衡树(Treap/SBT)】
STL真是个好东西. 最近在看pb_ds库及vector和set的用法,就想用这三种操作来实现一下普通平衡树,结果pb_ds中的rbtree不支持重复值,而本蒟蒻也看不懂不懂各大佬用pb_ds的实现, ...
- 【php设计模式】桥接模式
定义: 将抽象与实现分离,使它们可以独立变化.它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度. 角色: 抽象化(Abstraction)角色:定义抽象类,并包含一个对实现 ...
- 小程序 wxs时间戳转字符串
function formatDate(value) { //不能使用 new Date() var time = getDate(value); var year = time.getFullYea ...
- react 预览pdf 转换
function getReader(response){ return new Promise(function(resolve,reject){ response.blob().then( blo ...
- go爬虫之爬取豆瓣电影
go爬取豆瓣电影 好久没使用go语言做个项目了,上午闲来无事花了点时间使用golang来爬取豆瓣top电影,这里我没有用colly框架而是自己设计简单流程.mark一下 思路 定义两个channel, ...
- java——java跨平台原理
不同操作系统不同的虚拟机,屏蔽不同系统指令集的差异. 开发程序只需要遵循java规范:
- linux——在windows上搭建linux练习环境
程序员自己研究——java-linux-php——环境搭建 需要首选准备一个linux环境. 1,可用安装一个虚拟机:VMware虚拟机 2,安装一个VMware大约5分钟左右. 3,截止目前2019 ...
- CSS 中用户自定义字体 @font-face
@font-face 允许网页中使用自定义的字体,这些自定义的字体被放置在服务器上,从而让网页摆脱对访问者计算机上字体环境的依赖. 简单的说,有了@font-face,只需将字体上传到服务器端,无论访 ...
- wiki页面文本挖掘
import os,sysimport sysfrom bs4 import BeautifulSoupimport urllib.request# reload(sys)# sys.setdefau ...