NOIP2011 选择客栈

题目描述 Description

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

输入描述 Input Description

共n+1 行。
第一行三个整数 n,k,p,每两个整数之间用一个空格隔开,分别表示客栈的个数,色调的数目和能接受的最低消费的最高值;
接下来的 n 行,第i+1 行两个整数,之间用一个空格隔开,分别表示i 号客栈的装饰色调和i 号客栈的咖啡店的最低消费。

输出描述 Output Description

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

样例输入 Sample Input

5 2 3
0 5
1 3
0 2
1 4
1 5

样例输出 Sample Output

3

数据范围及提示 Data Size & Hint

【输入输出样例说明】

客栈编号
色调 
最低消费 5

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。

#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<vector>
#include<queue>
#include<stack>
#include<algorithm>
#define maxn 200005
#define maxint ~0U>>2
using namespace std;
int n,k,p,money[maxn],col[maxn],d[maxn][30],ans = 0;
vector<int> hotel[55];
void input(){cin>>n>>k>>p;for(int i = 0;i < n;i++){scanf("%d%d",&col[i],&money[i]);hotel[col[i]].push_back(i);}
}
void init_rmq(){for(int i = 0;i < n;i++) d[i][0] = money[i];for(int j = 1;(1<<j) <= n;j++){for(int i = 0;i + (1<<j) - 1 < n;i++){d[i][j] = min(d[i][j-1],d[i+(1<<(j-1))][j-1]);}}
}
int rmq(int l,int r){int k = 0;while((1<<(k+1)) <= r-l+1) k++;return min(d[l][k],d[r-(1<<k)+1][k]);
}
void work(){int now;for(int i = 0;i < k;i++){if(hotel[i].size() < 2) continue;for(int j = 0;j < hotel[i].size() - 1;j++){for(int k = j + 1;k < hotel[i].size();k++){now = rmq(hotel[i][j],hotel[i][k]);if(now<=p) {ans += hotel[i].size() - k;break;}}}}cout<<ans<<endl;
}
int main(){input();init_rmq();work();return 0;
}#include <iostream>#include <cstdio>using namespace std;int n,k,p,sum[201000][60],colour[201000],f[201000],ans;//f[]记录距每个点最近的花费小于p的点,sum[i][j]存从0到i第j种颜色有几个(前缀和)int main(){scanf("%d%d%d",&n,&k,&p);for(int i=1;i<=n;i++){int x;scanf("%d%d",&colour[i],&x);for(int j=0;j<k;j++)sum[i][j]+=sum[i-1][j];sum[i][colour[i]]++;if(x<=p)f[i]=i;elsef[i]=f[i-1];}for(int i=2;i<=n;i++){if(f[i]==i)ans+=sum[i][colour[i]]-1;//若其本身便是离其最近的花费小于p的点,那么前面榆次店一样颜色的点都可与之组合,符合题目要求,所以加上前缀和,但因为会多加一个(该点自己,因两两组合),所以要减去一个elseans+=sum[f[i]][colour[i]];//若本身不是离其最近的花费小于p的点,那么离它最近的那个点向前与现在n所在这个点颜色相同的(包含n所在这个个点)点都可与之形成符合题目要求的组合,所以加上前缀和(从f[]往前的区间)

}printf("%d",ans);return 0;}

 

转载于:https://www.cnblogs.com/hyfer/p/5848268.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue项目转rem;H5配置rem;px转rem

H5可以配合vant组件库书写项目&#xff0c;和使用rem后vant组件样式变小了解决办法。&#xff08;引入方式&#xff09; 以下是配置rem步骤&#xff1a; 1.安装 flexible和 postcss-px2rem&#xff08;命令行安装&#xff09; lib-flexible 会自动在为你添加 meta name“viewp…

rip

如何使rip中实现等价均衡 目的&#xff0c;使r3收到的关于172.16.0.0的metric值由2变成5r1的出接口做首先定义访问控制列表access-list 1 permit 172.16.0.0 0.0.0.0router ripoffset-list 1 out 3 s1 172.16.1.0 12.1.10.0 13.1.1.0r2 ----------- r1 ------------…

通过进程ID获取基地址

From: http://blog.csdn.net/firefoxbug/article/details/7201351 下面代码是通过进程ID来获取进程的基地址&#xff0c;创建一个进程快照后&#xff0c;读取进程模块&#xff0c;一般情况下第一个模块就是进程的基地址&#xff0c;下面的程序通过模块的字符串匹配来找到基地址…

git代码回滚到以前某一版本

1.使用 git log 查看之前提交的版本&#xff0c;每一版对应的hash值&#xff0c;默认展示几条&#xff0c;如果想查看更多&#xff0c;一直按回车。 git reset --hard 目标版本hash值 &#xff0c;注意&#xff1a;这一步操作完后&#xff0c;目标版本之后的代码将全部清掉&am…

滑冰为什么这么难

春天快到了&#xff0c;冬天马上要过去了&#xff0c;不好好利用东北这地方的天然优势实在是可惜。所以趁着冰还没化的时候&#xff0c;我决定尝试滑冰。小时候也滑过&#xff0c;但是不像现在这么害怕&#xff0c;从穿起冰鞋的那一刻起&#xff0c;紧张感随之而来&#xff0c;…

python发送各类邮件的主要方法

From: http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html python中email模块使得处理邮件变得比较简单&#xff0c;今天着重学习了一下发送邮件的具体做法&#xff0c;这里写写自己的的心得,也请高手给些指点。 一、相关模块介绍 发送邮件主要用到了smtplib和e…

codevs4343 找回密码

题目描述 DescriptionjrMz 很喜欢动漫《叛逆的鲁鲁修》(额 不知道是不是因为他盯上了动画片里的 MM),他准备以一种神奇的方式降临《叛逆的鲁鲁修》世界,所以他先从《变形金刚》里把大黄蜂拐了出来,然后成功加入了黑色骑士团。不过比较坑的事情出现了,正在与机甲激烈战斗中的大黄…

图片保持比例自适应大小;图片保持比例自动充满父元素;图片保持比例充满盒子

需求&#xff1a;经常会有一个div盒子&#xff0c;里面放入一个img图片。需要是图片保持比例&#xff0c;缩放充满div盒子。 思路&#xff1a; 1.必须给父元素设置固定的宽高。2.给img设置 object-fit: scale-down; 属性 object-fit使用学习 先看效果&#xff1a; <!DOCTYP…

如何利用好新浪微博

本文可以简要概括为如何利用新浪微博并安全的使用微博等社交网站或工具。 随着互联网和计算机技术的发展&#xff0c;涌现了许许多多的技术应用。从以前的电子邮件到论坛到博客再到微博。尽管我们在许许多多的技术方面引用了国外成功的例子&#xff08;特别是在IT领域&#xff…

HibernateTemplate的一些常用方法总结

1&#xff1a;get/load存取单条数据public Teacher getTeacherById(Long id) { return (Teacher)this.hibernateTemplate.get(Teacher.class, id); } public Teacher getTeacherById(Long id) { return (Teacher)this.hibernateTemplate.load(Teacher.class, id); } 2&#xff…

解决SVN提交代码时的错误:“Could not execute PROPPATCH”

今天在提交代码的时候&#xff0c;SVN报出了一个错误&#xff08;斜体黑字部分&#xff09;&#xff1a; 提交失败(细节如下): 至少有一个属性变更失败&#xff1b;版本库未改变 设置属性 “log” 出错: Could not execute PROPPATCH. 最初&#xff0c;在我Google了一些信…

Python序列之元组

系列文章目录 Python序列之列表 Python序列之元组 系列文章目录前言一、元组是什么&#xff1f;二、元组操作1.元组的创建&#xff08;1&#xff09;通过()创建。小括号可以省略。&#xff08;2&#xff09;通过tuple()函数创建。&#xff08;3&#xff09;通过生成器推导式创…

Eclipse 下载 开源项目 maven依赖丢失和 Deployment Assembly 丢失

周末下载了最新的jeecg的源码来瞅瞅&#xff0c;但是下载后发现&#xff0c;pom文件中定义的依赖都丢失了。 如下图 上网搜索了一下啊&#xff0c;发现需要先给这个项目这个项目 disable maven nature 然后再添加上再给这个项目添加maven支持。 如下图&#xff1a; 然后再查看项…

windows隐藏python运行时的终端

From: https://my.oschina.net/sanpeterguo/blog/337263 摘要: windows上如果想执行一些常驻进程&#xff0c;使用python需要打开终端&#xff0c;容易误操作关掉。本文介绍一种在后台启动的解决方法&#xff0c;其实核心功能很简单&#xff0c;使用 start pythonw xxx.py 进行…

HTML CSS样式表布局

一、position&#xff1a;fixed 锁定位置&#xff08;相对于浏览器的位置&#xff09;&#xff0c;例如有些网站的右下角的弹出窗口。 示例&#xff1a; 二、position&#xff1a;absolute 1.外层没有position&#xff1a;absolute&#xff08;或relative&#xff09;&#xff…

css设置line-height无效,为什么设置span的line-height属性无效?

对于块级元素&#xff0c;CSS属性line-height指定了元素内部line-boxes的最小高度。 对于非替代行内元素&#xff0c;line-height用于计算line box的高度。 加上 display: block; 或者 display: inline-block;是行内元素,用line-heigh需要把变成块状元素用。

SVN服务器搭建和使用(一)

2019独角兽企业重金招聘Python工程师标准>>> Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 感谢原文博主&#xff1a;http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407610.html 首先来下载和搭建SVN服务器. 现在Subver…

C#使用Protocol Buffer(ProtoBuf)进行Unity中的Socket通信

From: http://www.jb51.net/article/82795.htm 这篇文章主要介绍了C#使用Protocol Buffer(ProtoBuf)进行Unity的Socket通信的实例,Protocol Buffer是Google开发的数据格式,也是除了XML和JSON之外人气第三高的^^需要的朋友可以参考下首先来说一下本文中例子所要实现的功能&#…

监听el-table滚动到底;vue自定义指令监听el-table的滚动事件

链接地址&#xff1a;监听el-table滚动到底&#xff1b;vue自定义指令监听el-table的滚动事件

泛型通用函数的一些特殊问题的解决方法

首先先感谢MSDN中的一些优秀的外国友人精彩的回答&#xff0c;我从那里也受益良多&#xff0c;写此博文。 自从2.0版本的net framework推出之后泛型&#xff08;Generic&#xff09;得到了广泛好评。它不必像object类型一样性能上因为“拆箱”或者“装箱”得到损失&#xff0c;…