UVA437
来源:互联网 发布:lol美服账号购买 淘宝 编辑:程序博客网 时间:2024/05/16 23:58
题目如下:
https://vjudge.net/problem/UVA-437
利用最长上升子序列的思想便可以解这道题
#include <iostream>#include <algorithm>#include <cstring>#include <climits>using namespace std; struct node{int x;int y;int z;}; bool cmp(node a,node b) { return a.x*b.y<b.x*b.y; } const int maxn=200;int dp[maxn]; int main(){//freopen("data.in.txt","r",stdin);int n,ncase=0;while(cin>>n&&n){node inf[maxn];int a,b,c;int num=0;for(int i=0;i<n;i++){cin>>a;cin>>b;cin>>c;inf[num].x=a,inf[num].y=b,inf[num++].z=c;inf[num].x=a,inf[num].y=c,inf[num++].z=b;inf[num].x=b,inf[num].y=a,inf[num++].z=c;inf[num].x=b,inf[num].y=c,inf[num++].z=a;inf[num].x=c,inf[num].y=b,inf[num++].z=a;inf[num].x=c,inf[num].y=a,inf[num++].z=b;}sort(inf,inf+num,cmp);memset(dp,0,sizeof(dp));int res=INT_MIN;for(int i=0;i<num;i++)dp[i]=inf[i].z;for(int i=0;i<num;i++){for(int j=0;j<i;j++){if(inf[i].x>inf[j].x&&inf[i].y>inf[j].y)dp[i]=max(dp[i],dp[j]+inf[i].z);}if(res<dp[i])res=dp[i];}cout<<"Case "<<++ncase<<": maximum height = "<<res<<endl;}return 0;}
阅读全文
0 0
- uva437
- UVa437
- uva437
- uva437
- UVA437
- UVA437
- UVa437
- uva437
- UVA437(DP)
- uva437 DAG
- [DP] UVA437
- uva437(经典DAG题目)
- uva437 动态规划
- UVa1025/UVa437/UVa1347
- uva437 巴比伦塔
- uva437 DAG最长路
- UVA437- - The Tower of Babylon
- UVa437 The Tower of Babylon
- Linux设备模型(1)_基本概念
- 学习springmvc的第十八天(springmvc处理流程)
- 编写可以在Qt4、Qt5中同时执行的代码
- POI 海量数据/大数据文件生成SXSSFWorkbook使用简介
- org. apache.cxf /WebService在项目中的使用
- UVA437
- Android项目方法数超过64k问题(项目总方法数超过65535)
- HDU 1022 Train Problem I
- Super Jumping! Jumping! Jumping!(dp)【HDU】-1087
- postman工具的应用实战(二)
- git练习
- Spring支持的AspectJ注解式切面编程
- Linux驱动基础开发 Linux 驱动开发前奏(模块编程)
- M