洛谷2017-2月月赛

打CF前随便打打,看了一眼只会做签到题,还挂了一次,95/400。

A.富金森林公园

题目大意:给一个长度为n的数列,支持两种操作:1.修改一个数的值;2.给出一个k,问有多少段数大等于k。(N<=200,000)

思路:求出大等k的数的个数减去相邻且都大等k的数字对数就是答案,同时大等两个数必然也大等他们中的较大值,所以用权值线段树分别维护各个数字和相邻的数的最大值就可以了。复杂度O(nlogn)。(一开始我写修改时,查他位置上前一个数写成前一个操作位置上的数,挂的惨烈……)

#include<cstdio>
#include<algorithm>
using namespace std;
char B[1<<26],*S=B,C;int X;
inline int read()
{
    while((C=*S++)<‘0‘||C>‘9‘);
    for(X=C-‘0‘;(C=*S++)>=‘0‘&&C<=‘9‘;)X=(X<<3)+(X<<1)+C-‘0‘;
    return X;
}
#define MN 200000
#define MC 400000
int a[MN+5],c[MC+5],cn,x[MN+5],y[MN+5],z[MN+5];
int p1[MN+5],p2[MN+5],s1[MC+5],s2[MC+5];
void add(int*s,int x,int z){for(;x<=MC;x+=x&-x)s[x]+=z;}
int sum(int*s,int x){int r=0;for(;x;x-=x&-x)r+=s[x];return r;}
#define find(x) (lower_bound(c+1,c+cn+1,x)-c)
#define find2(x) (upper_bound(c+1,c+cn+1,x)-c)
int main()
{
    fread(B,1,1<<26,stdin);
    int n,m,i,j;
    cn=n=read();m=read();
    for(i=1;i<=n;++i)a[i]=c[i]=-read();
    for(i=1;i<=m;++i)
    {
        x[i]=read();y[i]=read();
        if(x[i]>1)c[++cn]=z[i]=-read();
    }
    sort(c+1,c+cn+1);
    for(i=1,j=0;i<=cn;++i)if(c[i]!=c[j])c[++j]=c[i];cn=j;
    for(i=1;i<=n;++i)add(s1,p1[i]=find(a[i]),1);
    for(i=1;i<n;++i)add(s2,p2[i]=find(max(a[i],a[i+1])),1);
    for(i=1;i<=m;++i)
        if(x[i]<2)j=find2(-y[i])-1,printf("%d\n",sum(s1,j)-sum(s2,j));
        else
        {
            add(s1,p1[y[i]],-1);add(s1,p1[y[i]]=find(a[y[i]]=z[i]),1);
            if(y[i]>1)add(s2,p2[y[i]-1],-1),add(s2,p2[y[i]-1]=find(max(a[y[i]-1],a[y[i]])),1);
            if(y[i]<n)add(s2,p2[y[i]],-1),add(s2,p2[y[i]]=find(max(a[y[i]],a[y[i]+1])),1);
        }
}
时间: 2024-10-13 23:29:09

洛谷2017-2月月赛的相关文章

洛谷P3938 斐波那契

题目戳 题目描述 小 C 养了一些很可爱的兔子. 有一天,小 C 突然发现兔子们都是严格按照伟大的数学家斐波那契提出的模型来进行 繁衍:一对兔子从出生后第二个月起,每个月刚开始的时候都会产下一对小兔子.我们假定, 在整个过程中兔子不会出现任何意外. 小 C 把兔子按出生顺序,把兔子们从 1 开始标号,并且小 C 的兔子都是 1 号兔子和 1 号兔子的后代.如果某两对兔子是同时出生的,那么小 C 会将父母标号更小的一对优先标 号. 如果我们把这种关系用图画下来,前六个月大概就是这样的: 其中,一个

【洛谷】【洛谷月赛】4月月赛Round 1/2

洛谷月赛"月"来"月"丧了,一月更比一月丧,做得我十分不"月"-- 4月的两轮月赛,都只会T1,就写一下吧,等待后续更新-- 先看看Round1的T1: [R1T1] 网址:点我 [题意简述] 给定一个长度为n的序列,其中的元素均是1~m之间的正整数. 要求从中选出k个数,交换它们的位置,其他未被选中的数保持不变,使得变换后的序列中,相等的数总是排在一段连续区间. 要求最小化k. 1<=n<=105,1<=m<=20 [思

洛谷P2835 刻录光盘 [2017年6月计划 强连通分量02]

P2835 刻录光盘 题目描述 在JSOI2005夏令营快要结束的时候,很多营员提出来要把整个夏令营期间的资料刻录成一张光盘给大家,以便大家回去后继续学习.组委会觉得这个主意不错!可是组委会一时没有足够的空光盘,没法保证每个人都能拿到刻录上资料的光盘,又来不及去买了,怎么办呢?! 组委会把这个难题交给了LHC,LHC分析了一下所有营员的地域关系,发现有些营员是一个城市的,其实他们只需要一张就可以了,因为一个人拿到光盘后,其他人可以带着U盘之类的东西去拷贝啊! 可是,LHC调查后发现,由于种种原因

【模板】LIS模板 洛谷P1091 [NOIP2004提高组]合唱队形 [2017年4月计划 动态规划11]

以题写模板. 写了两个:n^2版本与nlogn版本 P1091 合唱队形 题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1<...<Ti>Ti+1>…>TK(1<=i<=K). 你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形. 输入输出格

洛谷冬令营随想

洛谷春令营结束不久,就我个人而言实在是收益良多. 课后与洛谷的讲师们略有交谈,并且稍微接触了别地的信竞生,顿感弱小--决定把一些了解到的信息和感想放在这里.比较杂,将就着看吧. 首先说下近年竞赛的发展吧. 近年信息学竞赛带来的升学优势增大了不少,机会增加了,这是好事.但这同样也意味着竞争将激烈许多. 举几个例子: 浙江小学便培育"种子选手",浙江初赛分数线一度达到90分. 著名的南山中学,C类买不停,此处不细说. 很大一部分选手以完全停课备战比赛. 切实参与到竞赛中,能感觉到许多学校已

约数和问题(codevs2606&amp;amp;&amp;amp;洛谷2424)

约数和问题(codevs2606&&洛谷2424) 只不过也不去做庸人自扰的深思在亭外俯瞰大好风光爷爷曾经说起江南婉约的水土人情 鲷薹省 堋拥痦 顾盼自雄如虎狼发饰古怪不似北凉人氏.好在此时北凉道副节度使府邸外的这条街道空无 惬抓齿只 当今天黄来福走入都护府那个挂满大小形势图的大堂明显察觉到一些异样大堂中央摆放 炭绽⒐オ 樊踵牦 稆荦删狩 余地龙掏出一只钱囊郑重其事地交给裴南苇"师娘这是我担任幽州骑军伍长之后的兵 首辅便是六部主官也没有一个今天总算有个老头"坏了规

洛谷 P3178 BZOJ 4034 [HAOI2015]树上操作

题目描述 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个操作,分为三种:操作 1 :把某个节点 x 的点权增加 a .操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a .操作 3 :询问某个节点 x 到根的路径中所有点的点权和. 输入输出格式 输入格式: 第一行包含两个整数 N, M .表示点数和操作数.接下来一行 N 个整数,表示树中节点的初始权值.接下来 N-1 行每行三个正整数 fr, to , 表示该树中存在一条边 (fr, to) .再接下来 M 行

网络流最大流模板(洛谷3376)——Dinic

小道消息,据说NOIP 2017 的六个题是三位(前?)国家队大神出的,所以难度很有可能贼高,并且可能出现网络流,所以慌慌张张地来打了个Dinic 模板,但愿汝佳所说“在大多数比赛中已经完全够用了”是对的. 1 #include<queue> 2 #include<vector> 3 #include<iostream> 4 #include<algorithm> 5 #include<cstring> 6 #include<cstdlib

洛谷 P3951 小凯的疑惑

问题描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品. 输入格式 输入文件名为math.in. 输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手中金币的面值. 输出格式 输出文件名为math.out. 输出文件仅一行,一个正整数 N,表示不找零的情况下,小凯用手中的

洛谷 模拟城市2.0

一次洛谷月赛的T1,当时因为是信心赛,认为第一题应该不会太难,结果想了很久,直接额放弃正解选择暴力...简直就是巨坑的五维DP...mmd 题目背景 博弈正在机房颓一个叫做<模拟城市2.0>的游戏. 2048年,经过不懈努力,博弈终于被组织委以重任,成为D市市委书记! 他勤学好问,励精图治,很快把D市建设成富强民主文明和谐的美好城市.为了进一步深化发展,他决定在海边建立一个经济开发区. 题目描述 已知开发区的建筑地块是一个n×n的矩形,而开发区可以建造三种建筑: 商业楼,住宅楼,教学楼.这任何