题目描述:

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

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

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

输入格式:

共n+1 行。

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

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

输出格式:

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

题解:

直接暴力枚举每个客栈,

sum[i][j]表示到第i家客栈为止,颜色为j的客栈数目。

如果客栈最低消费低于p,则求客栈左边到上一次最低消费客栈之间的各种颜色的客栈数目*客栈右边的各种颜色的客栈数目。

这个自己画图yy一下应该就出来了。

代码:

//by lzx
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
const int N=200010;
int n,k,p;
int sum[N][51];
ll ans=0;
struct node{int x,y;
}sa[N];
int main()
{scanf("%d%d%d",&n,&k,&p);int x,y;for(int i=1;i<=k;i++) sum[0][i]=0;for(int i=1;i<=n;i++){scanf("%d%d",&x,&sa[i].y);for(int j=0;j<k;j++){if(x!=j)sum[i][j]=sum[i-1][j];else sum[i][j]=sum[i-1][j]+1;}sa[i].x=x;}int flag=0;for(int i=1;i<=n;i++){if(sa[i].y<=p){for(int j=0;j<k;j++){int x1=sum[i-1][j]-sum[flag][j],y1=sum[n][j]-sum[i-1][j];ans+=x1*y1;if(sa[i].x==j)ans+=sum[n][j]-sum[i][j];}flag=i;}}printf("%lld",ans);
}

转载于:https://www.cnblogs.com/lizixuan/p/7703728.html

NOIP2011 选择客栈(洛谷P1311)相关推荐

  1. NOIP2011选择客栈[递推]

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

  2. 【洛谷P1311】选择客栈【二分】

    题目大意: 题目链接:https://www.luogu.org/problemnew/show/P1311 丽江河边有nnn家很有特色的客栈,客栈按照其位置顺序从111到nnn编号.每家客栈都按照某 ...

  3. 洛谷P1311 选择客栈

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

  4. 洛谷——P1311 选择客栈

    https://www.luogu.org/problem/show?pid=1311 题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰 ...

  5. 洛谷 P1311 选择客栈

    题目: https://www.luogu.org/problem/show?pid=1311#sub 题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某 ...

  6. NOIP2011 选择客栈

    题目描述 Description 丽江河边有 n 家很有特色的客栈,客栈按照其位置顺序从1 到n 编号.每家客栈都按照某一种色调进行装饰(总共k 种,用整数0 ~ k-1 表示),且每家客栈都设有一家 ...

  7. NOIP2011 D1 T2选择客栈

    上题目: 题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每 ...

  8. 洛谷P1003 铺地毯 noip2011提高组day1T1

    洛谷P1003 铺地毯 noip2011提高组day1T1 洛谷原题 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n ...

  9. 信息学奥赛一本通 1956:【11NOIP普及组】表达式的值 | 洛谷 P1310 [NOIP2011 普及组] 表达式的值

    [题目链接] ybt 1956:[11NOIP普及组]表达式的值 洛谷 P1310 [NOIP2011 普及组] 表达式的值 [题目考点] 表达式树 由带括号的中缀表达式构建表达式树 [解题思路] 思 ...

最新文章

  1. ASP .NET Core Web Razor Pages系列教程二:添加模型到Razor Pages网络应用程序
  2. sublime 设置自动换行
  3. 情绪对使用产品的影响——读《设计心理学》
  4. 【源码】2012年斗地主结构算法公布(斗地主结构算法)
  5. Asp.net MVC3.0 入门指南 4 模型 Model
  6. 最大化参数 火车头_新手必看的火车头采集器使用入门教程_图文解说版!(看完包会)...
  7. 数据库select语句详解
  8. python将文字转换成图片_python将文本转换成图片输出的方法
  9. Latex录入参考文献bib.bib文件
  10. java中的堆栈的意思,java – 堆栈跟踪中的数字是什么意思?
  11. tsx vue3 自定义指令
  12. maven私服deploy-405错误
  13. android环信删除会话列表,关于环信删除会话之后,从好友列表进入无法显示聊天消息...
  14. 旋转编码开关 EC11 的工作原理
  15. CVPR 2021 结果出炉!最全论文下载及分类汇总(更新中)
  16. 淘宝官方商品、交易、订单、物流接口列表
  17. win7台式计算机怎么连热点,win7热点怎么设置 win7热点设置的具体方法介绍
  18. 阮一峰RESTful API规范
  19. 科学史上最伟大的十位单身科学家
  20. 字符串查找 cmd find命令

热门文章

  1. 编译和链接的区别、makefile怎么写
  2. 查看tensorflow是否支持GPU,以及测试程序
  3. Apache PDFbox快速开发指南
  4. VS2008下直接安装使用Boost库1 46 1版本
  5. 数据可视化系列(六):场景案例显神通
  6. Golang笔记——反射
  7. Skywalking-07:OAL原理——解释器实现
  8. android 的 sp 智能指针用法介绍 sp wp
  9. 将字符串转为16进制数_C语言中的进制互转与数值和字符串互转的混搭玩法
  10. matlab如何绘制传递函数对数幅频特性_开环传递函数是怎样影响系统的?重要参量1/(1+T)与T/(1+T)的释义...