HDU1160-LIS&路径记录-J
来源:互联网 发布:工业机器人网络培训 编辑:程序博客网 时间:2024/06/17 01:52
https://vjudge.net/contest/170788#problem/J
给定一组老鼠的重量和速度,要求找到最大的一组。
重量上升,速度却在下降。
我的思路,先给速度降序,在重量建立一个数组,求LIS。并且记录路径。
记录路径我直接用的链表,,事实证明这样有点麻烦
qwq
#include<bits/stdc++.h>using namespace std;const int maxn=2000;vector<pair<pair<int,int>,int> >v;bool cmp2(pair<pair<int,int>,int>a,pair<pair<int,int>,int>b){ return a.first.second>b.first.second;}struct Node{ int num; int bh;}a[maxn];int main(){ v.clear(); int a1,b; int t=1; while(~scanf("%d%d",&a1,&b)){ v.push_back(make_pair(make_pair(a1,b),t++)); } sort(v.begin(),v.end(),cmp2); t=0; for(int i=0;i<v.size();i++){ a[t].num=v[i].first.first; a[t++].bh=v[i].second; } vector<int>q; /*for(int i=0;i<t;i++){ int u=lower_bound(q.begin(),q.end(),a[i].num)-q.begin(); if(u==q.size()){ q.push_back(a[i].num); bb.push_back(a[i].bh); } else{ q[u]=a[i].num; bb[u]=a[i].bh; } 这样可以得到准确的长度,但是无法得到准确的序列。 比方说 8 9 10 1 11,那么得到的就是 1 9 10 11,是不对的。 }*/ list<int>bb[maxn]; list<int>ans; int dp[maxn]; for(int i=0;i<t;i++) {dp[i]=1; bb[i].push_back(a[i].bh); } int max1=-1; int max2=0; for(int i=0;i<t;i++){ ans.clear(); for(int j=0;j<i;j++){ if(a[i].num>a[j].num){ if(dp[i]<(dp[j]+1)) {dp[i]=dp[j]+1;//增加一个 ans.clear(); list<int>::iterator it; for(it=bb[j].begin();it!=bb[j].end();it++) ans.push_back(*it); } } } list<int>::iterator it; if(!ans.empty()) for(it=ans.begin();it!=ans.end();it++) bb[i].push_back(*it); if(max1<dp[i]){ max1=dp[i]; max2=i; } } list<int>::iterator i; int nc[maxn]; int sum=0; cout<<bb[max2].size()<<endl; for(i=bb[max2].begin();i!=bb[max2].end();i++) nc[sum++]=*i; reverse(nc,nc+sum); for(int i=0;i<sum;i++) printf("%d\n",nc[i]); return 0;}
阅读全文
0 0
- HDU1160-LIS&路径记录-J
- hdu1160(记录路径)
- hdu1160 dp+路径记录
- HDU1160 FatMouse's Speed LIS变种+路径
- HDU1160(LIS)
- hdu1160 LIS
- hdu1160 FatMouse's Speed--DP&记录路径
- hdu1160 FatMouse's Speed (dp,记录路径)
- HDU1160 FatMouse's Speed(DP+路径记录)
- uva 10599- Robots(II) LIS记录路径
- DP LIS 记录路径 hdu 1160
- UVA - 10599(求LIS,记录路径数)
- hdu1160 FatMouse's Speed(LIS普通法)
- hdu1160(dp的lis模型)
- hdu1160 FatMouse's Speed 最长上升子序列以及记录路径 DP
- hdu1160
- hdu1160
- HDU 1160 FatMouse's Speed(LIS+记录路径)
- Sorting In All Out
- Junit
- 字典树
- 句子相似度计算的几种方法
- view 的拖拽移动,旋转缩放
- HDU1160-LIS&路径记录-J
- 【PAT】【Advanced Level】1059. Prime Factors (25)
- 设计模式学习笔记八:建造者模式(Builder Pattern)
- RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,资料汇总
- 【NOIP2017模拟A组模拟8.5】带权排序
- 暴力求解法_隐式图搜索(八数码问题)
- Qt控件样式 Style Sheet Demo
- java创建线程的三种方式及其对比
- Java集合---Map