题目链接:洛谷

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

数据范围:$n,q\leq 3*10^5$

一道及其美妙的思维题。(以下均用二进制)

维护两个数组,$g_{i,j}$表示下标小于$i$的数中下标最大且第$j$位为1的下标。$f_{i,j}$表示下标小于$i$的数中下标最大,第$j$位为1且可以到达$i$的下标。

$g_{i,j}$的预处理不用多说了,$f_{i,j}$预处理时可以枚举一位$k$,表示$a_i$通过第$k$位可以从$g_{i,k}$到达,用$g_{i,k}$的f值来直接推出$i$的f值。

询问的时候,枚举一位$i$,表示$r$可以从$f_{r,i}$到达,而当$a_l$的第$i$位为1且$f_{r,i}\geq l$时$l$可以到达$f_{r,i}$,所以$l$可以到达$r$。如果对于每一位都不行则输出fou。

时间复杂度$O(n\log^2n+q\log n)$

 #include<bits/stdc++.h>
#define Rint register int
using namespace std;
const int N = ;
int n, m, f[N][], g[N][];
bool a[N][];
int main(){
scanf("%d%d", &n, &m);
for(Rint i = ;i <= n;i ++){
int x;
scanf("%d", &x);
for(Rint j = ;j < ;j ++)
if(x & ( << j)) a[i][j] = ;
}
for(Rint i = ;i <= n;i ++)
for(Rint j = ;j < ;j ++)
if(a[i - ][j]) g[i][j] = i - ;
else g[i][j] = g[i - ][j];
for(Rint i = ;i <= n;i ++)
for(Rint j = ;j < ;j ++)
for(Rint k = ;k < ;k ++)
if(a[i][k]){
int x = g[i][k];
f[i][j] = max(f[i][j], f[x][j]);
if(a[x][j]) f[i][j] = max(f[i][j], x);
}
while(m --){
int l, r;
bool ans = false;
scanf("%d%d", &l, &r);
for(Rint i = ;i < && !ans;i ++)
if(a[l][i] && f[r][i] >= l) ans = true;
puts(ans ? "Shi" : "Fou");
}
}

CF1168C

CF1168C And Reachability 【构造,dp】的更多相关文章

  1. CF1168C And Reachability(DP)

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

  2. 贪心/构造/DP 杂题选做Ⅱ

    由于换了台电脑,而我的贪心 & 构造能力依然很拉跨,所以决定再开一个坑( 前传: 贪心/构造/DP 杂题选做 u1s1 我预感还有Ⅲ(欸,这不是我在多项式Ⅱ中说过的原话吗) 24. P5912 ...

  3. 贪心/构造/DP 杂题选做Ⅲ

    颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的 ...

  4. CROC 2016 - Elimination Round (Rated Unofficial Edition) E. Intellectual Inquiry 贪心 构造 dp

    E. Intellectual Inquiry 题目连接: http://www.codeforces.com/contest/655/problem/E Description After gett ...

  5. 贪心/构造/DP 杂题选做

    本博客将会收录一些贪心/构造的我认为较有价值的题目,这样可以有效的避免日后碰到 P7115 或者 P7915 这样的题就束手无策进而垫底的情况/dk 某些题目虽然跟贪心关系不大,但是在 CF 上有个 ...

  6. At grand 022 GCD序列构造 dp/floyd二进制变换最少费用

    A diverse words指的是每一个字母在单词中出现的次数不超过1的单词 题目要求你求出字典序比当前给定单词大的字典序最小单词 1.如果给定的单词长度小于26 就遍历一次在单词尾部加上字典序最小 ...

  7. hdu1003 1024 Max Sum&Max Sum Plus Plus【基础dp】

    转载请注明出处,谢谢:http://www.cnblogs.com/KirisameMarisa/p/4302208.html   ---by 墨染之樱花 dp是竞赛中常见的问题,也是我的弱项orz, ...

  8. uva live 4394 String painter 间隔dp

    // uva live 4394 String painter // // 问题是,在培训指导dp运动主题,乍一看,我以为只是一点点复杂 // A A磕磕磕,两个半小时后,.发现超过例子.然而,鉴于他 ...

  9. 洛谷P1140 基因匹配 //DP真正意义上的一血

    题目背景 大家都知道,基因可以看作一个碱基对序列.它包含了44种核苷酸,简记作A,C,G,TA,C,G,T.生物学家正致力于寻找人类基因的功能,以利用于诊断疾病和发明药物. 在一个人类基因工作组的任务 ...

随机推荐

  1. ASP.NET Core分布式项目-1.IdentityServer4登录中心

    源码下载 一.添加服务端的api 1.添加NUGet包 IdentityServer4 点击下载,重新生成 2.添加Startup配置 打开Startup文件 public class Startup ...

  2. js 监听键盘的enter键

    // js 版本 window.onload=function(){ document.onkeydown=function(ev){ var event=ev ||event if(event.ke ...

  3. (错误)启动ActiveMQ报错:Transport Connector could not be registered in JMX: java.io.IOException: Failed to bind to server socket: stomp://0.0.0.0:61613?

    一.错误报告 很明显,端口被占用 二.解决方法 1. 在cmd中输入 netstat -ano 查看61613端口被占用情况,如果有其他进程使用,则使用 taskkill /f /pid 进程PID  ...

  4. python实现暴力破解

    import urllib2 import urllib import cookielib import threading import sys import Queue from HTMLPars ...

  5. springboot启动流程(六)ioc容器刷新前prepareContext

    所有文章 https://www.cnblogs.com/lay2017/p/11478237.html prepareContext方法核心逻辑 上一篇文章中,我们通过createApplicati ...

  6. 记一次Git提交报错的问题

    通常代码版本控制的步骤是: 在代码版本控制平台新建一个仓库 clone远程仓库到本地 开始编码,然后是一系列add,commit,push 我的步骤是: 在远程代码版本管理平台新建一个仓库 在本地新建 ...

  7. 页面中的div居中

    div的居中 一.页面的水平居中 #article{ position: relative; margin: 0 auto; width: 80%; background-color: aquamar ...

  8. spring-security2配置精讲(转载)

    本文转载自牛人downpour的帖子: http://www.iteye.com/topic/319965 Spring 论坛上看了不少Spring Security的相关文章.这些文章基本上都还是基 ...

  9. 堆(heap)和栈(stack)、内存泄漏(memory leak)和内存溢出

    来源:http://blog.itpub.net/8797129/viewspace-693648/ 简单的可以理解为:heap:是由malloc之类函数分配的空间所在地.地址是由低向高增长的.sta ...

  10. springboot的简单热部署

    最近开始学习使用springboot但springboot项目和之前的ssm等各种框架项目有所不同,本身集成了很多繁琐的东西,但 一些小功能还需自己配置.下面开始配置热部署. 首先当然是导入热部署的依 ...