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

Ferris Wheel (贪心 | 双指针)

题目:

思路:

本题注意题目的条件即可,题意说一个摩天轮可以坐一个人或者两个人,那么显然我们就可以贪心一下

具体的,我们可以让最小的去匹配最大的,如果此时大于 x,那么显然我们根本无法使得 最大的那个存在两个人共坐一个摩天轮的方案,因此最大的那个就肯定要单独坐一辆,那么此时就看看次大的能不能和最小的匹配,以此类推,当能匹配时就直接跳出匹配过程即可,然后对次小值进行上诉操作即可

对于上诉过程,不难发现双指针即可(代码中的 solve 为另类写法,忽视即可,主要在 solve2)

代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define yes cout << "YES\n"
#define no cout << "NO\n"
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());void solve2()
{int n,x;cin >> n >> x;vector<int> a(n);for (int i = 0; i < n; i++){cin >> a[i];}sort(a.begin(),a.end());int l = 0,r = n-1;int ans = 0;while (l <= r){while(r > l && a[l] + a[r] > x){r--;ans++;}l++,r--;ans++;}cout << ans << endl;
}void solve()
{int n, x, p;cin >> n >> x;multiset<int> mst;for (int i = 0; i < n; i++){cin >> p;mst.insert(p);}int ans = 0;while (!mst.empty()){if (*mst.begin() * 2 <= x){auto it = mst.upper_bound(x - *mst.begin());if (it != mst.begin()){it--;if (it != mst.begin()){mst.erase(it);}}}ans++;mst.erase(mst.begin());}cout << ans << endl;
}signed main()
{ios::sync_with_stdio(false);cin.tie(nullptr);int t = 1;while (t--){solve2();}return 0;
}

http://www.xdnf.cn/news/19201.html

相关文章:

  • ubuntu 安装conda, ubuntu24安装miniConda
  • 【Pytorch】生成对抗网络实战
  • 服务器托管多少钱一年?服务器托管收费标准
  • React useState基本使用
  • 3000. 对角线最长的矩形的面积
  • linux系统学习(4.常用命令)
  • 【具身智能】【机器人动力学】台大林佩群笔记-待持续更新
  • 算法(④KMP)
  • 基于YOLO8的垃圾识别检测系统(数据集+源码+文章)
  • (双指针)Leetcode283.移动零-替换数字类别+Leetcode15. 三数之和
  • day44-Ansible变量
  • ESP32C3和ESP32S3的区别有哪些?该怎么选型?
  • React Router 6 获取路由参数
  • 无人机也能称重?电力巡检称重传感器安装与使用指南
  • 算法之x数之和
  • B树与B+树的原理区别应用
  • 第12章:推荐算法与实践
  • 揭开智能体架构面纱:90% 属软件工程,10% 为 AI 技术
  • nginx(自写)
  • 微服务搭建(SpringBoot + Dubbo + Nacos)
  • vue+Django 双推荐算法旅游大数据可视化系统Echarts mysql数据库 带爬虫
  • 【学Python自动化】 4. Python 控制流与函数学习笔记
  • 嵌入式Linux驱动开发:ICM20608六轴传感器SPI驱动
  • 深度学习核心损失函数详解:交叉熵、MSE、对比学习(InfoNCE)
  • 科技感网页计时器.html
  • Linux系统统计用户登录和注销时间的工具之ac
  • 【计算机408计算机网络】第四章:自底向上五层模型之网络层
  • 使用python格式化nginx配置文件
  • OSI与TCP/IP各层功能详解
  • 吴恩达机器学习作业八:SVM支持向量机