当前位置: 首页 > news >正文

笔试——Day36

文章目录

  • 第一题
    • 题目
    • 思路
    • 代码
  • 第二题
    • 题目:
    • 思路
    • 代码
  • 第三题
    • 题目:
    • 思路
    • 代码

第一题

题目

提取不重复的整数

在这里插入图片描述

思路

模拟

使用哈希表统计当前数字出现的次数,当次数为1时,加入结果;

代码

#include <iostream>
#include <string>
using namespace std;string str;int main() 
{cin >> str;string res;int n = str.size();int hash[10] = {0};for(int i = n - 1; i >= 0; i--){hash[str[i] - '0']++;if(hash[str[i] - '0'] == 1) res += str[i];}cout << res << endl;return 0;
}
// 64 位输出请用 printf("%lld")

第二题

题目:

哈夫曼编码

在这里插入图片描述

思路

代码

#include <iostream>
#include <vector>
#include <queue>
using namespace std;
using LL = long long;
int main() 
{int n; cin >> n;priority_queue<LL, vector<LL>, greater<LL>> pq;for(int i = 0; i < n; i++){LL x; cin >> x;pq.push(x);}LL res = 0;while(pq.size() > 1){LL a = pq.top(); pq.pop();LL b = pq.top(); pq.pop();res += (a + b);pq.push(a + b);}cout << res << endl;return 0;
}
// 64 位输出请用 printf("%lld")

第三题

题目:

abb
在这里插入图片描述

思路

动态规划

  • 状态表示:dp[i]表示以i为结尾的所有子序列,有多少个abb形式的序列

  • 状态转移方程:

    • dp[i]:表示以第i个字符为结尾的所有abb形式子序列的数量
    • f[x]:表示截止到当前位置,以字符x结尾的 ab形式子序列的数量(即第一个字符与第二个字符x不同)
    • g[x]:表示截止到当前位置,字符x出现的总次数
  • 返回值:整张dp表的和

代码

#include <iostream>
#include <string>
using namespace std;const int N = 1e5 + 10;int f[26];  // f[x]表示以字符x结尾的"ab"形式子序列数量
int g[26];  // g[x]表示字符x出现的总次数
int dp[N];  // dp[i]表示以i为结尾的"abb"形式子序列数量int main() 
{int n = 0; cin >> n;string s; cin >> s;long long res = 0;  // 存储最终结果,使用long long避免溢出for(int i = 0; i < n; i++){int x = s[i] - 'a';  // 将字符转换为0-25的索引// 累加当前字符作为最后一个b时能形成的abb子序列数量res += f[x];// 更新以当前字符为结尾的ab子序列数量f[x] = f[x] + i - g[x];// 更新当前字符的出现次数g[x] = g[x] + 1;}cout << res << endl;return 0;
}
http://www.dtcms.com/a/328543.html

相关文章:

  • Linux应用软件编程---文件操作3(文件IO及其指令、文件定位函数lseek、文件IO与标准IO的比较、缓冲区)
  • archlinux中VLC无法播放视频的解决办法
  • 【Datawhale夏令营】多模态RAG学习
  • 关于Linux编程3:fread/fwrite/流的定位/文件IO
  • 存储过程作为系统逻辑核心的架构思考 —— 以 SaaS 系统为例
  • 电商双 11 美妆数据分析:从数据清洗到市场洞察
  • 生产环境中Kubernetes Pod 安全上下文与策略的实战经验分享
  • nt!MmCreatePeb函数分析之peb中OSMajorVersion的由来
  • Flutter ExpansionPanel组件(可收缩的列表)
  • 【入门系列】图像算法工程师如何入门计算机图形学?
  • 数据分析基本内容(第二十节课内容总结)
  • MCU外设初始化:为什么参数配置必须优先于使能
  • redis的过期策略和定时器
  • 支持任意 MCP 协议的客户端
  • SQL180 每类试卷得分前3名
  • Mybatis源码解读-Plugin插件源码
  • (C++)继承全解析及运用
  • Labelme从安装到标注:零基础完整指南
  • MySQL基础面试
  • Springboot整合Thrift
  • 移动端网页调试实战,键盘弹出与视口错位问题的定位与优化
  • 汉高携手SAP推出AI驱动的退换货与争议管理解决方案
  • 赛灵思ZYNQ官方文档UG585自学翻译笔记:UART Controller,通用异步收发传输器控制器
  • Vue接口平台十三——测试记录
  • Ubuntu 全盘备份
  • 九尾狐未来机械晶核技术
  • k3s部署
  • 电脑硬件详解
  • ZYNQ AXI-GPIO学习——ZYNQ学习笔记8
  • 学习游制作记录(背包UI以及各种物品的存储)8.12