cogs 2569. [東方] 博丽灵梦 梦想妙珠

二次联通门 : cogs 2569. [東方] 博丽灵梦 梦想妙珠

/*
    cogs 2569. [東方] 博丽灵梦 梦想妙珠

    莫队水过。。

    好久没一遍AC了。。

    卡线上榜2333
*/
#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cmath>

char Buf[100000001], *buf = Buf;
int BUF = 100000001;

void read (int &now)
{
    for (now = 0; !isdigit (*buf); ++ buf);
    for (; isdigit (*buf); now = now * 10 + *buf - ‘0‘, ++ buf);
}

#define Max 100000

int belong[Max];

struct Data
{
    int l, r, c, Id;

    bool operator < (const Data &now) const
    {
        return belong[this->l] == belong[now.l] ? this->r < now.r : belong[this->l] < belong[now.l];
    }
};

int count[Max << 1 | 1];

Data query[Max | 1];
int number[Max | 1];

int Answer[Max];

#define Cogs

int main (int argc, char *argv[])
{

#ifdef Cogs

    freopen ("mengxiangmiaozhu.in", "r", stdin);
    freopen ("mengxiangmiaozhu.out", "w", stdout);
    fread (buf, 1, BUF, stdin);

#endif

    int N, M;
    read (N);
    register int i;
    int x;

    int K_Size = sqrt (N);

    for (i = 1; i <= N; ++ i)
        read (number[i]), belong[i] = (i + 1) / K_Size;

    read (M);

    for (i = 1; i <= M; ++ i)
    {
        read (query[i].l);
        read (query[i].r);
        read (query[i].c);
    }

    for (i = 1; i <= M; ++ i)
        query[i].Id = i;

    std :: sort (query + 1, query + 1 + M);

    int l = 1, r = 0;

    for (i = 1; i <= M; ++ i)
    {

        for (; l < query[i].l; -- count[number[l]], ++ l);
        for (; l > query[i].l; -- l, ++ count[number[l]]);
        for (; r < query[i].r; ++ r, ++ count[number[r]]);
        for (; r > query[i].r; -- count[number[r]], -- r);

        Answer[query[i].Id] = count[query[i].c];
    } 

    for (i = 1; i <= M; ++ i)
        printf ("%d\n", Answer[i]);

    return 0;
}
时间: 2024-12-14 18:55:18

cogs 2569. [東方] 博丽灵梦 梦想妙珠的相关文章

cogs 942. [東方S3] 比那名居天子

二次联通门 : cogs 942. [東方S3] 比那名居天子 /* cogs 942. [東方S3] 比那名居天子 二分水题 二分所求区间长度 判断后缩小范围即可 */ #include <cstring> #include <cstdio> #define Max 1000000 void read (int &now) { now = 0; register char word = getchar (); while (word < '0' || word &g

cogs 944. [東方S3] 藤原妹红

二次联通门 : cogs 944. [東方S3] 藤原妹红 /* cogs 944. [東方S3] 藤原妹红 最小生成树 + 树形dp 首先对原图跑最下生成树 后建出一棵树 在树上进行dp 先走到叶子节点, 顺便处理出距离 最终回溯时更新答案 */ #include <algorithm> #include <cstdio> #define INF 1e30 void read (int &now) { register char word = getchar (); fo

997. [東方S2] 射命丸文

997. [東方S2] 射命丸文 二维前缀和 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define maxn 2333 4 int n,m,r,c; 5 int num[maxn][maxn],f[maxn][maxn],ans; 6 char ch; 7 inline void read(int &now) 8 { 9 ch=getchar(); int f=1; now=0; 10 while(ch>'9'||c

对于有关东方的题目的整理。。

东方赛高 此为总贴 收录以东方project为背景的题目. 1. luogu P3345 [ZJOI2015]幻想乡战略游戏 动态点分治(暴力水过) 2. luogu P3344 [ZJOI2015]幻想乡WIFI搭建计划 3. luogu P3343 [ZJOI2015]地震后的幻想乡 4. luogu P3346 [ZJOI2015]诸神眷顾的幻想乡 5. luogu P3347 [ZJOI2015]醉熏熏的幻想乡 6. luogu P1726 上白泽慧音 求强连通分量, 输出最大强连通分量

明天补完

/* cogs 943. [東方S3] 铃仙?优昙华院?稻叶 概率dp 貌似做麻烦了 邻接矩阵和链式前向星都用上了... f[pos][i][j]表示 第i秒 在i点 上一个经过的点是j 方程: f[pos][i][j]=Σf[pos-1][j][k]*(__out[j]+1-(map[j][k]==1))+f[pos-1][i][j]*(__out[i]+1-(map[i][j]==1) 前面的求和考虑的是上一秒从其他的一个节点走过来 后面的考虑的是上一秒选择停留在原地 复杂度O(T * N^

Tark钱包面向全球招募优秀上币方,千亿财富等你来拿!

Tark钱包全球首创双形态冷钱包安全防护模式,技术上实现重大突破,应用上充分体现区块链精神.Tark钱包两大超级特色,六大优势 具备匿名性和安全性两大超级特色,多币种.秒速.多帐户系统.离线签名.多重验证.开放第三方生态六大优势.支持全部通证资产的支付.存储和交易,同时融合游戏.社群.直播等多种应用,是一个多功能区块链跨链钱包交易所. Tark钱包直击行业痛点 针对目前很多交易平台上币条件苛刻,优秀项目难以上币的情况.Tark直击行业痛点,以技术为导向,打造去中心化交易所,在为用户提供更优质通证

去中心化交易所大势所趋,Tark诚邀上币方

钱包由于满足了用户管理通证的刚需,所以用户量可以做到很高,今天币圈投资者基本上几乎没有人不知道Tark钱包的.随着去中心化交易所技术的不断改善和提高,我们有理由相信钱包内置去中心化交易平台会是一个大趋势,一旦人们的交易需求被满足,那么人们极有可能会抛弃中心化交易所.br/>![](https://s1.51cto.com/images/blog/201905/24/91bea2e84d16ca24060657b1c3f5ec7a.jpg?x-oss-process=image/watermark

繁體字顯示問題

宋體筆畫設計簡單,加之hint的作用,所以實用性很高.MingLiU筆畫很有藝術性,hint不好做,所以必須用大字號才能看清楚其細節.因為電腦顯示技術的限制,導致其在普通字體大小下,筆畫基本上是貼在一起,非常不實用.日文有很多字體,主流是哪種我也不知道,不過總體的觀感就是既美觀又實用.簡體字設置成宋體13px,已經基本上能看清楚,正文是16px,效果更好,可以打80分.繁體字設置微軟正黑體,或者宋體,在16px就差強人意了.繁體字設置成MingLiU,如果要求筆畫不發虛,拐角能看清楚,則最少需要

java 翻盖hashCode()深入探讨 代码示例

package org.rui.collection2.hashcode; /** * 覆盖hashcode * 设计HashCode时最重要的因素 就是:无论何时,对同一个对象调用HashCode都应该产生同样的值, * 如果你的HashCode方法依赖于对象中易变的数据,用户就要当心了,因为此数据发生变化 时 * HashCode就会生成一个不同的散列码,相当于产生一个不同的健 * 此外 也不应该使HashCode依赖于具有唯一性的对象信息,尤其是使用this的值,这只能很糟糕, * 因为这