首页 > 其他分享 >abc372D Buildings

abc372D Buildings

时间:2024-10-07 17:22:08浏览次数:1  
标签:std Buildings int abc372D long 号楼

N幢楼排成一行,第i号楼的高度为H[i]。对于每幢楼,右边有多少幢楼满足两楼之间的楼高都不超过右侧楼高?
1<=N<=2E5, 1<=H[i]<=N, H[i]!=Hj

分析:单调栈求出各幢楼左边最近的比它高的楼,对于j号楼,假设它左边最近的比它高的楼号为i,那么j对区间[i,j-1]中每个下标都有1的贡献,可以用差分来维护。

#include <bits/stdc++.h>
using i64 = long long;

void solve() {
    int N;
    std::cin >> N;
    std::vector<int> H(N + 2);
    for (int i = 1; i <= N; i++) {
        std::cin >> H[i];
    }

    std::vector<int> L(N + 2), s;
    for (int i = 1; i <= N; i++) {
        while (!s.empty() && H[s.back()] <= H[i]) {
            s.pop_back();
        }
        L[i] = s.empty() ? 0 : s.back();
        s.push_back(i);
    }

    std::vector<int> A(N + 2);
    for (int i = 1; i <= N; i++) {
		A[L[i]] += 1;
		A[i] -= 1;
    }
    std::partial_sum(A.begin(), A.end(), A.begin());
    for (int i = 1; i <= N; i++) {
    	std::cout << A[i] << " \n"[i == N];
    }
}

int main() {
    std::cin.tie(0)->sync_with_stdio(0);
    int t = 1;
    while (t--) solve();
    return 0;
}

标签:std,Buildings,int,abc372D,long,号楼
From: https://www.cnblogs.com/chenfy27/p/18450338

相关文章

  • Buildings(AtCoder Beginner Contest 372)
    #include<bits/stdc++.h>#defineendl'\n'usingll=longlong;typedefunsignedlonglongull;usingnamespacestd;voidGordenGhost();signedmain(){#ifdefGordenfreopen("E:/ProgramFiles/CLion2023.2.2/my/exe/in.txt&quo......
  • SSUD71-101 Understanding Buildings 241
    SSUD71-101Understanding Buildings241:Assignment2Topic: Assignment2:Group project requiring application ofconstructionprocesses/methods.Format:Part 1:Siteand HouseSummaryPart2: Detailed RoomConstructionSchedulePart3:Construction......
  • IfcBuildingSystemTypeEnum
    IfcBuildingSystemTypeEnum 类型定义此枚举标识不同类型的建筑系统。 IFC4中的新枚举。 EnumerationdefinitionConstantDescriptionFENESTRATIONSystemofdoors,windows,andotherfillingsinopeninginabuildingenvelopthataredesignedtopermitth......
  • Pset_BuildingStoreyCommon
    Pset_BuildingStoreyCommonBuildingStoreyCommon:IfcBuildingStore所有实例定义的公共属性。请注意,几个建筑属性是在IfcBuildingStorey实例中直接处理的,建筑层数(或短名称)由IfcBuildngStore.name处理,建筑层名称(或长名称)由IFcBuildingStore.LongName处理,描述(或注释)由IccBuildingSt......
  • 杭电ACM HDU 2560 Buildings
    BuildingsTimeLimit:2000/1000MS(Java/Others)   MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):1828   AcceptedSubmission(s):1553ProblemDescriptionWedividetheHZNUCampusintoN*Mgrids.Asyoucanseefromthepicturebe......
  • [LeetCode] 2222. Number of Ways to Select Buildings
    Youaregivena 0-indexed binarystring s whichrepresentsthetypesofbuildingsalongastreetwhere:s[i]='0' denotesthatthe ith buildingisanofficeands[i]='1' denotesthatthe ith buildingisarestaurant.Asacityoff......
  • Google Earth Engine(GEE)——全球建筑物数据集(MSBuildings数据集)包含微软7.77忆建筑物
    全球ML建筑脚印必应地图正在发布全球范围内的公开建筑脚印。我们从2014年至2021年的Bing地图图像中检测到777M的建筑,包括Maxar和Airbus的图像。为了完整起见,早期发布的数据集也包括在这个数据集中,并被纳入其中。你可以在这里找到Githubrepo和关于方法的更多信息。数据集是压缩的,......
  • Pset_BuildingSystemCommon
    Pset_BuildingSystemCommon建筑系统定义的通用特性  NameTypeDescriptionReferenceP_SINGLEVALUE / IfcIdentifierKennzeichenKennzeichenfürdiese......