1、关于题面的理解:此题故弄玄虚,题面拗口;实际上不过是求若干连续矩形中的所能构成的最大矩形面积。

2、关于做法:虽然是数据结构题,但这种思维角度值得学习。排序简化+等效转化(还带一点回溯的味道)

ac代码如下:

#include<iostream>
#include<cstdlib>
#include<stack>
using namespace std;
struct rec
{
int w,h;
}data; int main(void){
int n;
while(scanf("%d",&n)&&n!=-){
stack<rec> s;
int lasth=,ans=;
while(n--){
scanf("%d%d",&data.w,&data.h);
if(data.h<lasth){
/*若违反升序原则,则进行等效转化:找到能使得新输入矩阵满足升序的插入位置。在找的同时计算即将删除的这些矩形所能形成的最大矩形面积。
因为事实上除了此时的元素data外,栈中的排列已经是升序的,因此计算最大的过程非常简单。 */
int totalw=,curarea=;
while(s.empty()==&&s.top().h>data.h){
totalw+=s.top().w;
curarea=totalw*s.top().h;
if(curarea>ans)ans=curarea;
s.pop();
}
data.w=totalw+data.w;
/*此时删除的矩形可以等效 替换成data.w=删除部分的总长度+新输入矩形的w,data.h=新输入矩形的高,压栈即可。 */
s.push(data);
}
else{//若升序,则直接插入
s.push(data);
}
lasth=s.top().h;
}
int totalw=,curarea=;
while(s.empty()==){//最后再进行一次遍历
totalw+=s.top().w;
curarea=totalw*s.top().h;
if(curarea>ans)ans=curarea;
s.pop();
}
cout<<ans<<endl;
}
return ;
}

POJ-2082 terriblesets(堆栈题+阅读理解)的更多相关文章

  1. Codeforces#543 div2 A. Technogoblet of Fire(阅读理解)

    题目链接:http://codeforces.com/problemset/problem/1121/A 真·阅读理解 题意就是 有n个人 pi表示他们的强度 si表示他们来自哪个学校 现在Arkad ...

  2. 【转】POJ百道水题列表

    以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...

  3. P3879 [TJOI2010]阅读理解 题解

    P3879 [TJOI2010]阅读理解 题解 题目描述 英语老师留了N篇阅读理解作业,但是每篇英文短文都有很多生词需要查字典,为了节约时间,现在要做个统计,算一算某些生词都在哪几篇短文中出现过. 输 ...

  4. 阅读关于DuReader:百度大规模的中文机器阅读理解数据集

    很久之前就得到了百度机器阅读理解关于数据集的这篇文章,今天才进行总结!.... 论文地址:https://arxiv.org/abs/1711.05073 自然语言处理是人工智能皇冠上的明珠,而机器阅 ...

  5. Trie树【洛谷P3879】 [TJOI2010]阅读理解

    P3879 [TJOI2010]阅读理解 题目描述 英语老师留了N篇阅读理解作业,但是每篇英文短文都有很多生词需要查字典,为了节约时间,现在要做个统计,算一算某些生词都在哪几篇短文中出现过. 输入输出 ...

  6. HTTPS强制安全策略-HSTS协议阅读理解

    https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security [阅读理解式翻译,非严格遵循原 ...

  7. 用Keras搞一个阅读理解机器人

    catalogue . 训练集 . 数据预处理 . 神经网络模型设计(对话集 <-> 问题集) . 神经网络模型设计(问题集 <-> 回答集) . RNN神经网络 . 训练 . ...

  8. Tensorflow做阅读理解与完形填空

    catalogue . 前言 . 使用的数据集 . 数据预处理 . 训练 . 测试模型运行结果: 进行实际完形填空 0. 前言 开始写这篇文章的时候是晚上12点,突然想到几点新的理解,赶紧记下来.我们 ...

  9. Trie树【P3879】 [TJOI2010]阅读理解

    Description 英语老师留了N篇阅读理解作业,但是每篇英文短文都有很多生词需要查字典,为了节约时间,现在要做个统计,算一算某些生词都在哪几篇短文中出现过. Input 第一行为整数N,表示短文 ...

随机推荐

  1. Servlet------>jsp自定义标签2(让标签体不显示)

    自定义标签能做什么: 1.移除java代码 2.控制jsp页面某一部分是否执行 3.控制整个jsp是否执行 3.jsp内容重复输出 4.修改jsp内容输出 2.控制jsp页面某一部分是否执行 tag1 ...

  2. Python 常用资源

    Python:https://www.python.org/ftp/python/ Django:https://www.djangoproject.com/download/

  3. git之merge和rebase的区别

    merge合并 # merge操作 第一步: # 先创建一个目录,在主分支提交3个txt文件 [root@luchuangao]# mkdir oldboy [root@luchuangao]# gi ...

  4. Linux的概念与体系(转)

    学linux就用它了 http://www.cnblogs.com/vamei/archive/2012/10/10/2718229.html

  5. docker部署oracle

    oracle部署 创建oracle用户 [root@stpass-15 ~]# useradd oracle[root@stpass-15 oracle]# cd oracle [root@stpas ...

  6. MFC中存在的不属于任何类的全局函数,它们统统在函数名称开头加上Afx

    MFC中存在的不属于任何类的全局函数,它们统统在函数名称开头加上Afx. 函数名称 说明 AfxWinInit 被WinMain(MFC提供)调用的一个函数,用做MFC GUI程序初始化的一部分,如果 ...

  7. mysql数据库从删库到跑路之mysql其他

    一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便测试,可以使用IDE工具 下载链接:https://pan.baidu.com/s/1bpo5mqj 掌握: #1. 测试+链接数据 ...

  8. android ListView SimpleAdapter 带图片

    main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xml ...

  9. Web 框架 Flask

    Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后 ...

  10. Django:学习笔记(5)——会话

    Django:学习笔记(5)——会话 配置中间件 Django中使用会话,需要配置一个中间件. 配置会话引擎 默认情况下,Django在数据库中存储sessions(使用了django.contrib ...