- 博客(3)
- 收藏
- 关注
原创 PapaMelon #11计算排列的编号 [组合数学]
题目链接计算排列的编号题解这是 #10 计算第 K 个排列 的 题解,本题和第 10 题揭解法相同从最高位开始考虑,根据每一位填的数字是什么,确定跳过了多少个排列#include <iostream>#include <vector>using namespace std;using ll = long long;vector<ll> f(21);void init() { f[0] = 1; for (int i = 1; i &l
2021-07-16 22:51:04 134
原创 PapaMelon #10 计算第 K 个排列 [组合数学,排列]
题目链接计算第 K 个排列题解由于 nnn 比较大,无法用暴力来做(从小到大枚举所有排列,直到找到第 KKK 个)我们可以按位来确定,当确定第 111 位应该填什么数字的时候,后面 n−1n-1n−1 位将可以产生 (n−1)!(n-1)!(n−1)! 种不同的排列,因此我们不是逐一枚举,而是每次跳过 (n−1)!(n-1)!(n−1)! 个#include <cstdio>#include <cstring>#include <iostream>
2021-07-12 21:52:34 127
原创 PapaMelon #4 长度为 K 的回文子串 [字符串哈希]
题目链接长度为 K 的回文子串题解腾讯面试真题可以用回文串算法解决,也可以用字符串哈希来解决长度为 K 的子串一共有 n-K+1 个,n 是字符串长度。我们枚举所有这样的子串,然后从中间分割开,判断一下左右两边是否相等。判断两个字符串是否相等,用字符串哈希能做到 O(1)O(1)O(1)#include <iostream>#include <vector>using namespace std;const int INF = 0x3f3f3f3f;v
2021-07-12 16:57:44 334
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人