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

牛客刷题记录01

除2!

目录

除2!

题目描述:

​编辑 题目解析:

代码实现:

数组中两个字符串的最小距离__牛客网

题目描述:

题目解析:

代码实现:


除2!

题目描述:

给一个数组,一共有 n n\ n 个数。
你能进行最多 k k\ k 次操作。每次操作可以进行以下步骤:

  • 选择数组中的一个偶数 aia_iai​,将其变成 ai/2a_i/2ai​/2 。

现在你进行不超过 k k\ k 次操作后,让数组中所有数之和尽可能小。请输出这个最小的和。

 题目解析:

        不难想到,每次对最大的偶数除2即可,我们可以使用堆来获取每次更新后最大的偶数。

代码实现:

#include <iostream>
#include <queue>
using namespace std;long long Continuously_divide_by_2()
{priority_queue<int> q;int n, k;cin >> n >> k;long long ans = 0;for (int i = 0; i < n; i++){int t;cin >> t;ans += t;if (t % 2 == 0)q.push(t);}int m = 0;while (m < k && !q.empty()){int t = q.top();q.pop();t /= 2;ans -= t;if(t % 2 == 0)q.push(t);m++;}return ans;
}int main()
{cout << Continuously_divide_by_2() << endl;return 0;
}

 这里的结果需要用long long保存。

数组中两个字符串的最小距离__牛客网

题目描述:

给定一个字符串数组strs,再给定两个字符串str1和str2,返回在strs中str1和str2的最小距离,如果str1或str2为null,或不在strs中,返回-1。

 

题目解析:

  • 这道题我们甚至不需要用一个字符串数组来保存这些字符串;
  • 我们只需要一个pos变量来记录最新出现的目标字符串的位置,和一个tmpstr变量来记录出现的是哪个目标字符串(因为有两个);
  • 当出现的目标字符串于tmpstr不一样的时候,就可以尝试更新距离,只要出现目标字符串就更新pos。 

代码实现:

#include <iostream>
using namespace std;int Minimum_distance() {int n = 0;string str1, str2, strs, strt;int pos = 0;cin >> n;cin >> str1 >> str2;int ans = n + 1;for (int i = 0; i < n; i++) {cin >> strs;if (strs == str1) {if (strt.empty() || strt == str1) {}else {ans = min(ans, i - pos);}pos = i;strt = str1;} else if (strs == str2) {if (strt.empty() || strt == str2) {}else {ans = min(ans, i - pos);}pos = i;strt = str2;}}if (ans == n + 1) return -1;else return ans;
}int main() {cout << Minimum_distance();return 0;
}

http://www.lryc.cn/news/600122.html

相关文章:

  • 【C++】二叉搜索数
  • 流式接口,断点续传解决方案及实现
  • QKV 为什么是三个矩阵?注意力为何要除以 √d?多头注意力到底有啥用?
  • 【PyTorch】图像多分类项目
  • jwt 在net9.0中做身份认证
  • qt框架,使用webEngine如何调试前端
  • 开发笔记 | 优化对话管理器脚本与对话语音的实现
  • 13.使用C连接mysql
  • Jenkins中出现pytest: error: unrecognized arguments: --alluredir=report错误解决办法
  • 栈----1.有效的括号
  • 机器学习 KNN 算法,鸢尾花案例
  • 从Taro的Dialog.open出发,学习远程控制组件之【事件驱动】
  • C++ 多线程同步机制详解:互斥锁、条件变量与原子操作
  • Python Multiprocessing 进程池完全教程:从理论到实战
  • 数据结构(3)单链表
  • [尚庭公寓]14-找房模块
  • Canal 1.1.7的安装
  • 习题5.6 “数学黑洞“
  • PHP插件开发中的一个错误:JSON直接输出导致网站首页异常
  • 纸板留声机:用ESP32和NFC打造会唱歌的复古装置
  • 手语式映射:Kinova Gen3 力控机械臂自适应控制的研究与应用
  • 秒收蜘蛛池解析机制的原理
  • PPIO上线阿里旗舰推理模型Qwen3-235B-A22B-Thinking-2507
  • ATR2652SGNSS全频段低噪声放大器
  • PostgreSQL对象权限管理
  • GPU 驱动安装升级测试
  • [NPUCTF2020]ReadlezPHP
  • CSS 盒子模型学习版的理解
  • C语言第 9 天学习笔记:数组(二维数组与字符数组)
  • ODFM(正交频分复用)系统中加入汉明码(Hamming Code)的主要目的是增强抗误码能力,通过**前向纠错(FEC)**机制提高传输可靠性