• 洛谷——P1311 选择客栈


    https://www.luogu.org/problem/show?pid=1311

    题目描述

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

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

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

    输入输出格式

    输入格式:

    输入文件hotel.in,共n+1 行。

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

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

    输出格式:

    输出文件名为hotel.out 。

    输出只有一行,一个整数,表示可选的住宿方案的总数。

    输入输出样例

    输入样例#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。

    用num[i][j]表示到第i个客栈时,颜色为j 的客栈的数量

    last[i]表示最近一次客栈的价格<=最小花费的位置

    统计答案时,如果last[i]==i 说明 pri[i]<=p  则可以构成num[i][j]-1对

                         否则 pri[i]>p  说明 i可以和last[i]之前的全部构成一对  为num[last[i][j]对

     1 #include <algorithm>
     2 #include <cstring>
     3 #include <cstdio>
     4 
     5 using namespace std;
     6 
     7 const int N(200005);
     8 const int K(50);
     9 int n,k,p,col[N],pri,ans;
    10 int tmp[K],num[N][K],last[N];
    11 
    12 int main()
    13 {
    14     scanf("%d%d%d",&n,&k,&p);
    15     for(int i=1,pre=0;i<=n;i++)
    16     {
    17         scanf("%d%d",&col[i],&pri);
    18         tmp[col[i]]++;
    19         for(int j=0;j<k;j++) num[i][j]+=tmp[j];
    20         if(pri<=p) pre=i;
    21         last[i]=pre;
    22     }
    23     for(int i=1;i<=n;i++)
    24     {
    25         if(last[i]==i) ans+=num[i][col[i]]-1;
    26         else ans+=num[last[i]][col[i]];
    27     }
    28     printf("%d
    ",ans);
    29     return 0;
    30 }
    ——每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。
  • 相关阅读:
    CODING x 百果园 _ 水果零售龙头迈出 DevOps 体系建设第一步
    Nocalhost 亮相 CD Foundation 国内首届 Meetup,Keith Chan 将出席致辞
    做云原生时代标准化工具,实现高效云上研发工作流
    打造数字化软件工厂 —— 一站式 DevOps 平台全景解读
    WePack —— 助力企业渐进式 DevOps 转型
    CODING Compass —— 打造行云流水般的软件工厂
    Nocalhost —— 让云原生开发回归原始而又简单
    CODING 代码资产安全系列之 —— 构建全链路安全能力,守护代码资产安全
    Nocalhost:云原生开发新体验
    使用 Nocalhost 开发 Kubernetes 中的 APISIX Ingress Controller
  • 原文地址:https://www.cnblogs.com/Shy-key/p/7389511.html
Copyright © 2020-2023  润新知