AT1219 歴史の研究

题意

关于回滚莫队见这篇博客

code:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e5+10;
const int maxt=350;
int n,Q,t,num,block,nowl,nowr;
int a[maxn],b[maxn],L[maxt],R[maxt],pos[maxn],cnt[maxn],tmpcnt[maxn];
ll nowans;
ll ans[maxn];
struct Query{int l,r,id;}qr[maxn];
inline bool cmp(Query x,Query y){return (pos[x.l]==pos[y.l])?(x.r<y.r):(pos[x.l]<pos[y.l]);}
inline void erase(int x){cnt[a[x]]--;}
inline void add(int x)
{
    cnt[a[x]]++;
    nowans=max(nowans,1ll*cnt[a[x]]*b[a[x]]);
}
int main()
{
    scanf("%d%d",&n,&Q);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]),b[i]=a[i];
    sort(b+1,b+n+1);num=unique(b+1,b+n+1)-(b+1);
    for(int i=1;i<=n;i++)a[i]=lower_bound(b+1,b+num+1,a[i])-b;
    t=sqrt(n);block=n/t;
    if(n%t)block++;
    for(int i=1;i<=block;i++)L[i]=(i-1)*t+1,R[i]=min(i*t,n);
    for(int i=1;i<=n;i++)pos[i]=(i-1)/t+1;
    for(int i=1;i<=Q;i++)scanf("%d%d",&qr[i].l,&qr[i].r),qr[i].id=i;
    sort(qr+1,qr+Q+1,cmp);
    int last=0;nowl=1,nowr=0;
    for(int i=1;i<=Q;i++)
    {
        if(pos[qr[i].l]==pos[qr[i].r])
        {
            ll res=0;
            for(int j=qr[i].l;j<=qr[i].r;j++)tmpcnt[a[j]]++;
            for(int j=qr[i].l;j<=qr[i].r;j++)res=max(res,1ll*tmpcnt[a[j]]*b[a[j]]);
            for(int j=qr[i].l;j<=qr[i].r;j++)tmpcnt[a[j]]--;
            ans[qr[i].id]=res;
            continue;
        }
        if(pos[qr[i].l]!=last)
        {
            while(nowr>R[pos[qr[i].l]])erase(nowr--);
            while(nowl<R[pos[qr[i].l]]+1)erase(nowl++);
            nowans=0;last=pos[qr[i].l];
        }
        while(nowr<qr[i].r)add(++nowr);
        ll tmp=nowans;int tmpl=nowl;
        while(nowl>qr[i].l)add(--nowl);
        ans[qr[i].id]=nowans;
        while(nowl<tmpl)erase(nowl++);
        nowans=tmp;
    }
    for(int i=1;i<=Q;i++)printf("%lld\n",ans[i]);
    return 0;
}

原文地址:https://www.cnblogs.com/nofind/p/12065821.html

时间: 2024-10-01 07:32:16

AT1219 歴史の研究的相关文章

AT1219 歴史の研究(回滚莫队)

题目描述 IOI国历史研究的第一人——JOI教授,最近获得了一份被认为是古代IOI国的住民写下的日记.JOI教授为了通过这份日记来研究古代IOI国的生活,开始着手调查日记中记载的事件. 日记中记录了连续N天发生的时间,大约每天发生一件. 事件有种类之分.第i天(1<=i<=N)发生的事件的种类用一个整数Xi?表示,Xi?越大,事件的规模就越大. JOI教授决定用如下的方法分析这些日记: 选择日记中连续的一些天作为分析的时间段 事件种类t的重要度为t*(这段时间内重要度为t的事件数) 计算出所有

「AtCoder 1219」歴史の研究

给出 n 个整数 \(x_1, x_2, ...,x_n\) ,询问 [l, r] 中 max{\(x_k\times cnt_{x_k}\)}( \(cnt_i\) 表示 i 出现的次数) Luogu AtCoder 分析 回滚莫队裸题. 当然也可以用分块做,但我一开始打的分块,成功的只过了 4 个点......没调出来...... 顺便贴一下官方题解,虽然是日文 歴史の研究 代码 回滚莫队 //========================= // author:hliwen // dat

【AT1219】历史研究

题面 题目描述 \(IOI\)国历史研究的第一人--\(JOI\)教授,最近获得了一份被认为是古代\(IOI\)国的住民写下的日记.\(JOI\)教授为了通过这份日记来研究古代\(IOI\)国的生活,开始着手调查日记中记载的事件. 日记中记录了连续\(N\)天发生的时间,大约每天发生一件. 事件有种类之分.第\(i\)天\((1<=i<=N)\)发生的事件的种类用一个整数\(X_i\)表示,\(X_i\)越大,事件的规模就越大. \(JOI\)教授决定用如下的方法分析这些日记: 选择日记中连续

2015 12

新浪微博:@晓东日语 欢迎关注,超多日语学习资料在微博@晓东日语 2015 年 12 月 N1 级真题 日语 N1 词汇真题(2015 年 12 月) 問題 1_の言葉の読み方として最もよいものを.1?2?3?4から一つ選びなさい. 1決勝の素晴らしい試合に観客は興奮した. 1こうふん 2きょうふん 3 きょうぶん 4こうぶん 2この説は.鈴木氏が 30 年前に初めて唱えた. 1たたえた 2となえた 3かなえた 4うったえた 3この地域における主要な産業の変遷について調べた 1へんさん 2へんさ

史上一流的好书都在这里!

阅读应该是伴随我们一生的事情,读什么应该是我们毕生都在思考的命题.其实,读书和吃饭一样,也有个人口味,但是最好不要挑食,人生最大的捷径就是,用时间和生命阅读和拥抱了世上一流的书.史上一流的好书都在这里,找来细细品读吧! 第一,文学不可不读.作家通过语言向人的想象力挑战,这是文学的基本功能.比如村上春树,他的题材和写法奇诡诱人,有人把他视为通俗作家中的摇滚乐手,推荐他的<挪威的森林>.<海边的卡夫卡>.卡尔维诺<树上的男爵>.米兰·昆德拉<生命中不能承受之轻>

(转)日语自我介绍大全

日语自我介绍一はじめまして.どうぞ よろしくおねがいします  .私は**と申します. 今年は**歳です.  家族には三人で.両亲と私です. もしよかったら.御社(おんしゃ)に入社したいんです.初次见面,请多多关照!我叫**.今年25岁.家有三口人,父母和我.很希望有机会能到贵公司工作. 日语自我介绍二私は**と申します. 今年は**歳です. 私は江南大学の2013级の卒業生(そつぎょうせい)です.私の専门はfood scienceです.私の性格は外向(がいこう)で.人との付き合いが好きです.私の

10年 12月

微博:@晓东日语 2010 年 12 月 N1 日语能力考试 語彙 問題 1 ___の言葉の読み方として最もよいものを.1?2?3?4から一つ選びなさい. 1 話が本筋からそれてしまった. 1 もとすじ 2 もときん 3 ほんすじ 4 ほんきん 2 友人にピアノの伴奏を頼まれた. 1 はんそう 2 ばんそう 3 はんそ 4 ばんそ 3 名探偵の推理で事件は無事に解決した. 1 しんり 2 すいり 3 どうり 4 ろんり 4 先日の会議では.極めて重要な問題が話し合われた. 1 きわめて 2 あら

2014 12

微博:@晓东日语 2014 年 12 月 N1 真题 1.問題1 の言葉の読み方として最もよいものを.1?2?3?4から一つ選びなさい. これから概略をご説明します. ? がいかく ? きかく ? がいりゃく ? きりゃく 2.面接には.しっかりと準備をして臨みたいと思う. ? からみたい ? いどみたい ? はげみたい ? のぞみたい 3.昨日.督促の電話がかかってきた. ? さいそく ? とくそく ? さいぞく ? とくぞく 4.春になり.辺りには花の香りが漂いはじめた. ? さまよい ?

2015 7

微博:@晓东日语 2015 年 7 月 N1 级真题 問題 1 の言葉の読み方として最もよいものを.1 ? 2 ? 3 ? 4 から一つ選びなさい. 1.申込書にパスポートのコピーを添付した. 1 でんふ 2 てんふ 3 でんぷ 4 てんぷ 2.学生に慕われる教師になりたい. 1 したわれる 2 したがわれる 3 うやまわれる 4 ともなわれる 3.商品に破損があった場合は交換いたします. 1 はいん 2 はそん 3 ひいん 4 ひそん 4.この件は.すでに部長の承諾を得ている. 1 しゅうだく