题目来源:洛谷P1311 思路 纯暴力明显过不了这道题 所以我们要考虑如何优化到至多只能到nlogn 但是我们发现可以更优到O(n) 我们假设我们当前寻找的是第二个人住的客栈i 那么第一个人住的客栈肯定在i之前 如果在枚举的时候发现一家客栈满足小于可承受价格 那么这家客栈左边与i客栈颜色相同的都可以视为一种方案 所以我们需要一个数组sum[k]记录到i之前第k种颜色一共有几家客栈 last[k]数组存下第k种颜色在i之前的最后一家客栈(判断满足价格的客栈颜色是否在此这种颜色最后一家位置的后面)…
可能这做法是最奇葩的ST表 我们枚举k,计算每种色调的客栈各有多少种方法  我们利用一种奇怪的思想:除了不可行的,剩下的都是可行的 所以我们先求出 每种颜色的客栈随机选择两个,一共有多少种结果 接着减去所有不合法的方案 不合法的方案怎么算? 从0到n枚举所有颜色为k的客栈如果相邻两个客栈之间有满足要求(<p)的咖啡馆而且是第一次发现 用st表来计算两家客栈之间有没有符合要求的咖啡馆 那么我们可以断定前面一段的客栈无论怎么组合都是不合法的 (叉号表示客栈之间没有满足要求的咖啡馆,sum2指的是前面…
枚举在那个咖啡店喝咖啡 想要计算咖啡店两侧同色的客栈的对数 枚举i求和(左边第i种颜色的个数*右边第i种颜色的个数) 前缀和+后缀和 f[i][j]f[i][j]f[i][j]表示到第i家客栈及之前颜色为j的客栈有几个 f[i][j]=f[i−1][j]+(color[i]==j)f[i][j]=f[i-1][j]+(color[i]==j)f[i][j]=f[i−1][j]+(color[i]==j) g[i][j]g[i][j]g[i][j] 表示到第i家客栈及之后颜色为j的客栈有几个 g[…
题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费. 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中.晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过 p . 他们想知道总共有多少种选择住宿的方案,保证晚上可…
题目链接 掌握了分块打表法了.原来以前一直想错了... 块的大小\(size=\sqrt n\),每隔\(size\)个数打一个表,还要在\(0\text{~}size-1\)每个数打一个表. 然后就可以做到\(O(1)\)查询了. 比如要求\(A^{n}\),只需要算出\(biao[n/size]*pow[n\mod size]\)就好了. 然后我是看题解用了通项公式..事实上套个矩阵也没有影响. #include <cstdio> #include <cmath> #defin…
占坑 先贴上AC代码 回头来补坑 #include <iostream> using namespace std; int n, k; const int mod = 100003; long long f[1000000]; int main() { cin >> n >> k; f[0] = 1; for (int i = 1; i <= n; i++) { if (i <= k) { //当 当前阶梯 小于一次性可以跨越的阶梯的时候 for (int…
洛谷题面传送门 u1s1 这个推式子其实挺套路的吧,可惜有一步没推出来看了题解 \[\begin{aligned} res&=\sum\limits_{i=0}^ni^k\dbinom{n}{i}(\dfrac{1}{m})^i(\dfrac{m-1}{m})^{n-i}\\ &=\sum\limits_{i=0}^n\sum\limits_{j=1}^k\begin{Bmatrix}k\\j\end{Bmatrix}i^{\underline{j}}\dbinom{n}{i}(\dfra…
P1311 选择客栈 题目描述 丽江河边有 \(n\) 家很有特色的客栈,客栈按照其位置顺序从 \(1\) 到 \(n\) 编号.每家客栈都按照某一种色调进行装饰(总共 \(k\) 种,用整数 \(0\) ~ \(k-1\) 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费. 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中.晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店…
P1311 选择客栈 题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费. 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中.晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过 p . 他们想知道总共有多少种选择…
P1311 选择客栈 题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费. 两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中.晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过 p . 他们想知道总共有多少种选择…