【五一qbxt】day7-2 选择客栈
停更20天祭qwq(因为去准备推荐生考试了一直在自习qwq)


这道题的前置知识是DP,可以参考=>【五一qbxt】day3 动态规划 鬼知道我写的是什么emm
这道题真的做了超级久了,大约从五六号的开始做吧,推荐生考试一直耽搁了qwq
鹅且——我wa了好多好多次qwq,也真是令人质壁分离了。
一个O(n)的动态规划的思路:
准备好多好多不同的数组:
- pre[i] 表示位置 i 之前 (包括位置 i) 最大的满足最低消费的咖啡店位置
- pos[j] 表示第 j 种颜色客栈目前出现的最大的位置
- tot[j] 表示第 j 种颜色客栈目前出现的总个数
- 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 选择客栈的更多相关文章
- NOIP2011选择客栈[递推]
题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均 ...
- 选择客栈noip2011
哈,没想到吧.今天居然有两篇(算什么,厕所读物吗 选择客栈 本题的更优解请跳转zt 这题11年,刚改2day. 对于30% 的数据,有 n ≤100: 对于50% 的数据,有 n ≤1,000: 对于 ...
- 一本通1546【NOIP2011】选择客栈
1546:NOIP2011 选择客栈 时间限制: 1000 ms 内存限制: 524288 KB 题目描述 丽江河边有 n 家很有特色的客栈,客栈按照其位置顺序从 1 到 n 编号. ...
- 洛谷 P1311 选择客栈 解题报告
P1311 选择客栈 题目描述 丽江河边有 \(n\) 家很有特色的客栈,客栈按照其位置顺序从 \(1\) 到 \(n\) 编号.每家客栈都按照某一种色调进行装饰(总共 \(k\) 种,用整数 \(0 ...
- 洛谷P1311 选择客栈
P1311 选择客栈 题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一 ...
- 【11NOIP提高组】选择客栈(信息学奥赛一本通 1546)(洛谷 1311)
题目描述 丽江河边有nn家很有特色的客栈,客栈按照其位置顺序从 11到nn编号.每家客栈都按照某一种色调进行装饰(总共 kk 种,用整数 00 ~k-1k−1 表示),且每家客栈都设有一家咖啡店,每家 ...
- Noip2011 提高组 选择客栈
P1311 选择客栈 直通 思路: ①看题,我们可以发现一个显然的性质,即当最左边的客栈向右移动时,最右边的客栈时单调向右的,并且右端点往右的客栈也符合要求.(因为只要左侧有一个满足的,右边的自然可以 ...
- luoguP1311 选择客栈 题解(NOIP2011)
P1311 选择客栈 题目 #include<iostream> #include<cstdlib> #include<cstdio> #include<c ...
- Luogu P1311 选择客栈(前缀和)
P1311 选择客栈 题意 题目描述 丽江河边有\(n\)家很有特色的客栈,客栈按照其位置顺序从\(1\)到\(n\)编号.每家客栈都按照某一种色调进行装饰(总共\(k\)种,用整数\(0\)~\(k ...
随机推荐
- d3与echarts的区别
1. 目前各大公司的大数据平台多使用d3还是echarts?什么时候适合用echarts,什么时候适合用d3? 在我看几种数据可视化平台多使用折线图,面积图和柱状图,条图居多,对于echarts和d3 ...
- noscript
<noscript> <article id="noscript" class="error info_panel"> <head ...
- 轻便的gb28181协议中的rtp+ps格式视频流的封装和解析
streams 轻便的gb28181协议中的rtp+ps格式视频流的封装和解析 packet packet实现ps的相关封装和解析, example/enc 通过joy4来读本地视频文件,然后调用Rt ...
- motd - 当日消息
描述 (DESCRIPTION) 在 登录 系统 后, 执行 登录 shell 前, login(1) 显示 /etc/motd 中的 内容. "motd" 意思是 "m ...
- VNware上安装虚拟机Ubuntu16.10 并安装petalinux
1.下载 VMware VMware-workstation-full-15.0.0-10134415.exe 自己寻找激活码 Ubuntu镜像 UG1144 PetaLinux Tools Docu ...
- bzoj4002 [JLOI2015]有意义的字符串 特征根+矩阵快速幂
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4002 题解 神仙题. 根据下面的一个提示: \[ b^2 \leq d \leq (b+1)^ ...
- TP5+阿里云OSS上传文件第三节,实现淘宝上传商品图片
**TP5+阿里云OSS上传文件第三节,实现淘宝上传商品图片首先我们来看看淘宝的功能和样式:** 之后看看制作完成的演示:(由于全部功能弄成GIF有点大,限制上传大小好像在1M之内,压缩之后也有1.9 ...
- JVM内存分配调优
Reference: https://time.geekbang.org/column/article/108139 参考指标 GC频率:⾼频的FullGC会给系统带来⾮常⼤的性能消耗,虽然Minor ...
- JAVA学习笔记--ClassLoader
仅先摘要书中内容以记之,后续也许需要更深入的去探索.先推荐篇博文http://blog.csdn.net/xyang81/article/details/7292380 6.9 初始化和类装载 在许多 ...
- rk3328编译Linux固件
一.编译 Linux 固件 这一章将介绍编译 ROC-RK3328-CC Linux 固件的整个流程. 1.1 准备工作 Linux 固件在如下的环境中编译: Ubuntu 16.04 amd64 安 ...