UVALive - 4621 Cav
来源:互联网 发布:linux和windows 编辑:程序博客网 时间:2024/05/24 23:14
题意:在长n的地方,求能完全能放下的有的面积
思路:先从左到右,然后在从右到左统计每个位置能有的高度,最后再相加就是了
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 1000010;const int INF = 0x3f3f3f3f;int a[MAXN],b[MAXN];int n,h[MAXN];int main(){ int t; scanf("%d",&t); while (t--){ scanf("%d",&n); for (int i = 1; i <= n; i++) scanf("%d",&a[i]); for (int i = 1; i <= n; i++) scanf("%d",&b[i]); a[0] = b[0] = INF; a[n+1] = b[n+1] = INF; int ah = INF; for (int i = 1; i <= n; i++){ if (a[i-1] > ah) ah = a[i-1]; if (a[i] > ah) ah = a[i]; if (b[i] < ah) ah = b[i]; h[i] = ah; } ah = INF; for (int i = n; i >= 1; i--){ if (a[i+1] > ah) ah = a[i+1]; if (a[i] > ah) ah = a[i]; if (b[i] < ah) ah = b[i]; if (ah < h[i]) h[i] = ah; ah = h[i]; } int ans = 0; for (int i = 1; i <= n; i++) ans += h[i] - a[i]; printf("%d\n",ans); } return 0;}
0 0
- UVALive - 4621 Cav
- CERC 2009 Cav 扫描法 (uvaLive 4621 - Cav)
- UVALive - 4621 Cav 贪心 + 分析
- Cav
- 1442 - Cav
- 1442 - Cav
- LA4621 Cav
- Cav UVA
- Cav UVA
- 1442 - Cav(扫描+推理)
- UVA - 1442 Cav
- UVa OJ 1442 - Cav
- UVA-1442 Cav
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- Linux常用命令
- 高性能的通讯库-ZeroMQ的几个高性能特征
- 国内最全最详细的hadoop2.2.0集群的HA高可靠的最简单配置
- 2014,新的一年我的计划
- 看懂设计模式UML类图
- UVALive - 4621 Cav
- Socket通信原理和实践
- hadoop配置文件详解、安装及相关操作补充版
- Java七种排序算法!
- JAVA序列化和反序列化
- RH318之虚拟机创建及其它功能
- HTML5 Canvas 第二篇
- 网络编程学习_设计模式_半同步半异步模式
- Oracle 多进程更新同一个表