关闭

[UESTC 1342]郭大侠与甲铁城

149人阅读 评论(0) 收藏 举报
分类:

郭大侠与甲铁城

全世界被产业革命的波澜推动,自近世变迁至近代之时,不死的怪物突然出现。被钢铁的皮膜包覆,只要心脏不被破坏就不会消灭,被它啃咬的人似乎也会在死过一次之后复生,并开始袭击人类。之后被称为卡巴内的这些怪物爆发性地增殖,并覆盖了全世界。
远东岛国日本的人们,为了对抗卡巴内的威胁而在各地建造名为“驿”的城寨,并困守在其中,想方设法残存下去。能够在驿之间来往的只有装甲蒸汽机车(通称骏城),驿之间通过各自生产物的融通,总算是保证了生活。
住在以炼铁和蒸汽机的生产为业的显金驿的蒸汽锻冶少年,郭大侠。他为了打倒卡巴内,开发出独自的武器“贯筒”,同时期盼着有朝一日能够发挥出自己的力量。
某天,穿越前线的骏城之一甲铁城来到了显金驿。为了车辆的清扫整备而被召唤的郭大侠,目击到了从义务性的卡巴内检阅中被免除的不可思议少女。
当晚,郭大侠与自称为无名的那位白天的少女再会,此时骏城突然暴走并突入了显金驿。乘务员全灭,而且全部变成了卡巴内!
卡巴内从显金驿中溢出。如同要从被恐慌袭击的人浪中逆行一般,郭大侠奔跑着。这一次不能逃避,我要用贯筒打倒卡巴内!
——于是,为了成为真正能闪耀光辉的男人,郭大侠的战斗开始了。
……
现在在这个城市中有n个卡巴内,每个卡巴内都有他自身的属性a[i],郭大侠的贯筒能够一次性击穿[L,R]区间中拥有不同属性的怪物!
为了足够强的发挥自己的武器的实力,郭大侠必须提前知道自己的一次性贯筒能够击杀多少只怪物。
现在开始计算吧!
Input

第一行给你n,q,表示有n个卡巴内,q次询问
第二行有n个整数,表示每一个卡巴内的属性a[i]
接下来q行,每行两个整数Li,Ri,表示询问。
1<=n,q<=100000
1<=Li<=Ri<=n
1<=a[i]<=10000

Output

对于每一个询问,输出答案!

样例输入1:

5 3
1 2 3 1 1
1 3
1 4
3 5

样例输出1:

3
3
2 

题解:莫队算法,分块暴力求解。。。不是很懂常数为什么这么优秀。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<queue>
#define LiangJiaJun main
#define LL long long
#define pa pair<int,int>
using namespace std;
int n,Q,block,belong[100004];
int temp[100004];
struct data{
    int l,r,ans,sit;
}q[100004];
int a[100004];
inline bool dex(data x,data y){
    return (belong[x.l]==belong[y.l])?(x.r<y.r):(belong[x.l]<belong[y.l]);
}
inline bool cmp(data x,data y){return x.sit<y.sit;}
void solve(){
     int l=0,r=0,ans=0;
     for(int i=1;i<=Q;i++){
         while(r<q[i].r){
            r++;
            if(!temp[a[r]])++ans;
            temp[a[r]]++;
         }
         while(l>q[i].l){
            l--;
            if(!temp[a[l]])++ans;
            temp[a[l]]++;
         }
         while(r>q[i].r){
            if(temp[a[r]]==1)--ans;
            temp[a[r]]--;
            r--;
         }
         while(l<q[i].l){
            if(temp[a[l]]==1)--ans;
            temp[a[l]]--;
            l++;
         }
         q[i].ans=ans;
     }
}
int LiangJiaJun(){
    scanf("%d%d",&n,&Q);
    block = (int)sqrt((double)n);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    for(int i=1;i<=n;i++)belong[i] = (i-1)/block + 1;
    for(int i=1;i<=Q;i++){
        scanf("%d%d",&q[i].l,&q[i].r);
        q[i].sit = i;
    }
    sort(q+1,q+Q+1,dex);
    solve();
    sort(q+1,q+Q+1,cmp);
    for(int i=1;i<=Q;i++)printf("%d\n",q[i].ans);
    return 0;
}

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

京石城际铁路、廊涿城际铁路、涿州西站

http://baike.baidu.com/link?url=MJd6J4iWIgA879BOvo0glvmcqrO1RGWWNJzTk3G5jmyPh2vSyFTPds2iT_U-hSDZH6AC...
  • hshl1214
  • hshl1214
  • 2017-02-20 16:21
  • 12528

【通州爆料】S6线、京唐城际、京滨城际开工时间发布。

http://mp.weixin.qq.com/s?__biz=MjM5NjE2NjgyNA==&mid=210726980&idx=2&sn=06b1921f07df6a2706ba089c9f0f...
  • hshl1214
  • hshl1214
  • 2016-08-12 18:13
  • 4136

新疆乌鲁木齐经济技术开发区——高铁新城即将崛起 ...

乌鲁木齐高铁新客站效果图   亚心网讯(记者李娜报道)8月20日,记者站在位于新疆乌鲁木齐经济技术开发区(头屯河区)高铁片区中央的观景台上放眼望去,项目施工现场人来车往、机器轰鸣,工人们冒着高温...
  • bitan4
  • bitan4
  • 2015-04-16 17:17
  • 2269

【UESTC 1334 郭大侠与Rabi-Ribi】+ 贪心 + 优先队列

郭大侠与Rabi-Ribi Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Su...
  • WYK1823376647
  • WYK1823376647
  • 2017-03-26 19:52
  • 193

UESTC 1339 郭大侠与线上游戏 (STL插入删除/迭代器)

STL erase后指针变化 对于用数组实现的数据结构(vector,deque),除一个元素后之后所有的迭代器都会失效 对于关联型数据结构,删除后只会对当前节点有影响 删除节点前应该先取得下一个节点...
  • Martin20150405
  • Martin20150405
  • 2017-04-20 10:06
  • 343

UESTC 1339 郭大侠与线上游戏

题目地址  http://acm.uestc.edu.cn/#/problem/show/1339 这道题,是求中位数,以前也有一道中位数的题目卡的我要死,这次这道题我依旧没有办法自己做出来,找了题解...
  • llzhh
  • llzhh
  • 2017-03-11 14:21
  • 162

[UESTC1284] 郭大侠的苦恼

Description 花开雷霆崖,血染伊吕波。 公元1772年。 郭大侠终于照着天行廖的叮嘱,摆出了阵型,准备带着部队与天行廖相逢于雷霆崖。 但郭大侠实在是没有把握,这个阵型是真的如天行廖所...
  • dxyinme
  • dxyinme
  • 2016-12-12 10:12
  • 194

2016 UESTC Training for Data Structures I - 郭大侠与线上游戏 2个set

用2个set,Lset维护最小的n/2个数,Rset维护其余的数; 然后用queue来记录这些数的数序; 每次维护都保证Lset里面是最小的n/2个数就好了, 然后查询的时候输出*Rset.begin...
  • ProLightsfxjh
  • ProLightsfxjh
  • 2016-05-01 00:02
  • 922

2016 UESTC Training for Data Structures J - 郭大侠与Rabi-Ribi 优先队列

用STL里的优先队列, 倒过来做处理兔子出现的时间,总时间为maxT 那样出现就丢到优先队列里去,从这个时刻起就一直都存在了 没个时刻拿一只最大的出来 pq.top()打晕就好了
  • ProLightsfxjh
  • ProLightsfxjh
  • 2016-05-01 00:02
  • 1398

【cdoj 1284】郭大侠与苦恼 map的启发式合并

【cdoj 1284】郭大侠与苦恼 map的启发式合并
  • pbihao
  • pbihao
  • 2016-08-01 22:10
  • 205
    个人资料
    • 访问:15458次
    • 积分:1278
    • 等级:
    • 排名:千里之外
    • 原创:118篇
    • 转载:1篇
    • 译文:0篇
    • 评论:4条
    最新评论