• LuoguP4462 [CQOI2018]异或序列

    LuoguP4462 [CQOI2018]异或序列

    题面

    链接

     

    题解

    异或的逆运算就是其本身

    即a xor b = c 即 c xor a = b

    对于本题,

    记录一下1-i的异或和为sum[i]

    显然L~R的异或和就为sum[L-1] xor sum[R]

    若为异或和为K即满足sum[R] xor K = sum[L-1]

    开个桶,莫队即可

    注意一下莫队处理时删除一个数时的顺序就好了

    #include<bits/stdc++.h>
    
    using namespace std;
    
    #define LL long long
    
    inline LL read()
    {
        LL f = 1,x = 0;
        char ch;
        do
        {
            ch = getchar();
            if(ch == -) f=-1;
        }while(ch<0||ch>9);
        do
        {
            x = (x<<3) + (x<<1) + ch - 0;
            ch = getchar();
        }while(ch>=0&&ch<=9);
        return f*x;
    }
    
    const int MAXN = 100000 + 10;
    
    struct Query
    {
        int l;
        int r;
        int id;
    }q[MAXN];
    
    
    
    int n,m,k,sz;
    int a[MAXN],sum[MAXN];
    int bol[MAXN];
    int ans[MAXN];
    int cnt[MAXN];
    
    inline bool cmp(Query a1,Query a2)
    {
        return (bol[a1.l]^bol[a2.l])?bol[a1.l]<bol[a2.l]:(bol[a1.l]&1)?a1.r<a2.r:a1.r>a2.r;
    }
    
    int main()
    {
        n = read();m=read();k=read();
        sz = sqrt(2*n/3);
        for(int i=1;i<=n;i++) a[i]=read(),bol[i]=(i-1)/sz+1;
        for(int i=1;i<=n;i++) sum[i]=sum[i-1]^a[i];
        for(int i=1;i<=m;i++)
        {
            q[i].id = i;
            q[i].l = read() - 1;
            q[i].r = read();
        }
        sort(q+1,q+m+1,cmp);
        int l = 1,r = 0;         
        int res = 0;
        for(int i=1;i<=m;i++)
        {
    
            while(r<q[i].r) r++,res+=cnt[sum[r]^k],cnt[sum[r]]++;
            while(r>q[i].r) cnt[sum[r]]--,res-=cnt[sum[r]^k],r--;
            while(l<q[i].l) cnt[sum[l]]--,res-=cnt[sum[l]^k],l++;
            while(l>q[i].l) l--,res+=cnt[sum[l]^k],cnt[sum[l]]++;
            ans[q[i].id] = res;
        }
        for(int i=1;i<=m;i++) 
        {
            cout<<ans[i]<<endl;
        }
    }
    相关文章
    相关标签/搜索
    王中王蓝月亮930三肖三码 临城县| 马边| 建湖县| 历史| 周宁县| 皋兰县| 陇南市| 额尔古纳市| 砚山县| 封开县| 肇州县| 闽清县| 兰溪市| 清丰县| 望都县| 准格尔旗| 三台县| 辉南县| 泾川县| 铜川市| 彭泽县| 平南县| 武鸣县| 宁国市| 漳州市| 建德市| 桦南县| 巧家县| 宁明县| 江孜县| 江都市| 巫山县| 阿尔山市| 平舆县| 玉树县| 孟村| 富川| 桑植县| 浠水县| 维西| 安丘市| 桂林市| 东台市| 买车| 宜川县| 西吉县| 龙江县| 西乌珠穆沁旗| 定日县| 勐海县| 和平县| 罗源县| 东至县| 定州市| 桐梓县| 民县| 招远市| 察隅县| 贵定县| 藁城市| 塘沽区| 调兵山市| 湘阴县| 麻江县| 平昌县| 承德市| 凤山县| 肃宁县| 赤水市| 辽源市| 富顺县| 苗栗县| 耒阳市| 庆阳市| 卓资县| 晋江市| 论坛| 凌源市| 涞水县| 武威市| 十堰市| 正镶白旗| 灵石县| 岑溪市| 错那县| 辛集市| 铜陵市| 永昌县| 黑龙江省| 依安县| 邢台市| 闽侯县| 郑州市| 互助| 镇江市| 商都县| 禹州市| 新晃| 镇坪县| 大安市| 龙海市| 茌平县| 肇源县| 邮箱| 焉耆| 铜梁县| 庆安县| 普洱| 朝阳区| 广河县| 淄博市| 桐梓县| 五台县| 慈溪市| 淮滨县| 林州市| 闽清县| 南汇区| 旬邑县| 怀远县| 延寿县| 邯郸县| 射洪县| 赫章县| 朔州市| 南昌县| 河南省| 凭祥市| 灵台县| 盐池县| 宽甸| 浦城县| 淮北市| 延庆县| 大邑县| 阿瓦提县| 闽侯县| 凤庆县| 赤城县| 襄汾县| 宁化县| 普陀区| 义马市| 华宁县| 长葛市| 克东县| 广宗县| 富锦市| 顺义区| 丹寨县| 吴江市| 临桂县| 凌云县| 东城区| 广安市| 肃宁县| 瓦房店市| 三河市| 开原市| 乐平市| 望都县| 马边| 宁津县| 土默特左旗| 安平县| 祁阳县| 延津县| 格尔木市| 清水县| 宁城县| 偃师市| 准格尔旗| 吴桥县| 宁远县| 彭山县| 淮北市| 灵丘县| 会宁县| 黔江区| 玉门市| 无锡市| 平果县| 武安市| 榆树市| 东山县| 博兴县| 乌海市| 平邑县| 莲花县| 宝坻区| 株洲市| 虞城县| 吉林省| 福建省| 甘孜县| 道真| 兴宁市| 阿图什市| 年辖:市辖区| 寻甸| 株洲县| 平舆县| 偃师市| 仪陇县| 进贤县| 石棉县| 张家港市| 桑植县| 昔阳县| 苍溪县| 顺平县| 密山市| 上犹县| 平武县| 甘泉县| 隆德县| 崇信县| 肃北| 双柏县| 阳东县| 龙井市| 迁安市| 永福县| 平罗县| 武陟县| 武川县| 福州市| 筠连县| 镇原县| 陇西县| 阆中市| 饶平县| 沂水县| 永泰县| 婺源县| 北票市| 文昌市| 肥东县| 六盘水市| 巨鹿县| 孝感市| 阳泉市| 丰镇市| 鄂伦春自治旗| 宁明县| 庆云县| 社旗县| 淅川县| 抚州市| 图片| 龙泉市| 综艺| 民和| 石棉县| 齐齐哈尔市| 普洱| 钟祥市| 会泽县| 康乐县| 滦平县| 闽侯县| 海宁市| 邢台市| 达日县| 尼木县| 新邵县| 徐水县| 涟水县| 贵南县| 安国市| 咸丰县| 宜宾县| 遵义县| 大兴区| 曲周县| 芜湖市| 搜索| 颍上县| 平谷区| 姚安县| 驻马店市| 务川| 客服| 大丰市| 夹江县| 洛川县| 额敏县| 余干县| 沁阳市| 尉犁县| 东光县| 南江县| 北流市| 饶河县| 田东县| 泗洪县| 象州县| 彭水| 鄂尔多斯市| 洱源县| 鄯善县| 桦南县| 闽清县| 灯塔市| 太和县| 铜鼓县| 蕲春县| 双辽市| 中西区| 铜梁县| 聊城市| 凉城县| 沅陵县| 顺义区| 方正县| 宜川县| 上杭县| 美姑县| 马边| 施甸县| 泾阳县| 三亚市| 蓬安县| 浦城县| 绥阳县| 泽州县| 景洪市| 巨鹿县| 安塞县| 彩票| 宜川县| 搜索| 张掖市| 桑日县| 武乡县| 六枝特区| 鄂伦春自治旗| 利辛县| 旅游| 马鞍山市| 波密县| 瑞昌市| 吴忠市| 固镇县| 苍梧县| 甘南县| 汉中市| 库车县| 青海省| 印江| 上林县| 义马市| 尉氏县| 定兴县| 鲜城| 泌阳县| 安义县| 乐平市| 余姚市| 合水县| 南丰县| 衡东县| 克拉玛依市| 邹城市| 会宁县| 河曲县| 饶阳县| 灌南县| 突泉县| 玛曲县| 武冈市| 临西县| 张掖市| 大田县| 镇坪县| 景德镇市| 白银市| 许昌县| 乐山市| 林芝县| 滦南县| 武强县| 莎车县| 绥宁县| 怀远县| 盱眙县| 铜陵市| 策勒县| 绥滨县| 南澳县| 盐池县| 修武县| 梅河口市| 宝丰县| 黄梅县| 独山县| 崇州市| 平原县| 即墨市| 确山县| 龙井市| 沧源| 商河县| 固原市| 南昌市| 隆安县| 黎平县| 环江| 当雄县| 福泉市| 甘德县| 伊宁市| 河津市| 阜新| 玉林市| 札达县| 淅川县| 二连浩特市| 林口县| 邻水| 柯坪县| 绩溪县| 达日县| 农安县| 集安市| 宝山区| 樟树市| 高碑店市| 重庆市| 晴隆县| 浦县| 慈溪市| 绥中县| 米脂县| 阜阳市| 南溪县| 平乡县| 五家渠市| 六安市| 柘城县| 南城县| 新乡县| 竹溪县| 河池市| 乐陵市| 出国| 金坛市| 梧州市| 抚顺县| 彝良县| 高州市| 讷河市| 孟州市| 措美县| 迁西县| 莱阳市| 玉山县| 靖安县| 绵阳市| 合江县| 新龙县| 曲松县| 榕江县| 治县。| 宿迁市| 昌都县| 通许县| 靖州| 新蔡县| 金昌市| 闽侯县| 南昌市| 德保县| 永德县| 库车县| 五寨县| 高雄市| 外汇| 古蔺县| 山东省| 海原县| 麻城市| 太保市| 浦东新区| 五华县| 太白县| 沧源| 鹤庆县| 图木舒克市| 兴业县| 蒙山县| 大英县| 诸暨市| 宁城县| 南木林县| 宣城市| 铜川市| 洛宁县| 南郑县| 包头市| 梓潼县| 庆城县| 延边| 泰州市| 永新县| 英德市| 儋州市| 临海市| 湖州市| 高清| 嘉黎县| 罗甸县| 罗江县| 怀宁县| 呼伦贝尔市| 新晃| 江西省| 内江市| 南涧| 三河市| 东城区| 嫩江县| 平阴县| 罗山县| 常宁市| 丰县| 泽库县| 中江县| 龙江县| 广南县| 启东市| 永州市| 万荣县| 平果县| 合作市| 云和县| 乐业县| 榆林市| 甘泉县| 重庆市| 塔城市| 台江县| 湛江市| 壶关县| 荔浦县| 克山县| 中西区| 高州市| 合阳县| 磴口县| 顺平县| 海安县| 固安县| 交城县| 朝阳县| 邯郸市| 大埔区| 米林县| 陆川县| 卓资县| 广河县| 小金县| 女性| 渝中区| 定远县| 双桥区| 边坝县| 麻江县| 霍城县| 永年县| 逊克县| 阳原县| 兰州市| 岳普湖县| 丰都县| 沂水县| 穆棱市| 景泰县| 通山县| 隆尧县| 南阳市| 贵港市| 游戏| 论坛| 乌拉特前旗| 大方县| 从化市| 万载县| 青浦区| 剑川县| 平潭县| 西吉县| 湘阴县| 晋中市| 黎平县| 白山市| 增城市| 岗巴县| 溧水县| 咸宁市| 竹溪县| 万盛区| 荆州市| 湖北省| 山东省| 绍兴市| 磐石市| 科技| 永城市| 开鲁县| 白河县| 武冈市| 海原县| 全椒县| 安吉县| http://www.jx1870estizatev.fun http://jx1870horsev.fun http://www.jx1870handlev.fun http://wap.jx1870fallv.fun http://m.jx1870finev.fun http://m.hz0j2r0vo.fun http://wap.jx1870flightv.fun http://m.jx1870lackv.fun http://wap.jx1870grayv.fun http://wap.jx1870equalv.fun http://wap.jx1870factorv.fun http://www.hz0j2r7vo.fun http://www.jx1870husbandv.fun http://www.jx1870golfv.fun http://m.jx1870gasv.fun http://www.jx1870fairv.fun http://m.jx1870finishv.fun http://hz0j0r3vo.fun