题目链接
因为每个数都是\(10^5\)以内,考虑直接用\(bitset\)维护。
\(a-b=x\),其实就是看是否有\(p\)和\(p+x\)同时存在,直接\(bitset\)移位按位与一下就好了。
\(a+b=x\),这个直接搞不好搞,所以考虑转化。
\[a-(N-b)=a+b-N=x-N\]
其中\(N\)为一个常数,令\(f(x)=N-x\),则有
\[f(b)-f(x)=a\]
于是再开个\(bitset\)维护\(f(x)\),然后就很显然了。
\(a*b=x\),这个显然没法用\(bitset\)做,但是\(x\)的因数个数是\(\sqrt x\)级别的,所以直接暴力枚举因数就行了。
为了防止负数的出现,上文中的\(N\)取题中的值域上限\(10^5\)
最后套上莫队模板。

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <bitset>
#include <cmath>
#include <iostream>
using namespace std;
const int MAXN = 100010;
bitset <MAXN> p1, p2;
int n, m, a[MAXN];
inline int read(){int s = 0;char ch = getchar();while(ch < '0' || ch > '9') ch = getchar();while(ch >= '0' && ch <= '9'){ s = s * 10 + ch - '0'; ch = getchar(); }return s;
}
int Q, v[MAXN], ans[MAXN];
struct ask{int type, l, r, c, id;int operator < (const ask A) const{return l / Q == A.l / Q ? r < A.r : l < A.l;}
}q[MAXN];
void add(int x){++v[a[x]];p1[a[x]] = p2[100000 - a[x]] = 1;
}
void del(int x){if(!--v[a[x]])p1[a[x]] = p2[100000 - a[x]] = 0;
}
int main(){n = read(); m = read(); Q = sqrt(n);for(int i = 1; i <= n; ++i)a[i] = read();for(int i = 1; i <= m; ++i)scanf("%d%d%d%d", &q[i].type, &q[i].l, &q[i].r, &q[i].c), q[i].id = i;sort(q + 1, q + m + 1);int l = 1, r = 0;for(int i = 1; i <= m; ++i){while(r < q[i].r) add(++r);while(l > q[i].l) add(--l);while(r > q[i].r) del(r--);while(l < q[i].l) del(l++);if(q[i].type == 1){ans[q[i].id] = (p1 & (p1 >> q[i].c)).any();}else if(q[i].type == 2){ans[q[i].id] = (p1 & (p2 >> (100000 - q[i].c))).any();}else{if(!q[i].c) ans[q[i].id] = v[0];int sqr = sqrt(q[i].c);for(int j = 1; j <= sqr; ++j)if(q[i].c % j == 0)if(v[j] && v[q[i].c / j]){ans[q[i].id] = 1;break;}}}for(int i = 1; i <= m; ++i)printf("%s\n", ans[i] ? "hana" : "bi");return 0;
}

转载于:https://www.cnblogs.com/Qihoo360/p/11027048.html

【洛谷 P3674】 小清新人渣的本愿(bitset,莫队)相关推荐

  1. 洛谷 P3674 小清新人渣的本愿 bitset+莫队

    题目: https://www.luogu.org/problemnew/show/P3674 题目大意: 给你一个长度为 N N N的序列,每次询问[l,r]能不能取出两个数,和或差或积等于C&qu ...

  2. 洛谷 P3674 小清新人渣的本愿(莫队 +bitset)

    我们利用一个长度为 1e5 的 bitset,当数值 c 出现时,将 c 位置赋值为 1,对于题目要求的操作可以转变为 求 bitset 中存在两个位置相差为 x 的 1 这个比较难,如下图 bits ...

  3. P3674 小清新人渣的本愿 (bitset+莫队)

    给你一个序列a,长度为n,有m次操作,每次询问一个区间是否可以选出两个数它们的差为x,或者询问一个区间是否可以选出两个数它们的和为x,或者询问一个区间是否可以选出两个数它们的乘积为x ,这三个操作分别 ...

  4. [洛谷P3674]小清新人渣的本愿

    题目传送门 这道题是一道莫队题.对于每一种问法,就是查询对应的数是否在当前的区间内. 设$b[i]$表示莫队当前区间中有没有$i$这个数. 对于第一问"是否可以选出两个数它们的差为x&quo ...

  5. 洛谷 P3674 小清新人渣的本愿 [莫队 bitset]

    传送门 题意: 给你一个序列a,长度为n,有Q次操作,每次询问一个区间是否可以选出两个数它们的差为x,或者询问一个区间是否可以选出两个数它们的和为x,或者询问一个区间是否可以选出两个数它们的乘积为x ...

  6. 小清新人渣的本愿(莫队+bitset)

    小清新人渣的本愿 这两天写了些 b i t s e t bitset bitset的题,但都不想写题解...正巧这道题还结合了莫队,也是正在学习的,就记录一下吧. 题意: 给定一个 a a a数组,有 ...

  7. P3674 小清新人渣的本愿 (莫队 + bitset)

    题目链接: P3674 小清新人渣的本愿 大致题意 给定一个长度为 n n n的序列, 有 m m m次询问操作. 1 l r x 表示询问 [ l , r ] [l, r] [l,r]是否存在 a ...

  8. luogu P3674 小清新人渣的本愿

    https://www.luogu.com.cn/problem/P3674 首先肯定是莫队 然后考虑如何判断,发现差可以直接用bitset 加法就整个数反过来(相当于取补集),然后再bitset 乘 ...

  9. 【题解】Luogu P3674 小清新人渣的本愿

    原题传送门 这题还算简单(我记得我刚学oi时就来写这题,然后暴力都爆零了) 看见无修改,那么这题应该是莫队 维护两个bitset,第二个是第一个的反串,bitset内维护每个数字是否出现过 第一种操作 ...

  10. 洛谷-小清新人渣的本愿-(莫队+bitset)

    小清新人渣的本愿 题意: 就是给你一个数组,然后有3种查询,分别是问你l到r区间内,是否有两个数的差等于x,只和等于x,乘积为x. 思考: 其实看到,感觉就挺复杂的,没办法去找这种关系对,除了乘积为x ...

最新文章

  1. sqlalchemy数据库中的limit使用(限制查询的用户数量)
  2. RandomAccessFile学习笔记
  3. c# gerber文件读取_懒猪编程实例六:Visual C# 实现外部文件的读取和写入
  4. JavaScript之面向对象学习四原型对象的动态性
  5. MySQL--安装linux(5.6版本)
  6. 工作247:uniapp--实战--flex布局--商户星级
  7. Python 使用 Scrapy 发送 post 请求的坑
  8. 过滤器,绑定事件,动画
  9. Spring 事务管理总结
  10. python 行为驱动_什么是行为驱动的Python?
  11. 使用nameko框架实现Python项目微服务化
  12. mac 不显示 外接屏幕_macbook pro 外接显示器显示不完全
  13. 单交换机的VLAN的配置
  14. 1308:【例1.5】高精除
  15. 如何修复iPhone、iPad 或 Mac 上的 AirDrop 连接问题?
  16. 如何使用cygwin在windows下Linux编程
  17. excel设定备选值
  18. Github图片无法显示解决(Mac版)
  19. MySQL的MHA高可用配置及故障切换
  20. 2、安装VisualStudio、Unity3D、下载MRTK

热门文章

  1. Adobe Dreamweaver 序列号 过期
  2. IView 给Submenu增加click事件失效解决方案
  3. 牌面”养成记9:打好牌,从做好这60件事开始[中]
  4. C++之RapidJSON解析json数据
  5. Python 注释块
  6. iOS开发crash信息符号表解析
  7. python-alipay-sdk
  8. 阿里天池服装标签识别比赛新人赛练习经验心得 Tianchi FashionAI Attributes Recognition of Apparel
  9. Niushop开源商城系统bug多?不适合商用?
  10. 孕期饮食 切不可多吃甜食