zoukankan      html  css  js  c++  java
  • 【解题报告】洛谷P3467 PLA-Postering

    【解题报告】洛谷P3467 PLA-Postering

    题目链接

    https://www.luogu.com.cn/problem/P3467

    思路

    这道题目我开始理解错了

    我理解的是从侧边看过去,也就是建筑物东西延伸,我从东西看,然后我想的是从左边单调栈一次,右边单调栈一次

    但是题目的意思是从南北看过去,然后贴海报

    啊喂,有房子把海报直接贴在家门口的吗草

    所以我们直接用一个单调栈维护一下就好了,我们维护一个单调递减的单调栈,特别地,如果两个相邻的高度一样的话,我们所需要的海报数量减一,因为两个建筑可以直接共用一张海报

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cstring>
    #include <string>
    using namespace std;
    const int maxn=250005;
    int n,ans;
    int d[maxn],w[maxn];
    int s[maxn],size;
    bool vis1[maxn];
    bool vis2[maxn];
    int main()
    {
    	cin>>n;
    	for(int i=1;i<=n;i++)
    	cin>>d[i]>>w[i];
    	
    	for(int i=1;i<=n;i++)
    	{
    		while(size&&s[size]>=w[i])
    		{
    			if(w[i]==s[size]) ans++;;
    			s[size]=0;
    			size--;
    		}
    		s[++size]=w[i];
    	}
    	cout<<n-ans<<'
    ';
    	return 0;
    }
    
    本博文为wweiyi原创,若想转载请联系作者,qq:2844938982
  • 相关阅读:
    windows-DLL注入
    HDU 2148 Score
    HDU 2133 What day is it
    HDU 2112 HDU Today
    HDU 2187 悼念512汶川大地震遇难同胞——老人是真饿了
    HDU 2124 Repair the Wall
    HDU 2117 Just a Numble
    HDU 2114 Calculate S(n)
    HDU 2115 I Love This Game
    HDU 2104 hide handkerchief
  • 原文地址:https://www.cnblogs.com/wweiyi2004/p/15399175.html
Copyright © 2011-2022 走看看