C++笔试强训day36

目录

1.提取不重复的整数

2.【模板】哈夫曼编码

3.abb


1.提取不重复的整数

链接https://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1?tpId=37&tqId=21232&ru=/exam/oj

按照题意模拟就行,记得从右往左遍历

cpp 复制代码
#include <iostream>
using namespace std;

int a[10];
int main() {
    string s;
    cin >> s;

    for (int i = s.size() - 1; i >= 0; --i)
        if (a[s[i] - '0']++ == 0)
            cout << s[i] - '0';
    cout << endl;
    return 0;
}

2.【模板】哈夫曼编码

链接https://www.nowcoder.com/practice/4c0419eb07c840ca8402e4f2a52cfd49?tpId=308&tqId=40489&ru=/exam/oj

做这题前首先需要去了解哈夫曼编码。

因为题中已经给出了每个字符的频次,因此可以直接用优先队列(堆)解决,但别忘了用小根堆。

3.abb

链接https://www.nowcoder.com/practice/0a8bbf8b9b5b4280957849ef4f240f07?tpId=230&tqId=38957&ru=/exam/oj

一道动态规划题,同样是去找出它的状态表示:

dpx : 以 x 元素结尾的所有子序列中,_xx的个数

要想拿到dpx,则需要找到以 x 元素结尾的所有子序列中,_x的个数。

将其(以 x 元素结尾的所有子序列中,_x的个数 )定义为 fx ,要想拿到 fx ,则需要找到区间0, i - 1非 x 的个数,(这里我们转化为 x 的个数,最后用 i {区间总数} 减去 x 个数即可),(定义为gx

然后就是状态转移方程:

dpx = fx, (因为这时候遍历到的数就是 x,_x 加上x即为_xx)

fx = fx + (i - gx)

gx = gx + 1

注意状态转移方程顺序,要先更新 fx 后才能更新 gx

最后是返回值:

返回的是所有字母为结尾的个数的和。即所有的dpx。因为dpx = fx

所以可以不需要dpx

cpp 复制代码
#include <iostream>
#define int long long
using namespace std;

int f[26];
int g[26];
char s[100010];
int n;

signed main() {
    cin >> n;
    for(int i = 0; i < n; ++i)
        cin >> s[i];

    int ret = 0;
    for(int i = 0; i < n; ++i)
    {
        int x = s[i] - 'a';        
        ret += f[x];

        f[x] = f[x] + i - g[x];
        g[x] = g[x] + 1;
    }

    cout << ret << endl;
    return 0;
}
相关推荐
郭涤生2 小时前
C++ 高性能编程最佳实践清单
开发语言·c++
用户987409238872 小时前
llamafactory 0.6.3 没有 llamafactory-cli
算法
计算机安禾2 小时前
【算法分析与设计】第26篇:参数化算法与固定参数可解性理论
大数据·人工智能·算法·机器学习·剪枝
.千余2 小时前
【C++】C++类与对象2:C++构造函数、运算符重载与流输入输出全面解析
c语言·开发语言·前端·c++·经验分享
郭涤生2 小时前
C++ 高性能状态机
开发语言·c++
AI科技星2 小时前
基于**v=c(空间光速螺旋运动)唯一第一性原理**重新完整求导证明
人工智能·线性代数·算法·机器学习·架构·概率论·学习方法
风筝在晴天搁浅3 小时前
美团 LeetCode 692.前K个高频单词
算法·leetcode·职场和发展
酿情师3 小时前
Microsoft Visual C++ Build Tools 2026 下载与安装指南(Windows)
c++·windows·microsoft
cany10003 小时前
C++ -- 引用悬挂
c++
地平线开发者3 小时前
量化训练时 fusebn/withbn 简介
算法·自动驾驶