博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zoj Monkey and Banana (子序列)
阅读量:2221 次
发布时间:2019-05-08

本文共 918 字,大约阅读时间需要 3 分钟。

这道题原来小白大哥讲过了(怎么感觉矛盾啊),按照他的思路,是把所有的箱子看成一个矩形,利用嵌套矩形来做,我把结构体中,所存x的值都不小于y的值,再把所有矩形按x的权值排序(降序),然后按照LIS的思想来做就可以了,不过d[i]里的权值不是长度,而是以a[i]为结束点时的总高度。。。

一个箱子可产生三个矩形(不用担心他们是一样的),并且每个矩形最多只会用到一次,所以我就把每个矩形存起来,再以长边排序,然后按照求LIS的思路解题,嗯,就是这了。。

#include
#include
#include
#define STOP system("pause")typedef struct { int x; int y; int z;}NODE;NODE a[200];int max(int a,int b,int c){ int x=a; if(x
b) x=b; if(x>c) x=c; return x;}int mid(int a,int b,int c){ return (a+b+c-max(a,b,c)-min(a,b,c));} int cmp(const void *a,const void *b) { return ((NODE*)a)->x < ((NODE*)b)->x ? 1 : -1; } int main(){ int i,j,n,p,t1,t2,t3,b1,b2,b3,d[200],len,k=1; while(scanf("%d",&n)&&n) { p=0; for(i=0;i
a[i].x&&a[j].y>a[i].y&&(d[j]+a[i].z)>d[i]) d[i]=d[j]+a[i].z; } for(i=len=0;i

 

转载地址:http://rasfb.baihongyu.com/

你可能感兴趣的文章
Java并发指南6:Java内存模型JMM总结
查看>>
Java并发指南7:JUC的核心类AQS详解
查看>>
Java并发指南8:AQS中的公平锁与非公平锁,Condtion
查看>>
Java网络编程和NIO详解6:Linux epoll实现原理详解
查看>>
Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理
查看>>
Java网络编程与NIO详解8:浅析mmap和Direct Buffer
查看>>
Java网络编程与NIO详解10:深度解读Tomcat中的NIO模型
查看>>
Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)
查看>>
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
查看>>
深入理解JVM虚拟机3:垃圾回收器详解
查看>>
深入理解JVM虚拟机4:Java class介绍与解析实践
查看>>
深入理解JVM虚拟机5:虚拟机字节码执行引擎
查看>>
深入理解JVM虚拟机6:深入理解JVM类加载机制
查看>>
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
查看>>
深入理解JVM虚拟机9:JVM监控工具与诊断实践
查看>>
深入理解JVM虚拟机10:JVM常用参数以及调优实践
查看>>
深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
查看>>
深入理解JVM虚拟机13:再谈四种引用及GC实践
查看>>
Spring源码剖析1:Spring概述
查看>>
Spring源码剖析2:初探Spring IOC核心流程
查看>>