P4269 [USACO18FEB]Snow Boots G

news/2024/7/4 15:10:58


思维题。
以地板为序构造链表,再排序,然后删除走不过去的地面。
删除的时候顺便维护最大的跨度,以此判断可行性。
总的来说利用了答案的单调性。

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int MAXN = 1e5 + 20;
inline int read()
{int x = 0; char ch = getchar(); bool f = false;while(!isdigit(ch)) f |= (ch == '-'), ch = getchar();while(isdigit(ch)) x = x * 10 + ch - '0', ch = getchar();return f ? -x : x;
}int N, B;
struct Node
{int val;Node *pre, *nxt;
}node[MAXN];struct boot
{int dep, dis, idx, ans;inline bool operator >(const boot &rhs) const {return dep > rhs.dep;}inline bool operator <(const boot &rhs) const {return idx < rhs.idx;}
}b[MAXN];
struct Floor
{int dep, idx;Node *pos;inline bool operator >(const Floor &rhs) const {return dep > rhs.dep;}inline bool operator <(const Floor &rhs) const {return idx < rhs.idx;}
}f[MAXN];void build(){f[1].pos = &node[1]; node[1].val = 1;for(int i = 2; i <= N; i++){node[i].pre = &node[i - 1], node[i - 1].nxt = &node[i];node[i].val = 1, f[i].pos = &node[i];}
}int main()
{cin>>N>>B;for(int i = 1; i <= N; i++) f[i] = (Floor){read(), i};for(int i = 1; i <= B; i++) b[i].dep = read(), b[i].dis = read(), b[i].idx = i;build();sort(f + 1, f + N + 1, greater<Floor>());sort(b + 1, b + B + 1, greater<boot>());int p = 1, maxs = 1;for(int i = 1; i <= B; i++){while(p <= N && f[p].dep > b[i].dep) {Node *cur = f[p].pos;cur->pre->nxt = cur->nxt;cur->nxt->pre = cur->pre;maxs = max(maxs, cur->pre->val += cur->val);++p;}if(maxs > b[i].dis) b[i].ans = 0;else b[i].ans = 1;}sort(b + 1, b + B + 1);for(int i = 1; i <= B; i++) printf("%d\n", b[i].ans);return 0;
}

转载于:https://www.cnblogs.com/wsmrxc/p/9439965.html


http://lihuaxi.xjx100.cn/news/246275.html

相关文章

怎样将jpg转换成pdf软件

为什么80%的码农都做不了架构师&#xff1f;>>> 怎样将jpg转换成pdf软件 序言&#xff1a; 企业或个人通常会遇到设备终端软件的兼容性和支持性问题&#xff0c;比如&#xff0c;JPG转PDF文本&#xff0c;这给等于给用户设置了一个门槛&#xff0c;遇到需要将JPG转换…

安装Macports遇到的问题和PATH设置

2019独角兽企业重金招聘Python工程师标准>>> 安装Macports后&#xff0c;再输入port&#xff0c;发现无法使用。 然后下源码来编译&#xff0c;发现要设置PATH。咋设置呢&#xff0c;网上找的攻略看下面。 缺省的Macports安装在了/opt/local/bin下头。 执行&#xf…

C++关键字const和mutable

1. const const是constant的缩写&#xff0c;意为常用&#xff0c;它有以下几个作用 1.1. 修饰变量 1.1.1. const修饰普通变量 const int a 10; const修饰了int&#xff0c;表示这段代码定义的变量&#xff0c;最后取的是int型且值为10&#xff0c;不可被后面的代码修改。…

Python机器学习实践指南pdf (中文版带书签)、原书代码、数据集

Python机器学习实践指南 目 录 第1章Python机器学习的生态系统 1 1&#xff0e;1 数据科学/机器学习的工作 流程 2 1&#xff0e;1&#xff0e;1 获取 2 1&#xff0e;1&#xff0e;2 检查和探索 2 1&#xff0e;1&#xff0e;3 清理和准备 3 1&#xff0e;1&#xff0e;4 建模…

jquery autocomplete实现solr查询字段自动填充并执行查询

2019独角兽企业重金招聘Python工程师标准>>> 页面引入三个JS&#xff1a; <script type"text/javascript" src"js/jquery-1.7.2.js"></script> <script type"text/javascript" src"js/jquery-ui.js">&l…

几种开源工作流引擎的简单比较(转)

摘要&#xff1a;目前开源工作流引擎用的最多的是jbpm &#xff0c; 各种特性都不错&#xff0c; 文档也比较多&#xff0c; 下面只简单列举一下目前开源工作流引擎用的最多的是jbpm &#xff0c; 各种特性都不错&#xff0c; 文档也比较多&#xff0c; 下面只简单列举一下 其他…

Ubuntu系统下制作USB启动盘

在Linux系统下制作系统启动盘有两种方法&#xff1a; 用dd命令用Linux自带的图形界面工具 Startup Disk Creator 1. dd命令 查看挂载的U盘的设备名称 sudo fdisk -l如果U盘还在挂载状态&#xff0c;卸载它。否则&#xff0c;会提示设备或资源正忙。 umount /dev/u盘名格式化…

爆款AR游戏如何打造?网易杨鹏以《悠梦》为例详解前沿技术

7月31日&#xff0c;2018云创大会游戏论坛在杭州国际博览中心103B圆满举行。本场游戏论坛聚焦探讨了可能对游戏行业发展有重大推动的新技术、新实践&#xff0c;如AR、区块链、安全、大数据等。网易AR游戏生态合作负责人杨鹏表示&#xff0c;传统游戏模式趋同&#xff0c;AR游戏…