zoukankan      html  css  js  c++  java
  • noip 选择客栈

    题目描述

    丽江河边有nn n家很有特色的客栈,客栈按照其位置顺序从 1到n编号。每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~k1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。

    两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过 p

    他们想知道总共有多少种选择住宿的方案,保证晚上可以找到一家最低消费不超过p元的咖啡店小聚。

    输入输出格式

    输入格式:

    共n+1 行。

    第一行三个整数n,k,p,每两个整数之间用一个空格隔开,分别表示客栈的个数,色调的数目和能接受的最低消费的最高值;

    接下来的n 行,第 i+1 行两个整数,之间用一个空格隔开,分别表示i号客栈的装饰色调和i号客栈的咖啡店的最低消费。

    输出格式:

    一个整数,表示可选的住宿方案的总数。

    输入输出样例

    输入样例#1: 复制
    5 2 3 
    0 5 
    1 3 
    0 2 
    1 4 
    1 5 
    
    输出样例#1: 复制
    3
    

    说明

    【输入输出样例说明】

    2 人要住同样色调的客栈,所有可选的住宿方案包括:住客栈①③,②④,②⑤,④⑤,但是若选择住4 5号客栈的话,4 、5 号客栈之间的咖啡店的最低消费是4 ,而两人能承受的最低消费是3 元,所以不满足要求。因此只有前 3 种方案可选。

    【数据范围】

    对于30%的数据,有n≤100

    对于 50%的数据,有n≤1,000

    对于100%的数据,有 2≤n≤200,000,0<k≤50,0≤p≤100,0≤最低消费≤100

    ——————————————————————————————————————————————————————————————

    closum[i]:统计i点后面各个颜色的点的个数

    last[i]:表示i点后面第一个小于等于p的点

    然后枚举左侧的客栈x,那么last[x]表示最后一个咖啡厅,那么last[x]后面与x同色的店的个数就是答案,用closum[]统计。

    ——————————————————————————————————————————————————————————————

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 const int maxn=2e6+10;
     4 const int maxc=55;
     5 int n,k,p;
     6 long long ans;
     7 int clo[maxn],val[maxn];
     8 int closum[maxc],last[maxn];
     9 int main()
    10 {
    11     scanf("%d%d%d",&n,&k,&p);
    12     for(int i=1;i<=n;++i)scanf("%d%d",clo+i,val+i);
    13     last[n+1]=0x7fffffff;
    14     for(int i=n;i>0;--i)last[i]=val[i]<=p?i:last[i+1];
    15     int cur=n;
    16     for(int i=n-1;i>=1;--i)
    17     {
    18         while(cur>=last[i]&&cur>i)
    19         {
    20             closum[clo[cur]]++;
    21             --cur;
    22         }
    23         ans+=closum[clo[i]];
    24         
    25     }
    26     cout<<ans;
    27     return 0;
    28 }
    View Code
  • 相关阅读:
    开源项目
    [Accessibility] Missing contentDescription attribute on image [可取行]失踪contentDescription属性图像
    Android 布局 中实现适应屏幕大小及组件滚动
    EF 错误记录
    EasyUI 加载时需要显示和隐藏 panel(面板)内容破版问题
    IE 报表缩放后页面破版
    VS 2017 引入nuget 问题
    SSRS 报表显示页面 asp net session丢失或者找不到 asp net session has expired or could not be found()
    log4net 配置
    网站
  • 原文地址:https://www.cnblogs.com/gryzy/p/10309275.html
Copyright © 2011-2022 走看看