zoukankan      html  css  js  c++  java
  • 洛谷P1318 积水面积

    题目描述

    一组正整数,分别表示由正方体叠起的柱子的高度。若某高度值为(x),表示由(x)个正立方的方块迭起(如下图,(0<=x<=5000))。找出所有可能积水的地方(图中蓝色部分),统计它们可能积水的面积总和(计算的是图中的横截面积。一个立方体的位置,为一个单位面积)。

    如图:柱子高度变化为 0 1 0 2 1 2 0 0 2 0

    图中蓝色部分为积水面积,共有(6)个单位面积积水。

    输入输出格式

    输入格式:

    两行,第一行n,表示有n个数((3<=n<=10000))。第2行连续n个数表示依次由正方体迭起的高度,保证首尾为(0)

    输出格式:

    一个数,可能积水的面积。

    输入输出样例

    输入样例#1:

    10
    0 1 0 2 1 2 0 0 2 0
    

    输出样例#1:

    6
    

    思路:挺水的一道题,但是第一遍写还是错了,我以为是今年noip T1,然而想错了,没认真读题,这个题其实就是看看一个位置的左右高度有不有差值,有的话就加上这个差值。

    代码:

    #include<iostream>
    #include<cstdio>
    #define maxn 10001
    using namespace std;
    int n,l[maxn],r[maxn],a[maxn],ans;
    int main() {
      scanf("%d",&n);
      for(int i=1;i<=n;++i) {
      	scanf("%d",&a[i]);
    	l[i]=max(l[i-1],a[i]); 
      } 
      for(int i=n;i>=1;--i) r[i]=max(r[i+1],a[i]);
      for(int i=1;i<=n;++i) 
      if(min(l[i],r[i])-a[i]>0) ans+=min(l[i],r[i])-a[i]; 
      printf("%d
    ",ans);
      return 0;
    }
    
  • 相关阅读:
    AutoMapper在ABP框架
    Github for Windows使用介绍
    Net中的反应式编程
    webstorm创建nodejs + express + jade 的web 项目
    Nancy 框架
    Quartz.NET 任务调度框架
    从电商秒杀与抢购谈Web系统大规模并发
    SVN中tag branch trunk用法详解
    Hsql中In没有1000的限制
    Gradle sourceCompatibility has no effect to subprojects(转)
  • 原文地址:https://www.cnblogs.com/grcyh/p/10134353.html
Copyright © 2011-2022 走看看