口胡【NOIP2011DAY1】选择客栈

原创 2017年10月06日 21:58:14

题意

一个长度为 n 的区间,每个位置上有颜色 ci 以及代价 vi,现在问有多少个区间 [l,r] 满足 cl = cr 且lir使vip

题解

我们只考虑每一个点作为左端点时对答案的贡献,我们令nexti表示在i左边,离i最近,且vnextip的那个端点,(可以为i本身)那么i这个端点对答案的贡献就是区间[1,nexti]颜色为c[i]的个数,用前缀和搞一下就行。

代码

const
    maxn=200000;
var
    sum:array[0..maxn,0..55] of longint;
    a,next,c:array[0..maxn] of longint;
    bz:array[0..maxn] of boolean;
    i,j,k,n,m,p:longint;
        ans:int64;
begin
        {assign(input,'jzoj3025.in');
    reset(input);
    assign(output,'jzoj3025.out');
    rewrite(output);}
    readln(n,k,p);
    readln(c[1],a[1]);
    sum[1,c[1]]:=1;
        if a[1]<=p then
                bz[1]:=true;
    for i:=2 to n do
    begin
        readln(c[i],a[i]);
        for j:=0 to k-1 do
            sum[i,j]:=sum[i-1,j];
        inc(sum[i,c[i]]);
        if a[i]<=p then
            bz[i]:=true;
    end;
    for i:=1 to n do
        if bz[i] then
            break;
    k:=i;
    next[i]:=i;
    for j:=k to n do
    begin
        if bz[j] then
        begin
            next[j]:=j;
            i:=j;
        end
        else
            next[j]:=i;
    end;
    for i:=k to n do
    begin
        if next[i]=i then
            dec(ans);
        ans:=ans+sum[next[i],c[i]]
    end;
    writeln(ans);
    {close(input);
    close(output);}
end.
版权声明:本文为博主原创文章,未经博主允许不得转载。

Noip 2011 解题报告 Day1 (铺地毯,选择客栈,Mayan 游戏)

前言在这春暖花开的日子,我们迎来了又一次的模拟测试。这一次,我们采用了2011年的Day1真题作为题目。...
  • Hawo11
  • Hawo11
  • 2017年03月11日 14:33
  • 468

NOIP2011复赛提高组day1(A:铺地毯 B:选择客栈 C:mayan游戏)

话说这应该算是比较简单的一届NOIP 但是博主第三题智障了一下 其实是因为我是弱鸡 只得了20分 0.0 ❤都在滴血。。 30分无脑代码x,y输反了。 BFS(我心中的AC代码)WA(没剪枝...

NOIP2011复赛(day1):选择客栈

题目: http://files.cnblogs.com/lijianlin1995/NOIP2011%E6%8F%90%E9%AB%98%E7%BB%84Day1.pdf 旅馆: 这是在noip2...

NOIP2011(DAY1)解题报告(C/C++)(铺地毯)(选择客栈)(Mayan 游戏)

NOIP2011(D1)解题报告
  • theljt
  • theljt
  • 2017年03月11日 16:53
  • 394

【枚举+优化】【NOIP2011提高组Day1】选择客栈

【样例输入输出】 hotel.in hotel.out 5 2 3 0 5 1 3 0 2 1 4 1 5 3 这一题朴素枚举能得60...

[NOIP2011] day1铺地毯,选择客栈,Mayan游戏

这次考试有一些失误,首先我把第一道题做错了,说实话,这是这几次考试中最简单的第一道题,以至于我两分钟就打完了,但为什么会打错呢?因为我就看了一下样例,以为输出的是被地毯盖住的次数,估计只对了0的点,所...

NOIP2011 提高组 复赛 day1 hotel 选择客栈

NOIP2011 提高组 复赛 day1 hotel 选择客栈 1.结构体是少不了了,本题若用n^2,估计要超时,只能得50分。 2.按常规的做法,傻傻的找,肯定涉及n^2。 3.第一步,对合适的咖啡...
  • mrcrack
  • mrcrack
  • 2017年01月09日 20:20
  • 146

NOIP 2011 DAY 1 解题报告(铺地毯,选择客栈,mayan游戏)

NOIP 2011

[1st.Aug.16.] NOIP2011 选择客栈——最终其实没有做出来

这题目看完第一段说明还没发现怎么做,看完整个的说明之后马上想到用两个数组的方法,一个储存所有客栈的色调,一个储存从1到i 的客栈中,总共多少满足可以喝咖啡的条件,然后再双重循环一个if 完事,打出来之...

[NOIP2011](提高组)D1 T2 选择客栈

NOIP2011 选择客栈时间限制: 1 Sec 内存限制: 128 MB题目描述 丽江河边有 n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号。每家客栈都按照某一种色调进行装饰(总共 k...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:口胡【NOIP2011DAY1】选择客栈
举报原因:
原因补充:

(最多只允许输入30个字)