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

笔试强训(十七)

文章目录

  • 活动安排
    • 题解
    • 代码
  • 哈夫曼编码
    • 题解
    • 代码
  • 奇数位丢弃
    • 题解
    • 代码

在这里插入图片描述

活动安排

题目链接
在这里插入图片描述

题解

1. 区间贪心 + 排序
2. 如果有重叠部分,每次选择右端点较小的,可以尽可能多的选择区间个数,如果没有重叠部分,选择下一个区间的右端点为基准,重复刚刚的操作

在这里插入图片描述

代码

#include <iostream>
#include<algorithm>
using namespace std;const int N = 2e5 + 10;
typedef pair<int,int> PII;
PII a[N];int main()
{int n;cin >> n;for(int i = 0;i < n;i++) cin >> a[i].first >> a[i].second;sort(a,a+n);int ret = 0,r = a[0].second;for(int i = 1;i < n;i++){// 有重叠if(a[i].first < r){r = min(r,a[i].second);}else // 没有重叠{ret++;r = a[i].second;}}// 未记录第一个区间所以加1cout << ret + 1 << '\n';return 0;
}

哈夫曼编码

题目链接
在这里插入图片描述

题解

1. 哈夫曼编码,利用字符出现的频次构建一个二叉树,每次选择频次最小的两个数构建二叉树,根据最优二叉树编码
2. 把题目中数出现的频次放入一个小根堆中,每次取两个数相加放入堆中,然后此时也计算最短长度,直到堆中仅剩一个元素时,得到最短长度

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

代码

#include <iostream>
#include<queue>
using namespace std;const int N = 2e5 + 10;
int a[N];int main()
{// 小根堆priority_queue<long long,vector<long long>,greater<long long>> pq;int n;cin >> n;for(int i = 0;i < n;i++){cin >> a[i];pq.push(a[i]);}long long count = 0;while(pq.size() != 1){long long a = pq.top();pq.pop();long long b = pq.top();pq.pop();count += a;count += b;pq.push(a + b);}cout << count << '\n';return 0;
}

奇数位丢弃

题目链接
在这里插入图片描述

题解

1. 找规律
2. 可以看出每次删除的第一个数是2^n - 1,
求2 ^ x - 1 <= n中x的最大值就是最后剩下的数

在这里插入图片描述

代码

#include <iostream>
#include<math.h>
using namespace std;int main()
{int n;while(cin >> n){int x = 0;long long ret = 1;while(ret <= n + 1){ret += pow(2,x);x++; }cout << pow(2,x-1) - 1 << '\n';}return 0;
}#include <iostream>
using namespace std;int main()
{int n;while(cin >> n){int ret = 1;while(ret - 1 <= n) ret *= 2;cout << ret / 2 - 1 << '\n';}return 0;
}

相关文章:

  • JMeter同步定时器 模拟多用户并发访问场景
  • Google Earth Engine(GEE) 代码详解:批量计算_年 NDVI 并导出(附 Landsat 8 数据处理全流程)
  • Matlab基于SSA-MVMD麻雀算法优化多元变分模态分解
  • Python爬虫实战:研究JavaScript 环境补全逆向解密
  • 大模型MCP_MCP从流式SSE到流式HTTP_1.8.0支持流式HTTP交互_介绍_从应用到最优--人工智能工作笔记0245
  • 黑马Java跟学.最新AI+若依框架项目开发(一)
  • 手搓传染病模型(SEIARW)
  • AcroForm 格式化文本(域)字段
  • HttpSession 的运行原理
  • 2025-05-13 学习记录--Python-循环:while循环 + for循环 + 循环控制
  • Flannel vxlan模式的优缺点
  • 线性投影层---将输入特征从一个空间映射到另一个空间
  • 数据库数据清洗、预处理与质量监控、 数据质量的核心概念
  • AFFS2 的 `yaffs_ext_tags` 数据结构详解
  • LlamaIndex 第八篇 MilvusVectorStore
  • 学习黑客Windows 注册表编辑器详解
  • 无人机俯视风光摄影Lr调色预设,手机滤镜PS+Lightroom预设下载!
  • 漏桶算法的实际应用案例:数据库批量写入流量控制
  • 【SpringBoot】集成kafka之生产者、消费者、幂等性处理和消息积压
  • (顺序表、单链表、双链表)==>一篇解决!(Java版)
  • 法学联合书单|法庭上的妇女
  • 外交部:中方对美芬太尼反制仍然有效
  • 费高云不再担任安徽省人民政府副省长
  • 科普|揭秘女性压力性尿失禁的真相
  • 上海交大计算机学院成立,设多个拔尖人才特色班
  • 中国目的地·入境游简报006|外国网红游中国启示录