COGS 2685. 迷妹

★   输入文件:fans.in   输出文件:fans.out   简单对比
时间限制:1 s   内存限制:256 MB

【题目描述】

小钟、小皓和小曦都是著名偶像派OI选手,他们都有很多迷妹。

现在,有n个妹子排成了一行,从左到右编号为1到n。这些妹子中,任意一个都是其中一个人的迷妹。

现在,蒟蒻wyz有Q个问题,第i个问题为:编号在l[i]到r[i]范围内的妹子中,分别有几个小钟的迷妹、小皓的迷妹、和小曦的迷妹。

【输入格式】

输入到fans.in

第一行2个正整数n,Q。

第2行到第n+1行每行一个正整数a[i],描述了第i个妹子是谁的迷妹。a[i]=1表示小钟的迷妹,a[i]=2表示小皓的迷妹,a[i]=3表示小曦的迷妹。

第n+2行到第n+Q+1行,每行2个整数,表示第i个问题。

【输出格式】

输出到fans.out

共Q行,每行3个用空格分开的整数,分别表示对于第i个问题,有多少小钟、小皓、小曦的迷妹。

【样例输入】

6 3

2

1

1

3

2

1

1 6

3 3

2 4

【样例输出】

3 2 1

1 0 0

2 0 1

【提示】

【数据范围】

对于10%的数据,保证1<=n<=10,Q<=10,

对于25%的数据,保证1<=n<=100,Q<=100,

对于45%的数据,保证1<=n<=1000,Q<=1000,

对于100%的数据,保证1<=n<=100,000,Q<=100,000。

保证1<=a[i]<=3,1<=l[i]<=r[i]<=n。

【来源】

QBXT2017春令营第一次测试T1

屠龙宝刀点击就送

做法1

  很水的前缀和

#include <ctype.h>
#include <cstdio>

void read(int &x)
{
    x=0;bool f=0;
    register char ch=getchar();
    for(;!isdigit(ch);ch=getchar()) if(ch==‘-‘) f=1;
    for(; isdigit(ch);ch=getchar()) x=x*10+ch-‘0‘;
    x=f?(~x)+1:x;
}
int n,q,sum[100005][4];
int main()
{
    freopen("fans.in","r",stdin);freopen("fans.out","w",stdout);
    read(n);read(q);
    for(int opt,i=1;i<=n;i++)
    {
        read(opt);
        if(opt==1)
        {
            sum[i][1]=sum[i-1][1]+1;
            sum[i][2]=sum[i-1][2];
            sum[i][3]=sum[i-1][3];
        }
        else if(opt==2)
        {
            sum[i][1]=sum[i-1][1];
            sum[i][2]=sum[i-1][2]+1;
            sum[i][3]=sum[i-1][3];
        }
        else
        {
            sum[i][1]=sum[i-1][1];
            sum[i][2]=sum[i-1][2];
            sum[i][3]=sum[i-1][3]+1;
        }
    }
    for(int x,y;q--;)
    {
        read(x);read(y);
        printf("%d %d %d\n",sum[y][1]-sum[x-1][1],sum[y][2]-sum[x-1][2],sum[y][3]-sum[x-1][3]);
    }
    return 0;
}

改掉我前缀和的脑残求和 竟然慢了 !。。

#include <ctype.h>
#include <cstdio>
void read(int &x)
{
    x=0;bool f=0;
    register char ch=getchar();
    for(;!isdigit(ch);ch=getchar()) if(ch==‘-‘) f=1;
    for(; isdigit(ch);ch=getchar()) x=x*10+ch-‘0‘;
    x=f?(~x)+1:x;
}
int n,q,sum[100005][4];
int main()
{
    freopen("fans.in","r",stdin);freopen("fans.out","w",stdout);
    read(n);read(q);
    for(int opt,i=1;i<=n;i++)
    {
        read(opt);
        sum[i][opt]=1;
        sum[i][1]+=sum[i-1][1];
        sum[i][2]+=sum[i-1][2];
        sum[i][3]+=sum[i-1][3];
    }
    for(int x,y;q--;)
    {
        read(x);read(y);
        printf("%d %d %d\n",sum[y][1]-sum[x-1][1],sum[y][2]-sum[x-1][2],sum[y][3]-sum[x-1][3]);
    }
    return 0;
}

做法2

  很水的树状数组

#include <ctype.h>
#include <cstdio>

void read(int &x)
{
    x=0;
    bool f=0;
    register char ch=getchar();
    for(;!isdigit(ch);ch=getchar()) if(ch==‘-‘) f=1;
    for(; isdigit(ch);ch=getchar()) x=x*10+ch-‘0‘;
    x=f?(~x)+1:x;
}
int n,q;
struct bit
{
    int sum[100005];
    int lowbit(int x) {return x&((~x)+1);}
    int query(int x)
    {
        int ans=0;
        for(;x;x-=lowbit(x)) ans+=sum[x];
        return ans;
    }
    void plus(int x,int y)
    {
        for(;x<=n;x+=lowbit(x)) sum[x]+=y;
    }
}a[5];
int main()
{
    freopen("fans.in","r",stdin);
    freopen("fans.out","w",stdout);
    read(n);read(q);
    for(int opt,i=1;i<=n;i++)
    {
        scanf("%d",&opt);
        a[opt].plus(i,1);
    }
    for(int x,y;q--;)
    {
        read(x);read(y);
        printf("%d %d %d\n",a[1].query(y)-a[1].query(x-1),a[2].query(y)-a[2].query(x-1),a[3].query(y)-a[3].query(x-1));
    }
    return 0;
}
时间: 2024-08-05 12:48:41

COGS 2685. 迷妹的相关文章

月攒亿级热度才上榜,科普、资讯内容成4月秒拍榜单黑马

依靠近20亿次播放量,魔力TV实现了在MCN榜上的蝉联:6亿播放的二更视频重回原创榜首:一手video竟然压过了央视新闻.人民日报.澎湃新闻等一众王牌媒体,成为风云榜上的状元--5月2日,秒拍发布2017年4月份系列榜单上,呈现出一个极其强烈的内容创业趋势-- 一个月没个亿级的热度,都不好意思在榜单上去排队. 文/张书乐 TMT行业观察者.游戏产业时评人,人民网.人民邮电报专栏作者 热度.画风.话锋--怎样的内容最有眼球 纵观风云榜.美食榜.时尚榜.影响力榜.原创榜和MCN榜6大榜单,有一个印象

“冰桶”热了半个月 秒拍“假人挑战”能火多久?

文/张书乐 据媒体报道,11月末,张杰.吴亦凡.周笔畅.张馨予等众多明星大咖纷纷在"秒拍"上参与一项名为"假人挑战"活动,视频引发网友疯狂围观."假人挑战"是继"冰桶挑战"后又一风靡全球的新游戏,玩法是参加者必须像假人般一动不动,彷佛世界突然静止. 通过冰桶挑战登顶短视频舞台的秒拍,能否通过此次"假人挑战"更加辉煌?当年在国内,真正火爆的时间其实就是半个月的冰桶,是否预示着"假人"的寿命

财政大幅增加对o

扶贫先扶志,扶贫与扶志必须有机地结合起来:扶贫必扶智,要通过教育阻止贫困代际传递:脱贫必脱愚,否则先扶贫后返贫.扶贫"造血"既要改变外因,创造脱贫的外部环境,"志.智.愚" 三助,消除心理差距,促进内因变化,这是核心所在.扶志和扶智背后有复杂的心理机制和广泛的影响因素,掌握客观规律,将科学研究的成果转化成创新政策和超常规方法,有的放矢.对症下药,才能打赢脱贫攻坚战. 有电力行业分析师向<证券日报>记者表示,火电企业去年业绩均不尽如人意,主要是"

视频直播的发展趋势分析

视频直播的分析与发展 在讲视频直播之前,先讲一讲直播.直播是怎么来的呢?从传播消息的角度上来说,视频和文字.图片.音乐一样都是传播消息的手段,古时以文字传播消息,之后出现了图片和音乐,再之后视频开始流行.出现这种演变的原因是什么呢?我想主要是由于读者的需求日益提高和传播技术的不断发展.读者不满足于当前的文字阅读,由此出现了图片与音乐,到后来图片与音乐也无法满足日益增长的需求,则出现了视频.视频具有文字.图片.音乐不具有的优势:传递的信息多,更让人有代入感,给观众更综合的体验.虽然视频有着无可比拟

模拟题1

NOIP2016提高组模拟赛 ——By wangyurzee7 中文题目名称 迷妹 膜拜 换数游戏 英文题目与子目录名 fans mod game 可执行文件名 fans mod game 输入文件名 fans.in mod.in game.in 输出文件名 fans.out mod.out game.out 每个测试点时限 1秒 1秒 1秒 测试点数目 20 16 16 每个测试点分值 10 6.25 6.25 题目类型 传统 传统 传统 运行内存上限 128M 128M 256M 注意:评测

大有好转g

由于举牌的险资主要来源于万能险保费,"万能险是否保险"引发质疑.对此保监会副主席黄洪指出,针对前期少数保险公司万能险业务"一险独大"且期限普遍偏短的问题,保监会已经采取了严格精算.定价和负债准备金等方面的监管,开展了全行业现金流压力测试,对违规公司停业整顿.目前万能险结算利率稳步下降.负债期限不断拉长.保障性普遍提升,下一步保监会将对前期监管措施进行跟踪评估,调整完善万能险等寿险产品的监管政策,推动万能险健康.快速.稳定发展. 向敏表示,首先要做好汛前重点工程隐患排

国际友谊林”j

根据马方公布的信息,13日,一名朝鲜籍男子在吉隆坡国际机场二号航站楼寻求医疗帮助,但随后在送医途中死亡.马来西亚副总理扎希德16日说,死亡男子为朝鲜最高领导人金正恩之兄金正男.这一说法遭到朝鲜驻马来西亚大使否认. 从统计数据来看,道路运输客运量持续下降,但仍是春运主力军,春运期间,全市累计投入营运车辆3837台,累计发送旅客773.8万人次,同比下降2.5%.水路运输方面,全市累计投入480艘客渡船,共发送旅客22.54万人,同比增加12.7%.铁路方面,全市累计发送旅客36.06万人次,同比增

【影视系列】盘点《人民的名义》

本文地址 原文地址--微信 点击关注 微信公众号 终于把<人民的名义>这部热播的反腐大剧看完了,还有点意犹未尽的感觉,脑海里还是汉东官场的模样,也想起来跟大家絮叨絮叨,分享一下了. 名义·强大演员阵容 故事情节 故事讲述了最高人民检察院反贪总局侦查处处长侯亮平代理汉东反贪局长,在汉东官场展开了一场查办贪腐案件的惊心动魄的大戏. 名义·反贪侯亮平办案    1)帮派 在汉东省政坛,以汉东省委副书记.政法委书记高育良为代表的“政法系”,以汉东省委常委.京州市委书记李达康为代表的“秘书帮”相争多年,

次会议闭幕f

科学家"回归"能否带动更多海外人才回国? 阳雄绪听取了该村负责人关于该村基本情况.前段扶贫工作情况以及存在问题的汇报,询问了该村党建.交通.水利.产业.五保户集中居住点建设以及村级集体经济情况,他指出,解决村上集体经济收入和贫困户脱贫,完成好今年扶贫工作目标任务,关键就是要搞好产业扶贫,要使贫困户有稳定的收入来源.他要求该村把青壳蛋鸡项目做好,利用废弃场地等地养牛养羊,争取搞好光伏发电.阳雄绪表示,将积极组织协调各方力量,做好檀木村脱贫工作.阳雄绪一行还实地察看了五保户集中居住点建设情