hdu 1068 最大子序列和变形,,,
2024-10-06 18:17:17
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 200
using namespace std;
struct node
{
int x,y,z;
};
int cmp(node a,node b)
{
if(a.x==b.x) return a.y<b.y;
return a.x<b.x;
}
int mymax(int x,int y)
{
if(x>y) return x;
return y;
}
int main()
{
int n;
int Case=;
while(cin>>n&&n)
{
node fuck[maxn];
int dp[maxn];
memset(dp,,sizeof(dp));
int ret=;
while(n--)
{
int x,y,z;
cin>>x>>y>>z;
fuck[ret].x=x,fuck[ret].y=y,fuck[ret++].z=z;
fuck[ret].x=x,fuck[ret].y=z,fuck[ret++].z=y;
fuck[ret].x=y,fuck[ret].y=x,fuck[ret++].z=z;
fuck[ret].x=y,fuck[ret].y=z,fuck[ret++].z=x;
fuck[ret].x=z,fuck[ret].y=x,fuck[ret++].z=y;
fuck[ret].x=z,fuck[ret].y=y,fuck[ret++].z=x;
}
sort(fuck,fuck+ret,cmp);
dp[]=fuck[].z;
for(int i=;i<ret;i++)
{
dp[i]=fuck[i].z;
for(int j=;j<i;j++)
{
if(fuck[j].x<fuck[i].x&&fuck[j].y<fuck[i].y)
{
dp[i]=mymax(dp[i],dp[j]+fuck[i].z);
}
}
}
//这里的dp只是算出了每个i对应的值 并没有算出最大的
int zz=dp[];
for(int i=;i<ret;i++) if(zz<dp[i]) zz=dp[i];
printf("Case %d: maximum height = %d\n",++Case,zz);
}
return;
}
最新文章
- JS倒计时执行操作
- this的使用
- 原生javascript效果:无缝滚动
- 基于xmpp openfire smack开发之smack类库介绍和使用[2]
- 基于java callable及future接口解决生产者消费者问题
- cf D. Alternating Current
- 移动端 常见布局CSS3的细节
- osx launchpad删除图标
- [翻译]初识SQL Server 2005 Reporting Services Part 4
- border-radius IE8兼容处理
- 博客迁移至 http://www.loveli.site
- SDK提交到CocoaPods
- Flask插件wtforms、Flask文件上传和Echarts柱状图
- Queue 队列的使用
- 转载一篇阿里云Terraform 开发指南
- Python——Sublime Text3编写Python的一些问题
- ARM-ili9325屏调试1--时序
- JavaScript对象复制(一)(转载)
- Java反射之如何判断类或变量、方法的修饰符(Modifier解析)
- ASCII对照表
热门文章
- k8s Ipvs 内部网络自动分配和内部网络一致ip地址,导致ip冲突
- SQL-W3School-基础:SQL DISTINCT 语句
- Python3中_和__的用途和区别
- Bootstarp学习
- MySQL表的创建与维护
- ubuntu安装以及卸载软件
- ASP.NET 拼多多用户登录授权后使用code去换取access_token
- 《精通并发与Netty》学习笔记(14 - 解决TCP粘包拆包(二)Netty自定义协议解决粘包拆包)
- redis-5.0.3 redis.conf详解
- CRLF——http response 拆分攻击(webgoat)