And Reachability

题面翻译

题目描述

Toad Pimple 有一个整数数组 \(a_1,\dots,a_n\)。

当 \(x < y\) 且存在 \(x = p_1 < \dots < p_k = y\) 的数列 \(p\) 满足 \(a_{p_i} \& a_{p_{i+1}} > 0\) 时,我们称 \(y\) 是可从 \(x\) 到达的。

其中 \(\&\) 表示按位与运算。

现在给出 \(q\) 组下标,请检查它们可否到达。

输入输出格式

输入格式:

第一行,两个整数 \(n,q\;(2 \le n \le 300\,000,1 \le q \le 300\,000)\),表示数组的长度和查询的个数。

第二行,\(n\) 个整数 \(a_1,\dots,a_n\;(0 \le a_i \le 300\;000)\),表示给定的数组。

接下来 \(q\) 行中,第 \(i\) 行两个整数 \(x_i,y_i\;(1 \le x_i < y_i \le n)\),表示你需要检查 \(y_i\) 是否可从 \(x_i\) 到达。

输出格式:

输出 \(q\) 行。

对于每个询问,如果可到达,输出「Shi」,否则输出「Fou」。

说明

第一个样例中,\(a_3 = 0\),与其按位与结果总是 \(0\),所以不可到达。

\(a_2 \& a_4 > 0\),所以 \(4\) 可从 \(2\) 到达。

并且从 \(1\) 到达 \(4\) 中,\(p = [1,2,4]\)。

题目描述

Toad Pimple has an array of integers $ a_1, a_2, \ldots, a_n $ .

We say that $ y $ is reachable from $ x $ if $ x<y $ and there exists an integer array $ p $ such that $ x = p_1 < p_2 < \ldots < p_k=y $ , and $ a_{p_i}, &, a_{p_{i+1}} > 0 $ for all integers $ i $ such that $ 1 \leq i < k $ .

Here $ & $ denotes the bitwise AND operation.

You are given $ q $ pairs of indices, check reachability for each of them.

输入格式

The first line contains two integers $ n $ and $ q $ ( $ 2 \leq n \leq 300,000 $ , $ 1 \leq q \leq 300,000 $ ) — the number of integers in the array and the number of queries you need to answer.

The second line contains $ n $ space-separated integers $ a_1, a_2, \ldots, a_n $ ( $ 0 \leq a_i \leq 300,000 $ ) — the given array.

The next $ q $ lines contain two integers each. The $ i $ -th of them contains two space-separated integers $ x_i $ and $ y_i $ ( $ 1 \leq x_i < y_i \leq n $ ). You need to check if $ y_i $ is reachable from $ x_i $ .

输出格式

Output $ q $ lines. In the $ i $ -th of them print "Shi" if $ y_i $ is reachable from $ x_i $ , otherwise, print "Fou".

样例 #1

样例输入 #1

5 3
1 3 0 2 1
1 3
2 4
1 4

样例输出 #1

Fou
Shi
Shi

提示

In the first example, $ a_3 = 0 $ . You can't reach it, because AND with it is always zero. $ a_2, &, a_4 > 0 $ , so $ 4 $ is reachable from $ 2 $ , and to go from $ 1 $ to $ 4 $ you can use $ p = [1, 2, 4] $ .

有关位运算,按位考虑。

如果改 \(x\) 的时候出现了某一个 \(y\) 也有的位,那就可以直接跳到 \(y\) 了。

那么定义 \(d_{i,j}\) 为第 \(i\) 个数,要跳到一个拥有第 \(j\) 位的数,最前是跳到哪一个。

然后倒着枚举 \(i\),找到一个这个数跳到拥有第 \(k\) 位的到哪里,然后转移 d 数组。

#include<bits/stdc++.h>
using namespace std;
const int N=3e5+5;
int read()
{
int s=0;
char ch=getchar();
while(ch<'0'||ch>'9')
ch=getchar();
while(ch>='0'&&ch<='9')
s=s*10+ch-48,ch=getchar();
return s;
}
int n,q,a[N],mx,nx[20][20],ds[N][20];
int main()
{
// freopen("and.in","r",stdin);
// freopen("and.out","w",stdout);
scanf("%d%d",&n,&q);
for(int i=1;i<=n;i++)
a[i]=read();
for(int i=0;i<=18;i++)
for(int j=0;j<=18;j++)
nx[i][j]=n+1;
for(int j=0;j<=18;j++)
ds[n+1][j]=n+1;
for(int i=n;i;i--)
{
for(int j=0;j<=18;j++)
{
if(a[i]>>j&1)
ds[i][j]=i;
else
ds[i][j]=n+1;
}
for(int j=0;j<=18;j++)
for(int k=0;k<=18;k++)
if((a[i]>>j&1)&&(a[i]>>k&1))
nx[j][k]=i;
for(int j=0;j<=18;j++)
{
int mn=n+1;
for(int k=0;k<=18;k++)
if(a[i]>>k&1)
mn=min(mn,nx[j][k]);
for(int k=0;k<=18;k++)
ds[i][k]=min(ds[i][k],ds[mn][k]);
}
// for(int j=0;j<=7;j++)
// printf("%d ",ds[i][j]);
// puts("");
}
while(q--)
{
int fl=0,x=read(),y=read();
for(int i=0;i<=18;i++)
if(ds[x][i]<=y&&(a[y]>>i&1))
fl=1,puts("Shi"),i=18;
if(!fl)
puts("Fou");
}
}

[CF1168C] And Reachability的更多相关文章

  1. CF1168C And Reachability 【构造,dp】

    题目链接:洛谷 题目描述:给出$n$个数$a_i$,若$i<j$且$a_i & a_j>0$,则$i$到$j$连一条有向边,$q$次询问,询问从$l$开始是否能到达$r$. 数据范 ...

  2. CF1168C And Reachability(DP)

    首先定义 $g[i][j]$ 表示 $i$ 前面(不包括 $i$)第一个第 $j$ 位是 $1$ 的数的位置.可以随便转移. 再定义 $f[i][j]$ 表示 $i$ 前面(包括 $i$)第一个第 $ ...

  3. iOS网络4——Reachability检测网络状态

    一.整体介绍 前面已经介绍了网络访问的NSURLSession.NSURLConnection,还有网页加载有关的webview,基本满足通常的网络相关的开发. 其实在网络开发中还有比较常用的就是网络 ...

  4. 通读AFN③--HTTPS访问控制(AFSecurityPolicy),Reachability(AFNetworkReachabilityManager)

    这一篇主要介绍使用AFN如何访问HTTPS网站以及这些做法的实现原理,还有介绍AFN的网络状态监测部分AFNetworkReachabilityManager,这个模块会和苹果官方推荐的Reachab ...

  5. 3-HOP: A High-Compression Indexing Scheme for Reachability Query

    title: 3-HOP: A High-Compression Indexing Scheme for Reachability Query venue: SIGMOD'09 author: Ruo ...

  6. IOS开发之网络编程开源类 Reachability应用

    先看Reachability.h发现 #import <Foundation/Foundation.h> #import <SystemConfiguration/SystemCon ...

  7. iOS中使用 Reachability 检测网络

    iOS中使用 Reachability 检测网络 内容提示:下提供离线模式(Evernote).那么你会使用到Reachability来实现网络检测.   写本文的目的 了解Reachability都 ...

  8. Reachability(判断网络是否连接)

    类似于一个网络状况的探针. [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabili ...

  9. iOS开发 利用Reachability判断网络环境

    导入头文件:#import "Reachability.h" 然后将 SystemConfiguration.framework 添加进工程: 1.检查当前的网络状态(wifi.W ...

  10. IOS 网络浅析(一 网络监测~Reachability)

    网络监测应用于各种需要连接网络的app设计,由于现在开发的app几乎都用到网络,因此,网络监测也成为了较为重点的知识,下面我给大家简单讲解一下网络监测的实际应用,依旧会有代码哦. 想要实现网络监测,可 ...

随机推荐

  1. 三维模型OBJ格式轻量化压缩主要技术方法浅析

    三维模型OBJ格式轻量化压缩主要技术方法浅析   OBJ格式是一种常用的三维模型文件格式,它以文本形式保存了模型的顶点.纹理坐标和法线信息.为了实现轻量化压缩,可以采用以下主要技术方法: 1.简化网格 ...

  2. 【升职加薪秘籍】我在服务监控方面的实践(8)-elasticsearch 性能监控与分析手段

    大家好,我是蓝胖子,之前讲了mysql,redis中间件的监控,今天我们再来看看另一个基础组件elasticsearch,如何对它进行监控,当你思考如何对一个组件进行监控时,四大黄金指标会告诉你答案, ...

  3. 深入了解商品详情API接口的使用方法与数据获取

    ​ 作为程序员,了解和熟悉如何调用API接口获取淘宝商品数据是非常重要的.在现今的电商环境中,准确.及时地获取商品详情信息对于开发者和商家来说至关重要.本文将以程序员的视角,详细介绍如何调用API接口 ...

  4. 解锁Java面试中的锁:深入了解不同类型的锁和它们的用途

    简介 多线程编程在现代软件开发中扮演着至关重要的角色.它使我们能够有效地利用多核处理器和提高应用程序的性能.然而,多线程编程也伴随着一系列挑战,其中最重要的之一就是处理共享资源的线程安全性.在这个领域 ...

  5. Springboot简单功能示例-5 使用JWT进行授权认证

    springboot-sample 介绍 springboot简单示例 跳转到发行版 查看发行版说明 软件架构(当前发行版使用) springboot hutool-all 非常好的常用java工具库 ...

  6. STL容器:map

    map 可以当作特殊的数组来使用,在数组开不下,或者数组下标不是整数的时候使用 map 就很方便,比如统计字符串的出现个数,统计 int 范围内的数的出现次数等等. 映射是指两个集合之间的元素的相互对 ...

  7. MySQL系列之——SQL介绍、常用SQL分类、数据类型、表属性、字符集、DDL应用、DCL应用、DML应用(增删改)、DQL应用(select )、元数据信息、show命令

    文章目录 一 SQL介绍 二 常用SQL分类 2.1 客户端命令 三 数据类型.表属性.字符集 3.1 数据类型 3.1.1 作用 3.1.2 种类 3.2 表属性 3.2.1 列属性 3.2.2 表 ...

  8. C#学习笔记---异常捕获和变量

    异常捕获 使用异常捕获可以捕获出现异常的代码块,防止因为异常抛出造成的程序卡死的情况发生. try{}catch{}finally{}结构 //异常捕获 try { string str=Consol ...

  9. SaaS模式相较传统CRM系统有何优势?

    SaaS模式的CRM客户管理系统相较于传统的CRM客户管理系统更加方便灵活,更加符合如今的市场环境.它解决了传统CRM系统投入大.维护难的难题,降低了中小企业导入CRM的门槛.下面详细说说SaaS模式 ...

  10. 使用 DDPO 在 TRL 中微调 Stable Diffusion 模型

    引言 扩散模型 (如 DALL-E 2.Stable Diffusion) 是一类文生图模型,在生成图像 (尤其是有照片级真实感的图像) 方面取得了广泛成功.然而,这些模型生成的图像可能并不总是符合人 ...