丽江河边有 n 家很有特色的客栈,客栈按照其位置顺序从 1 到 n 编号。 每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 k−1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家...
丽江河边有n家客栈,客栈按照其位置顺序从1到n编号。每家客栈都按照某一种色调进行装饰(总共k种,用整数0 ~ k-1表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一...
咖啡店要尽量靠右 所以可以记录目前最右边的合法咖啡店左边每种颜色的客栈的个数 cnt[ color ] 然后如果更右边有合法的咖啡店,就更新一波 cnt 累计所有右端点的情况 复杂度 O(nk) #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; const int ...
#include <iostream>#include<cstdio>usingnamespacestd;constintK =101;intn,k,p,ans;intprecnt[K],ok[K],last[K];//precnt[x] i点前颜色为x的客栈数//ok[x] i点前满足能有价格<=p的客栈的颜色为x的客栈数//last[x] i点 前一个颜色 为x的点的编号intmain() { scanf("%d%d%d",&n,&k...
P6032 选择客栈 加强版 题目链接 递推。 其实思路挺难想的,但代码好打。 $last[x]$表示$x$这个颜色上一次出现的位置。 $cnt[x]$表示$x$这个颜色出现的次数。 $sum[x]$相当于一个寄存器,实时更新$x$颜色的答案。 思路就是枚