停更20天祭qwq(因为去准备推荐生考试了一直在自习qwq)

【noip2011选择客栈】

这道题的前置知识是DP,可以参考=>【五一qbxt】day3 动态规划 鬼知道我写的是什么emm

这道题真的做了超级久了,大约从五六号的开始做吧,推荐生考试一直耽搁了qwq

鹅且——我wa了好多好多次qwq,也真是令人质壁分离了。

一个O(n)的动态规划的思路:

准备好多好多不同的数组:

  1. pre[i] 表示位置 i 之前 (包括位置 i) 最大的满足最低消费的咖啡店位置
  2. pos[j] 表示第 j 种颜色客栈目前出现的最大的位置
  3. tot[j] 表示第 j 种颜色客栈目前出现的总个数
  4. res[i] 表示位置 i 作为右端点能组成多少组配对

可能有点抽象,so:

现在已经知道一组并不毒瘤的良心数据:

5 2 3 
0 5 
1 3 
0 2 
1 4 
1 5(其实就是洛谷的样例)

辣么:

这样大概可能应该会好理解一点吧qwq。

前面的pos与tot都是记录的当前值,因此很显然我们要一边处理一边DP:

首先输入一组color与money

判断新输入的这个客栈是否满足最低消费的需要,如果满足,pre[i]=i;否则显然pre[i]的值与上一个客栈的pre相同emm

注意:处理完pre后要接着去处理res,处理的顺序应为:pre=>res=>tot&pos;

处理res:(转移方程)

把选择每种颜色的客栈都枚举一下:

判断当前客栈与前一个颜色相同的客栈之间是否有满足最低消费的另一客栈,如果没有,前一个颜色相同的客栈的组合数就等于当前客栈的组合数。

举个例子:

如果有,那么对于i之前的每一个与之颜色相同的客栈都可以与i配对组成一种方案,即pre[i]=tot[c]

这样转移方程就有了:

然后对于每个方案都+起来,就是最后的ans;

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
const int maxn = ;
const int maxk = ; using namespace std; int n,k,p,c,m,ans,maxl;
int pre[maxn],pos[maxn],tot[maxn],res[maxn]; int main(){ scanf("%d%d%d",&n,&k,&p);
for(int i = ;i <= n;i++){
scanf("%d%d",&c,&m);
if(m <= p) pre[i] = i;
else pre[i] = pre[i-]; for(int j = ;j < k;j++){
if(pre[i] < pos[c]) res[i] = res[pos[c]];
else res[i] = tot[c];
} pos[c] = i;
tot[c]++;
ans += res[i];
} cout<<ans<<endl;
}

end-

【五一qbxt】day7-2 选择客栈的更多相关文章

  1. NOIP2011选择客栈[递推]

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

  2. 选择客栈noip2011

    哈,没想到吧.今天居然有两篇(算什么,厕所读物吗 选择客栈 本题的更优解请跳转zt 这题11年,刚改2day. 对于30% 的数据,有 n ≤100: 对于50% 的数据,有 n ≤1,000: 对于 ...

  3. 一本通1546【NOIP2011】选择客栈

    1546:NOIP2011 选择客栈 时间限制: 1000 ms         内存限制: 524288 KB 题目描述 丽江河边有 n 家很有特色的客栈,客栈按照其位置顺序从 1 到 n 编号. ...

  4. 洛谷 P1311 选择客栈 解题报告

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

  5. 洛谷P1311 选择客栈

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

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

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

  7. Noip2011 提高组 选择客栈

    P1311 选择客栈 直通 思路: ①看题,我们可以发现一个显然的性质,即当最左边的客栈向右移动时,最右边的客栈时单调向右的,并且右端点往右的客栈也符合要求.(因为只要左侧有一个满足的,右边的自然可以 ...

  8. luoguP1311 选择客栈 题解(NOIP2011)

    P1311 选择客栈  题目 #include<iostream> #include<cstdlib> #include<cstdio> #include<c ...

  9. Luogu P1311 选择客栈(前缀和)

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

随机推荐

  1. Linux时间命令date

    date:打印当前时间 date "+定制信息":自定义格式打印时间 - date "+%H":打印当前时间的小时数 - date "+%H%M%S& ...

  2. 线程屏障CyclicBarrier实现原理

    生产环境中,存在需要等待多个线程都达到某种状态后,才继续运行的情景.并发工具CyclicBarrier就能够完成这种功能.本篇从源码方面,简要分析CyclicBarrier的实现原理. 使用示例 pu ...

  3. 文献管理工具mendeley登录问题

    mendeley是一个文献管理工具,但是有一个让人诟病的地方是第一次登录,容易出现问题: 1.点击登录按钮后,报出红色警告 这个百度的问题中,经常提到的是这个,去点击红色错误的链接,通常应该是需要fa ...

  4. javaweb各种框架组合案例(八):springboot+mybatis-plus+restful

    一.介绍 1. springboot是spring项目的总结+整合 当我们搭smm,ssh,ssjdbc等组合框架时,各种配置不胜其烦,不仅是配置问题,在添加各种依赖时也是让人头疼,关键有些jar包之 ...

  5. html+css+javascript学习记录1

    <p> 最近在学一部分前端,知识点很多,却没怎么系统地应用过,因而理解可能不够深吧.所以我想做点片段似的东西,不懂的再在网上搜一搜,这样可能会更有意思点,所以做了这个记录,希望自己坚持下去 ...

  6. WiFi密码新攻击破解方法,黑客攻破只需10秒

    近日,中国知名黑客安全组织东方联盟研究人员透露了一种新的WiFi黑客技术,使黑客更容易破解大多数现代路由器的WiFi密码,并且攻破只需要10秒,速度非常快. 方法是利用由流行的密码破解工具Hashca ...

  7. Spring的AOP和IoC及隔离级别

    Spring的AOP和IoC Spring AOP:代理机制.Spring提供的自动代理机制 Spring的IoC来实组件之间的依赖关系注入, 使控制层与业务实现分离,即客户通过调用业务委托接口来调用 ...

  8. SPOJ QTREE - Query on a tree 【树链剖分模板】

    题目链接 引用到的大佬博客 代码来自:http://blog.csdn.net/jinglinxiao/article/details/72940746 具体算法讲解来自:http://blog.si ...

  9. 16 :IDEA快速键

    ctrol+z ctrol+shift+z  重做 复制,粘贴,删除,(行操作,光标放在那里就可以操作,不要全选择) 注:特别:查询出来,文件是可以直接编辑的 crtol+F double +shif ...

  10. .Net Core 学习目录(搁置)

    简介 .NET Core 是.NET Framework的新一代版本,是微软开发的第一个官方版本,具有跨平台 (Windows.Mac OSX.Linux) 能力的应用程序开发框架 (Applicat ...