题目传送门


我感觉这种题没必要扯淡题目大意了,没啥用。

暴力过掉,擦了个边。

主要是讲一下这道题我用到的卡常。

首先,0,1标记我用的位运算,位运算符跑的要比正常的+,-,×,÷,true,false快。

其次,我使用了

while(isspace(op=fgetc(stdin)));
ungetc(op,stdin);

来吃字符。

个人感觉比while快。

快读当然不可少,位运算快读更快。

inline int read()
{
short x=0;
char ch=getchar();
while(ch<'0'||ch>'9')
ch=getchar();
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x;
}

这些东西足以卡过洛谷的超水数据,不过还是建议大家打一下正解。

另外,今天从同学那里学到了这个:

const int L=1<<20|1;
char buffer[L],*S,*T;
#define getchar() ((S==T&&(T=(S=buffer)+fread(buffer,1,L,stdin),S==T))?EOF:*S++)

好像是能快不少,不过需要慎用,这个我也用不熟练,在此就不做过多说明,出现问题概不负责。


代码时刻

#include<cstdio>
#include<cstring>
#include<cctype>
int a[10001],x,y,ans;
int wzc[1000001];
char op;
inline int read()
{
int x=0;
char ch=getchar();
while(ch<'0'||ch>'9')
ch=getchar();
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x;
}
int main()
{
x=read();
for(register int i=0;i<=x;++i)a[i]=read();
while(a[0]--)
{
while(isspace(op=fgetc(stdin)));
ungetc(op,stdin);
op=getchar();
x=read();
y=read();
if(op=='Q')
{
ans=0;
memset(wzc,0,sizeof(wzc));
for(register int i=x;i<=y;++i)
ans+=wzc[a[i]]^1,wzc[a[i]]|=1;
printf("%d\n",ans);
}
else a[x]=y;
}
return 0;
}

当然是卡常的代码,哈哈哈


rp++

[BZOJ2120]:数颜色(分块?)的更多相关文章

  1. bzoj2120 数颜色 分块

    分块大法好 orz 处理出每个点的前驱和后继位置. 暴力修改,查询就在每个整块里查询pre<l的,暴力跑两边就好了 #include<cstdio> #include<cstr ...

  2. Luogu 1903 数颜色 | 分块

    Luogu 1903 数颜色 | 分块 莫队不会啊-- 这道题直接分块也能卡过! 这道题的做法很有趣:对于每个位置i,记录它的颜色a[i]上一次出现的位置,记为pre[i]. 这样在查询一个区间[l, ...

  3. BZOJ2120 数颜色 【带修莫队】

    BZOJ2120 数颜色 Description 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔到 ...

  4. 【BZOJ-2453&2120】维护队列&数颜色 分块 + 带修莫队算法

    2453: 维护队列 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 653  Solved: 283[Submit][Status][Discuss] ...

  5. BZOJ 2120: 数颜色 分块

    2120: 数颜色 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php? ...

  6. bzoj2120 数颜色 莫队 带修改

    [bzoj2120]数颜色 Description 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔 ...

  7. BZOJ2120 数颜色(树套树)

    B. 数颜色 题目描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令:1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色 ...

  8. BZOJ2120 数颜色 【带修改莫队】

    2120: 数颜色 Time Limit: 6 Sec  Memory Limit: 259 MB Submit: 6579  Solved: 2625 [Submit][Status][Discus ...

  9. BZOJ2120 数颜色 —— 待修改莫队

    题目链接:https://vjudge.net/problem/HYSBZ-2120 2120: 数颜色 Time Limit: 6 Sec  Memory Limit: 259 MBSubmit:  ...

  10. [Bzoj2120]数颜色 (非正解 )(莫队)

    2120: 数颜色 Time Limit: 6 Sec  Memory Limit: 259 MBSubmit: 6286  Solved: 2489[Submit][Status][Discuss] ...

随机推荐

  1. Tomcat黑窗口改变Title

    start cmd /K " && call startup.bat && pause && exit " 设置Title之后,再手 ...

  2. input required字段;django input输入框不填写会自动变红如何修改

    前端页面中,input不输入任何内容时,点击submit时,未填写的input会标红框,有些人还会有"该字段必填的字样"!! 什么鬼,你妹的,js也见不到,css3动画也见不到,怎 ...

  3. 深入分析 JDK8 中 HashMap 的原理、实现和优化

    HashMap 可以说是使用频率最高的处理键值映射的数据结构,它不保证插入顺序,允许插入 null 的键和值.本文采用 JDK8 中的源码,深入分析 HashMap 的原理.实现和优化.首发于微信公众 ...

  4. Moctf--没时间解释了

    记录一道简单的题目. 打开后就张这个样子,,然后看到url为index2.php---->所以我们把它改为index.php(用burp抓包才行,这是一个302跳转). 看到它提示我们要uplo ...

  5. 3dmath复习随笔

    左手坐标系与右手坐标系 旋转正方向,下图是右手系,左手系同理 向量 点乘: 叉乘: dx是左手系,使用行向量,vABC,乘矩阵用左乘 opengl是右手系,使用列向量,CBAv,乘矩阵用右乘 u3d貌 ...

  6. 1856: [Scoi2010]字符串(Catalan数)

    1856: [Scoi2010]字符串 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 2117  Solved: 1211[Submit][Status] ...

  7. 第十一篇 .NET高级技术之内置泛型委托

    Func.Action 一.如果不是声明为泛型委托 委托的类型名称不能重载,也就是不能名字相同类型参数不同 二..Net中内置两个泛型委托Func.Action(在“对象浏览器”的mscorlib的S ...

  8. LuoguP2657 [SCOI2009]windy数 【数位dp】By cellur925

    题目传送门 题目大意:在A和B之间,包括A和B,总共有多少个不含前导零且相邻两个数字之差至少为2的正整数? 显然是数位dp啦=w=. 显然与上一位有关,我们$dfs$的时候就要记录$pre$.因为这是 ...

  9. 148 Sort List 链表上的归并排序和快速排序

    在使用O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序. 详见:https://leetcode.com/problems/sort-list/description/ Java实 ...

  10. DNS练习之正向解析

    配置正向解析: 主机名:sishen63 主机IP:192.168.1.63 操作系统:Red Hat Enterprise Linux Server release 6.5 (Santiago) 安 ...