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

笔试——Day48

文章目录

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

第一题

题目

疯狂的自我检索者

在这里插入图片描述

思路

模拟分别计算隐藏值取最小、最大的总和

代码

// https://ac.nowcoder.com/acm/problem/205826
#include <iostream>
using namespace std;int main()
{int n, m; cin >> n >> m;int res = 0;for(int i = 0; i < (n - m); i++){int x; cin >> x;res += x;}double a = 0, b = 0; // 可能的最小、最大a = res + m * 1;b = res + m * 5;a /= n;b /= n;printf("%.5f %.5f\n", a, b);return 0;
}

第二题

题目

NC115 栈和排序

在这里插入图片描述

思路

贪心

  • 第一个出栈的数字是确定的为n
    1. 先让元素入栈;
    1. 判断下一个目标元素;
    1. 栈中大于等于下一个目标元素的值都出栈

代码

#include <vector>
class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 栈排序* @param a int整型vector 描述入栈顺序* @return int整型vector*/vector<int> solve(vector<int>& a) {// write code hereint n = a.size();stack<int> st;vector<int> res;int hash[50010] = {0};int aim = n;for(int i = 0; i < n; i++){int x = a[i];st.push(x);hash[x] = 1;while(hash[aim]){aim--;}while(st.size() && st.top() >= aim){res.push_back(st.top()); st.pop();}}return res;}
};

第三题

题目

加减

在这里插入图片描述

思路

贪心::尽可能选离的近的数,让他们变相同

枚举所有区间,找出区间内所有数变成相同数的最小代价cost <= k 的最大区间

  • 如何求一个区间内的最小代价cost???
  • 数轴上有一些点,选一个位置,使所有点到该点距离和最小
  • 选最中间点
  • 前缀和优化求cost = (mid - l)* a[mid] - (sum[mid - 1] - sum[l - 1]) + (sum[r] - sum[mid] - (r - mid) * a[mid])

代码

#include <iostream>
#include <algorithm>
using namespace std;
using LL = long long;const int N = 1e5 + 10;LL n, k;
LL arr[N];
LL sum[N]; // 前缀和LL f(int l, int r)
{int mid = (l + r) / 2;return (mid - l - r + mid) * arr[mid] - (sum[mid - 1] - sum[l - 1]) + (sum[r] - sum[mid]);
}int main()
{cin >> n >> k;for (int i = 1; i <= n; i++)cin >> arr[i];sort(arr + 1, arr + 1 + n);// 初始化前缀和for (int i = 1; i <= n; i++)sum[i] = sum[i - 1] + arr[i];int left = 1, right = 1, ret = 1;while (right <= n){// 进窗⼝LL cost = f(left, right);while (cost > k) // 判断{left++; // 出窗⼝cost = f(left, right);}// 更新ret = max(ret, right - left + 1);right++;}cout << ret << endl;return 0;
}
http://www.dtcms.com/a/348837.html

相关文章:

  • 【C++组件】ODB 安装与使用
  • LeetCode 42.接雨水
  • 【Flex SerialPort】一个基于Qt6的支持自定义按键指令的串口工具
  • 浏览器发送网页详细过程分解
  • 释放工作精力:火语言 RPA 的实用功能与效率提升​
  • VMware centos磁盘容量扩容教程
  • 解决虚拟机network服务启动失败问题
  • Linux中的指令
  • 从字节码层面剖析以太坊智能合约创建原理
  • [OpenVela] 音乐播放器1.0
  • Latent Action在具身智能中的使用
  • C++——多态
  • 【ABAP4】基本语法1
  • 第4章栈和队列:队列基础知识
  • pom.xml 标签整理各个标签的用途和含义
  • 蓝凌EKP产品:从 XML 到 JSON ——表单存储的性能优化实践
  • 前端漏洞(上)- CSRF漏洞
  • 强光干扰下误检率↓79%!陌讯动态决策算法在安全带检测的实战优化
  • Redis详解--基本篇
  • Linux 的 TCP 网络编程常用API
  • 网络流量分析——使用捕获和显示过滤器查询网络流量
  • 每天自动备份oracle
  • 关于熵减 - 力学单位和来源
  • 安装gitlab
  • C++ AOV 拓扑排序
  • pyecharts可视化图表-scatter:从入门到精通
  • 2020/12 JLPT听力原文 问题二 5番
  • 【网络运维】Shell 脚本编程:case 条件语句
  • 【大语言模型 18】Vision Transformer革命解析:图像理解的范式突破与架构创新
  • VsCode使用SFTP连接Linux