【bzoj4810】由乃的玉米田
lxl丧心病狂……
首先允许离线的区间询问一看就是莫队。那么我们看下怎么莫队?
不会。
“由乃题多半是不可做的。”于是我看了下题解……好吧果然是bitset
用bitset维护当前出现了哪些数。对于差为x,可以将其左移然后和本身取并集,和为x,我们可以翻转这个bitset,然后左移取并集就好了。对于乘积为x,我们可以暴力,枚举因数判断一下就好了。
还好这个时候的lxl还没有热衷卡常……
#include<bits/stdc++.h>
#define N 100000
#define M 20000005
using namespace std;
struct Query{int k,l,r,x,id;}q[N+5];
int m,n,l,r,s;
int a[N+5],c[N+5],ans[N+5],rt[N+5];
bitset<N+5> now1,now2;
char DR[M+10],*P=DR;
inline bool operator<(Query x,Query y){
return rt[x.l]==rt[y.l]?rt[x.l]&1?x.r<y.r:x.r>y.r:rt[x.l]<rt[y.l];
}
int read(){
int f=1,x=0;char ch;
do{ch=getchar();if(ch=='-')f=-1;}while(ch<'0'||ch>'9');
do{x=x*10+ch-'0';ch=getchar();}while(ch>='0'&&ch<='9');
return f*x;
}
inline void init(){
n=read();m=read();s=(int)sqrt(n);
for(register int i=1;i<=n;++i)a[i]=read();
for(register int i=1;i<=n;++i)rt[i]=(i-1)/s+1;
for(register int i=1;i<=m;++i){
q[i].k=read();q[i].l=read();q[i].r=read();
q[i].x=read();q[i].id=i;
}
sort(q+1,q+m+1);l=1;r=0;
}
inline void add(int x){if(c[x]++==0)now1[x]=1,now2[N-x]=1;}
inline void del(int x){if(--c[x]==0)now1[x]=0,now2[N-x]=0;}
int main(){
init();
for(int i=1;i<=m;i++){
for(;q[i].l<l;)add(a[--l]);
for(;q[i].l>l;)del(a[l++]);
for(;q[i].r<r;)del(a[r--]);
for(;q[i].r>r;)add(a[++r]);int k=q[i].k,x=q[i].x;
if(k==1){if((now1&(now1<<x)).any())ans[q[i].id]=1;}
else if(k==2){if((now1&(now2>>(N-x))).any())ans[q[i].id]=1;}
else{
for(int j=1;j*j<=x;j++)
if(!(x%j))if(now1[j]&&now1[x/j]){ans[q[i].id]=1;break;}
}
}
for (int i=1;i<=m;i++)if(ans[i])puts("yuno");else puts("yumi");
return 0;
}
【bzoj4810】由乃的玉米田的更多相关文章
- 【BZOJ4810】[Ynoi2017]由乃的玉米田 bitset+莫队
[BZOJ4810][Ynoi2017]由乃的玉米田 Description 由乃在自己的农田边散步,她突然发现田里的一排玉米非常的不美.这排玉米一共有N株,它们的高度参差不齐.由乃认为玉米田不美,所 ...
- bzoj4810 [Ynoi2017]由乃的玉米田
Description 由乃在自己的农田边散步,她突然发现田里的一排玉米非常的不美.这排玉米一共有N株,它们的高度参差不齐. 由乃认为玉米田不美,所以她决定出个数据结构题 这个题是这样的: 给你一 ...
- LuoguP3674 小清新人渣的本愿 && BZOJ4810: [Ynoi2017]由乃的玉米田
题目地址 小清新人渣的本愿 [Ynoi2017]由乃的玉米田 所以这两题也就输出不一样而已 题解 这种lxl的题还是没修改操作的题基本就是莫队 分开考虑每个询问 1.减法 \(a-b=x⇒a=b+x\ ...
- BZOJ4810:[YNOI2017]由乃的玉米田(莫队,bitset)
Description 由乃在自己的农田边散步,她突然发现田里的一排玉米非常的不美.这排玉米一共有N株,它们的高度参差不齐. 由乃认为玉米田不美,所以她决定出个数据结构题 这个题是这样的: 给你一 ...
- 【bzoj4810】【ynoi2018】由乃的玉米田
4810: [Ynoi2017]由乃的玉米田 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 1090 Solved: 524[Submit][Sta ...
- bzoj4810 [Ynoi2017]由乃的玉米田 bitset优化+暴力+莫队
[Ynoi2017]由乃的玉米田 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 917 Solved: 447[Submit][Status][Di ...
- 【bzoj4810】[Ynoi2017]由乃的玉米田 莫队算法+STL-bitset
题目描述 由乃在自己的农田边散步,她突然发现田里的一排玉米非常的不美.这排玉米一共有N株,它们的高度参差不齐. 由乃认为玉米田不美,所以她决定出个数据结构题 这个题是这样的: 给你一个序列a,长度为n ...
- bzoj 3594: [Scoi2014]方伯伯的玉米田 dp树状数组优化
3594: [Scoi2014]方伯伯的玉米田 Time Limit: 60 Sec Memory Limit: 128 MBSubmit: 314 Solved: 132[Submit][Sta ...
- bzoj 3594: [Scoi2014]方伯伯的玉米田
3594: [Scoi2014]方伯伯的玉米田 Time Limit: 60 Sec Memory Limit: 128 MB Submit: 1399 Solved: 627 [Submit][ ...
- [BZOJ]4810: [Ynoi2017]由乃的玉米田
Time Limit: 30 Sec Memory Limit: 256 MB Description 由乃在自己的农田边散步,她突然发现田里的一排玉米非常的不美.这排玉米一共有N株,它们的高度参差 ...
随机推荐
- Linux开发C语言规范
-Iinclude:找头文件目录 ,获取头文件的目录 -C:创建.o文件 .h:文件用来声明函数,即写一个函数名. 如 int add(); int div(); int mul(); .c:文件定义 ...
- hdu 1556 Color the ball (区间更新 求某点值)
Problem Description N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a ...
- linux备忘录-账号管理与ACL权限设定
知识 账号管理中的一些文件结构 /etc/passwd 每一行的内容都为下面结构 账号名称:密码:UID:GID:用户信息说明:家目录:shell ---- UID ---- -- 0 -> 代 ...
- Luogu2570 ZJOI2010 贪吃的老鼠 二分答案+最大流
题目链接:https://www.luogu.org/problemnew/show/P2570 题意概述: 好像没什么好概述的.....很简洁? 分析: 首先想到二分时间,转化成判定性问题,在一定时 ...
- HBase 高可用性
1.Replication 之 Master <--> Master 互备 Master1 (所用zookeeper所处节点 hadoop[01-05] ): -- add_peer '1 ...
- 【转】关于Java并发编程的总结和思考
一.前言 就是想学习Java并发编程了,所以转载一下这篇认为还不错的博客~ 二.正文 编写优质的并发代码是一件难度极高的事情.Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的 ...
- [剑指Offer] 6.旋转数组的最小数字(二分法)
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转 ...
- Delphi中动态创建窗体有四种方式
Delphi中动态创建窗体有四种方式,最好的方式如下: 比如在第一个窗体中调用每二个,主为第一个,第二个设为动态创建 Uses Unit2; //引用单元文件 procedure TForm1.But ...
- 关于HTML中的object元素
<object>元素:它主要用于定义网页中的多媒体,比如音频,视频,Java applets,PDF,Active和Flash.object标签内除了param标签外,其他的内容将在浏览器 ...
- C&C++——标准库
1.什么是C&C++的标准库? C语言被发明出来时并没有什么库函数,随着C语言的流行,越来越多的厂商或者机构组织开始提供C的编译器,并且同时把经常用到的函数封装成“库”的形式发布:不同的组织发 ...