【组合数】[NOIP2011]选择客栈[c++]

[NOIP2011真题]选择客栈 题目背景 NOIP2011提高组 DAY1 试题。题目描述 丽江河边有 n 家很有特色的客栈,客栈按照其位置顺序从 1 到 n 编号。每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一 阅读详情
题目描述

丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号。每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。
两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过 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

思路

总的解数 = 所有色调相同的客栈两两相配的总数量 - 因咖啡馆价格问题而不能相配的数量 。
附组合数递推公式 c(m,n)=c(m-1,n-1)+c(m-1,n)

代码[c++]
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
int color[200000],price;
bool f[200000];
int main() {
    int n,k,p;
    scanf("%d%d%d",&n,&k,&p);
    for(int i=0; i<n; i++) {
        scanf("%d%d",&color[i],&price);
        if(price>p)f[i]=true;
    }
    int cnt[55]={0};
    int sum=0;
    for(int i=0;i<n;i++){  //这一段循环计算因咖啡馆价格问题而不能相配的对数
        if(!f[i]){
            memset(cnt,0,sizeof(cnt));
            continue;
        }
        cnt[color[i]]++;
        sum+=cnt[color[i]]-1;  //c(m,2)=c(m-1,1)+c(m-1,2)
    }
    int ans=0;
    memset(cnt,0,sizeof(cnt)); 
    for(int i=0;i<n;i++){  //这一段循环计算所有色调相同的客栈两两相配的总对数 
        cnt[color[i]]++;
        ans+=cnt[color[i]]-1;  //c(m,2)=c(m-1,1)+c(m-1,2)
    }
    printf("%d\n",ans-sum);
    return 0;
}
在 Windows 系统下使用 VMware 安装 Ubuntu 24.04 LTS 系统 Ubuntu24.04桌面端官方下载:https://cn.ubuntu.com/download/desktop。 阅读详情

相关推荐

Rust 与 Golang 深度对决:从语法到应用场景的全方位解析

Rust 定义函数以fn关键字开头,参数需明确指定类型,返回值类型紧跟在箭头->之后。// 定义函数add,接收两个i32类型参数a和b,返回i32类型结果,功能为两数相加a + bRust 和 Golang 各有千秋,在不同领域展现独特优势。Rust 凭借强大的内存安全与高性能,在系统编程、网络编程以及对内存安全和性能要求高的场景中表现突出;Golang 则以简洁语法和出色并发性能,在云计算、分布式系统、Web 开发等领域占据一席之地。

muyouking 1769

[NOIP2011 提高组] 选择客栈

丽江河边有n家很有特色的客栈,客栈按照其位置顺序从1到n编号。每家客栈都按照某一种色调进行装饰(总共k种,用整数0∼k−1表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过p。他们想知道总共有多少种选择住宿的方案,保证晚上可以找到一家最低消费不超过。

2201_75785857的博客 421

MySQL常见面试题汇总(建议收藏!!!)

目录一、索引相关(1)什么是索引?(2)索引是个什么样的数据结构呢?(3)为什么使用索引?(4)Innodb为什么要用自增id作为主键?(5)Hash 索引和 B+ 树索引有什么区别或者说优劣呢?(6)什么是聚簇索引(6)非聚簇索引一定会回表查询吗?(6)聚簇索引和非聚簇索引的区别(6)MyISAM和InnoDB实现B+树索引方式的区别是什么?(6)MySQL中有四种索引类型,可以简单说说吗?(6)覆盖索引是什么?(6)联合索引是什么?为什么需要注意联合索引中的顺序?(6)创建的索引有没有被使用到?或者说怎

蔡政洁的博客 7万+

【优快云竞赛第33期】C++题解

两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。贪心,假设当前客栈的的颜色为c,最低消费为d,如果d不大于题意中的最低消费p,那我们 记下当前位置idx(颜色为c的位置),接下来判断,如果idx不小于上一个颜色为c的位置,那么当前颜色的客栈我们可选的有之前出现颜色为c的客栈总数,接着答案加上当前颜色的可选数量(具体构造方案:咖啡店选择最后一个满足最低消费不大于p的,客栈也固定选择和咖啡相同的一家,另外一个客栈在相同的颜色的可选客栈中任选一个即可)。

openallzzz 706

基于Arduino与Velostat的智能鞋垫:DIY足底压力监测系统全解析

压力传感器是物联网和健康监测领域的基础元件,其核心原理是将物理压力转换为可测量的电信号。通过压阻效应,材料的电阻值随压力变化,从而实现压力感知。这项技术为低成本、定制化的健康监测方案提供了可能,尤其在运动分析和康复训练中具有重要价值。本文聚焦于利用Velostat压敏材料和Arduino平台,详细解析如何从传感器制作、信号调理到无线数据传输,构建一套完整的足底压力监测系统。文中深入探讨了传感器阵列构建、信号滤波等关键技术,并针对常见问题提供了实用的解决方案,为创客和开发者实现可穿戴健康监测设备提供了清晰的工

weixin_32818781的博客 400

12S BMS 核心设计:基于 STM32H743+BQ34Z100 的 SOC/SOH 实现与全链路技术解析(上)

本文详细介绍了基于STM32H743和BQ34Z100的12串锂电池管理系统(BMS)设计。该系统采用主控制器+专用电量监测计架构,可实现高精度SOC(±1%)和SOH(±2%)估算,支持36V-50.4V电压范围。硬件设计包括电压/电流采样、温度测量、保护电路等模块,软件实现基于HAL库开发,采用DMA方式提高I2C通信效率。系统通过TI专利的ImpedanceTrack™算法实现三维融合估算,并具备完善的保护功能。该设计适用于电动工具、轻型电动车等中功率设备,具有精度高、响应快。

bother3000的博客 1393

c++ 选择客栈

分析: 首先这个客栈的总数n最大值为20万用朴素做法的两重循环肯定会超时,所以要改变循环方式。 在输入的同时进行操作,当输入的旅店的最低消费小于等于p时进行更新,从后往前循环到上一个最低消费小于p的点(m),对每个遍历到的旅店相应的颜色+1(num[kz[j].sd]++,num[]为储存对应下标颜色的旅馆个数),然后更新ans(ans+=num[kz[i].sd]-1)因为kz[i]本身就是一个符合条件的旅店可以与前面的任意一个相同颜色的旅店组合成一个不重不漏地(因为是随输入更新,线性)新组...

m0_63799444的博客 938

车载网络测试实操源码_使用CAPL脚本进行UDS刷写及其自动化测试

本文主要讲解如何使用CAPL脚本进行UDS刷写及其自动化测试,并结合了几个测试实例进行介绍,希望对大家有所帮助。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 1552

【11NOIP提高组】选择客栈(信息学奥赛一本通 1546)(洛谷 1311)

题目描述 丽江河边有nn家很有特色的客栈,客栈按照其位置顺序从11到nn编号。每家客栈都按照某一种色调进行装饰(总共kk种,用整数00~k-1k−1表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求...

anglanjing7414的博客 653

SLAM 轨迹评估工具——EVO安装、使用介绍

evo是一款用于视觉里程计和SLAM问题的轨迹评估工具. 核心功能是能够绘制相机的轨迹, 或评估轨迹与真值之间的误差. 支持多种数据集的轨迹格式(TUM、KITTI、EuRoC MAV、ROS的bag), 同时支持这些数据格式之间的相互转换,本文轨迹展示以tum数据格式为例。

u010196944的博客 1万+

基于机器学习和深度学习的新能源功率预测研究综述--学术论文模式--个人梳理

本文是博主根据前人的研究成果总结的机器学习和深度学习等理论方法在新能源功率预测领域的相关研究内容要点,按照学术科技论文写作的模式进行的呈现,包括文章引用等也都做了详细的批注,花了很多时间和心血,一方面是对自己学习成果的一些总结,另一方面也希望对大家有用(尽量不要直接copy哦,转载请标注,如有不当请评论或私信指出哦可再生能源的间歇性给新型电力系统的运行带来了巨大挑战,准确地预测新能源出力对于电网的安全可靠运行尤为重要。

干吧滴! 6320

P1311 [NOIP2011 提高组] 选择客栈

两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过 p。所以我们当前客栈所能组成的最多的对数为上一家相同颜色客栈所能组成的对数,当然若当前客栈与上一家相同颜色的客栈之间有能组成的咖啡馆也会算上。每当我们找到一家客栈时这家客栈能与前一家相同颜色且满足条件的客栈组成一对,还能与能与前一家相同颜色的客栈组成一对的客栈组成一对。

benny114514的博客 529

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【NOIP2011提高组】选择客栈

题目背景 NOIP2011提高组 DAY1 试题。 题目描述 丽江河边有 n 家很有特色的客栈,客栈按照其位置顺序从 1 到 n 编号。每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们...

ETO的博客 1485

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

NOIP 2011 选择客栈

题目描述 丽江河边有 n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号。每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客...

weixin_34352449的博客 155

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

2011 选择客栈

选择客栈 题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号。每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一...

weixin_33672400的博客 490

【P1311】选择客栈

题目描述 丽江河边有n n家很有特色的客栈,客栈按照其位置顺序从 1 1到n n编号。每家客栈都按照某一种色调进行装饰(总共 kk 种,用整数 00 ~ k-1k−1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的...

贺朝夫斯基 355

一本通1546:NOIP2011 选择客栈(st算法+链表)

【题目描述】 丽江河边有 n 家很有特色的客栈,客栈按照其位置顺序从 1 到 n 编号。 每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 k−1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。 晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过 p 。 他们想知道总共有多少种选择住宿的方案,保证晚上可以找

amazingee的博客 834

选择客栈(枚举 & 方案数)

丽江河边有n家很有特色的客栈,客栈按照其位置顺序从1到n编号。每家客栈都按照某一种色调进行装饰(总共k种,用整数0k−1表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过p。他们想知道总共有多少种选择住宿的方案,保证晚上可以找到一家最低消费不超过p。

m0_60593173的博客 499

[Noip2011] 选择客栈

Description 丽江河边有 \(n\) 家很有特色的客栈,客栈按照其位置顺序从 \(1\) 到 \(n\) 编号。每家客栈都按照某一种色调进行装饰(总共 \(k\) 种,用整数 \(0\)~\(k-1\) 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打...

weixin_30527323的博客 195

P1311 选择客栈

题目 这道题目写得我真舒畅,一遍过。 由题意可以很轻松的得出这道题目是要查询区间最小值。 众所周知有两种非常普遍的方法; ST表 线段树 这里要隆重介绍的是线段树,线段树有很良好的性质。就是完全二叉树的一些性质。 如图 可以观察出 左儿子的编号是父节点编号的两倍,右儿子的编号是父节点编号的两倍加一。 这也是线段树要运用的最主要的东西。 分析完该用什么算法后接着来看思路 即 判定一个区间的最小值是...

weixin_42404190的博客 308

NOIP 选择客栈

描述 丽江河边有n家很有特色的客栈,客栈按照其位置顺序从1到n编号。每家客栈都按照某一种色调进行装饰(总共k种,用整数0~ k-1表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的...

weixin_34360651的博客 266

打卡信奥刷题(974)用C++实现信奥 P1311 [NOIP 2011 提高组] 选择客栈

丽江河边有n家很有特色的客栈,客栈按照其位置顺序从1到n编号。每家客栈都按照某一种色调进行装饰(总共k种,用整数0∼k−1表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过p。他们想知道总共有多少种选择住宿的方案,保证晚上可以找到一家最低消费不超过。

Loge谈信奥--一个专注于信奥人的博客 5685

Bailian4034 选择客栈【序列处理】

4034:选择客栈 总时间限制: 1000ms 内存限制: 65535kB 描述 丽江河边有 n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号。每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示) ,且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈) ,且咖啡店的最低消

海岛Blog 814

noip 选择客栈

题目描述 丽江河边有nn n家很有特色的客栈,客栈按照其位置顺序从 1到n编号。每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~k−1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(...

weixin_30681615的博客 292
上一篇: 【模拟】[NOIP2011]铺地毯[c++]
下一篇: 【LCA&倍增】货物运输 @upcexam5909
乌拉尔银狼
博客等级 码龄10年 9粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值