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
  • 相关阅读:
    webuploader多次触发注册
    下载二进制文件
    表格打印
    多个请求下 loading 的展示与关闭
    前进刷新后退不刷新
    页面权限控制和登陆验证
    axios.post 配置formdata提交
    react错误边界
    关于beforeRouterEnter获取不到this
    JS
  • 原文地址:https://www.cnblogs.com/wweiyi2004/p/15399175.html
Copyright © 2011-2022 走看看