[BZOJ4810][Ynoi2017]由乃的玉米田 莫队+bitset
4810: [Ynoi2017]由乃的玉米田
Time Limit: 30 Sec Memory Limit: 256 MB
Submit: 815 Solved: 399
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 1 2 3 4
2 1 1 2
1 1 2 2
3 1 1 1
3 5 5 16
1 2 3 4
Sample Output
yumi
yuno
yuno
yumi
HINT
Source
By 佚名提供
考虑莫队
把a[i]和maxn-b[i]压到bitset上
加减用bitset左移查询
乘除直接暴力
……
1 #include<iostream> 2 #include<cstring> 3 #include<cstdlib> 4 #include<cstdio> 5 #include<cmath> 6 #include<algorithm> 7 #include<bitset> 8 #define maxn 100005 9 using namespace std; 10 int read() { 11 int x=0,f=1;char ch=getchar(); 12 for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-1; 13 for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0'; 14 return x*f; 15 } 16 int belong[maxn],size; 17 struct data { 18 int t,x,y,ask,id,ans; 19 bool operator <(const data tmp) { 20 if(belong[x]==belong[tmp.x]) return belong[x]%2?y>tmp.y:y<tmp.y; 21 return belong[x]<belong[tmp.x]; 22 } 23 }q[maxn]; 24 bool cmp1(data t1,data t2) { 25 if(belong[t1.x]==belong[t2.x]) return belong[t1.x]%2?t1.y>t2.y:t1.y<t2.y; 26 return belong[t1.x]<belong[t2.x]; 27 } 28 bool cmp2(data t1,data t2) { 29 return t1.id<t2.id; 30 } 31 bitset<maxn> a1,b1,c; 32 int a[maxn]; 33 int n,m; 34 int cnt[maxn]; 35 void update(int x,int f) { 36 if(f) cnt[a[x]]++; 37 else cnt[a[x]]--; 38 if(cnt[a[x]]) a1[a[x]]=1,b1[maxn-5-a[x]]=1; 39 else a1[a[x]]=0,b1[maxn-5-a[x]]=0; 40 } 41 void work() { 42 int l=1,r=0; 43 for(int i=1;i<=m;i++) { 44 for(;r<q[i].y;r++) update(r+1,1); 45 for(;r>q[i].y;r--) update(r,0); 46 for(;l<q[i].x;l++) update(l,0); 47 for(;l>q[i].x;l--) update(l-1,1); 48 if(q[i].t==1) { 49 c=(a1>>q[i].ask)&a1; 50 q[i].ans=c.any(); 51 } 52 else if(q[i].t==2) { 53 c=(b1>>abs(maxn-5-q[i].ask))&a1; 54 q[i].ans=c.any(); 55 } 56 else { 57 int tmp=sqrt(q[i].ask); 58 for(int j=1;j<=tmp;j++) { 59 if(q[i].ask%j==0) { 60 if(cnt[j]&&cnt[q[i].ask/j]) {q[i].ans=1;break;} 61 } 62 } 63 } 64 } 65 } 66 67 int main() { 68 n=read(),m=read(); 69 size=sqrt(n); 70 for(int i=1;i<=n;i++) belong[i]=i/size; 71 for(int i=1;i<=n;i++) a[i]=read(); 72 for(int i=1;i<=m;i++) q[i].t=read(),q[i].x=read(),q[i].y=read(),q[i].ask=read(),q[i].id=i; 73 sort(q+1,q+m+1,cmp1); 74 work(); 75 sort(q+1,q+m+1,cmp2); 76 for(int i=1;i<=m;i++) if(q[i].ans)printf("yuno\n");else printf("yumi\n"); 77 } 78
View Code
转载于:https://www.cnblogs.com/wls001/p/8376368.html
[BZOJ4810][Ynoi2017]由乃的玉米田 莫队+bitset相关推荐
- BZOJ4810:[YNOI2017]由乃的玉米田(莫队,bitset)
Description 由乃在自己的农田边散步,她突然发现田里的一排玉米非常的不美.这排玉米一共有N株,它们的高度参差不齐. 由乃认为玉米田不美,所以她决定出个数据结构题 这个题是这样的: 给你一个序 ...
- BZOJ - 4810 [Ynoi2017]由乃的玉米田 莫队算法 + bitset 大暴力
大家都很强, 可与之共勉 . 4810: [Ynoi2017]由乃的玉米田 Time Limit: 30 Sec Memory Limit: 256 MB Description 由乃在自己的农田边散 ...
- BZOJ4810: [Ynoi2017]由乃的玉米田
[传送门:BZOJ4810] 简要题意: 给出n个数,给出m种询问: 1 l r x判断是否在区间l到r中能选出两个数的差为x 2 l r x判断是否在区间l到r中能选出两个数的和为x 3 l r x ...
- BZOJ4810 [Ynoi2017]由乃的玉米田
对每个区间维护一下这个区间每个数有没有,用bitset压一下,这个用莫队跑出来,然后就能判加减合不合法了 乘的话根号枚举一下就行了 #include<iostream> #include& ...
- 4810: [Ynoi2017]由乃的玉米田
4810: [Ynoi2017]由乃的玉米田 Time Limit: 30 Sec Memory Limit: 256 MB Submit: 464 Solved: 222 [Submit][St ...
- BZOJ 4810 [Ynoi2017]由乃的玉米田(莫队+bitset)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4810 [题目大意] 给出一个数列,有三种区间查询, 分别查询区间是否存在两个数乘积为x ...
- P5355-[Ynoi2017]由乃的玉米田【莫队,bitset,根号分治】
正题 题目链接:https://www.luogu.com.cn/problem/P5355 顺带一提的是P3674 小清新人渣的本愿是这题的弱化版,提交就可以A 题目大意 nnn个数字,询问 一个区 ...
- BZOJ4939[Ynoi2016]掉进兔子洞(莫队+bitset)
题目链接 BZOJ 洛谷 扯点别的 听说这是比较亲民的一道Ynoi,于是我就去摸了一下,于是一个晚上就没了--不过至少还是学到了\(bitset\)维护可重集合的方法,以及当空间开不下时分组处理询问的 ...
- P4688-[Ynoi2016]掉进兔子洞【莫队,bitset】
正题 题目链接:https://www.luogu.com.cn/problem/P4688 题目大意 给出一个长度为nnn的序列aaa. 然后mmm次询问给出三个区间,求这三个区间构成的可重集删去交 ...
- P3674 小清新人渣的本愿 (莫队 + bitset)
题目链接: P3674 小清新人渣的本愿 大致题意 给定一个长度为 n n n的序列, 有 m m m次询问操作. 1 l r x 表示询问 [ l , r ] [l, r] [l,r]是否存在 a ...
最新文章
- 【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 同时注入普通方法、静态方法、构造方法 )
- 解决kubectl get pods时 No resources found.问题
- 用map实现数据字典功能
- python调用窗口_如何调用一个函数并在另一个窗口中打开?
- 网络中间设备路在何方
- Android之TextView属性详解
- 如何理性客观地看待人工智能热潮
- RL笔记 : Lecture 3: Model-free Prediction and Control
- 无人机在倾斜摄影时丢片的解决方案
- Cora数据集介绍+python读取
- Johnson 算法 洛谷P5905
- 计算机xp系统ie8,教你能够完全windows XP下IE8的方法
- Unity3D 制作按钮开关,旋钮开关,摇杆手柄 插件
- 网站建设备案和不备案的一些疑惑问题大全
- linux环境下java输出乱码,linux java 输出乱码问题
- python反序数函数_python逆序函数
- 从车辆工程到大数据开发,我经历了什么?
- 简单三步轻松恢复Mac电脑丢失的文件
- android studio找不到aar,AndroidStudio 引入aar时常见问题
- c8815 android os,华为c8815刷机包 乐蛙OS5 完美版 0823期
热门文章
- 【渝粤教育】国家开放大学2018年秋季 0313-22T促销策划与实战 参考试题
- 21秋期末考试电子商务概论10250k2
- 【渝粤教育】国家开放大学2018年秋季 0689-21T老年心理健康 参考试题
- [渝粤教育] 西南科技大学 西方经济学 在线考试复习资料(3)
- 【Python实例第36讲】一个高斯过程回归的例子
- 23种设计模式(二十一)数据结构之职责链
- Python进阶(一)Python中的内置函数、内置方法、私有属性和方法详解
- 计算机视觉实战(十七)OpenCV的DNN模型 (附完整代码)
- deal.II链接PETSc过程记录
- Flutter从零到∞学习笔记