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

牛客周赛90 C题- Tk的构造数组 题解

原题链接

https://ac.nowcoder.com/acm/contest/107500/C

题目描述

在这里插入图片描述

解题思路

数组a是不可以动的,所以我们可以把a[i]*b[i]*i分成两组,分别为a[i]*i以及b[i]
然后策略就很明显了,让更大的b[i]匹配更大的a[i]*i
详细实现见代码。

代码(CPP)

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
#define endl "\n"
const int maxn = 2e5 + 10;
const ll INF = 0x3f3f3f3f3f3f3fLL;
struct Num {ll x;int idx;
} a[maxn];
ll b[maxn], n;
ll ans[maxn];bool cmp(Num &num1, Num &num2) {return num1.x * num1.idx > num2.x * num2.idx;
}void solve() {cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i].x;a[i].idx = i;}for (int i = 1; i <= n; i++) {cin >> b[i];}/*数组a是不可以动的,所以我们可以把a[i]*b[i]*i分成两组,分别为a[i]*i以及b[i],然后策略就很明显了,更大的b[i]匹配更大的a[i]*i*/sort(a + 1, a + n + 1, cmp);sort(b + 1, b + n + 1, greater<int>());for (int i = 1; i <= n; i++) {ans[a[i].idx] = b[i];}for (int i = 1; i <= n; i++) {if (i != 1)cout << " ";cout << ans[i];}
}int main() {
//     freopen("in.txt", "r", stdin);ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cout << fixed;cout.precision(18);solve();return 0;
}

相关文章:

  • 2023年第十四届蓝桥杯省赛B组Java题解【 简洁易懂】
  • Python变量作用域陷阱:为什么函数内赋值会引发_局部变量未定义
  • Day 4:牛客周赛Round 91
  • I.MX6U的GPIO配置和LED点灯实验。
  • Dream it possible歌词中英文对照
  • 使用python写多文件#inlcude
  • GoLang基础(续)
  • 腾讯云服务器技术全景解析:从基础架构到行业赋能​
  • 人员睡岗玩手机检测数据集VOC+YOLO格式3853张3类别
  • 第13章:陈默再访海奥华
  • 2024年第十五届蓝桥杯省赛B组Python【 简洁易懂题解】
  • QT开发工具对比:Qt Creator、Qt Designer、Qt Design Studio
  • 详细案例,集成算法
  • 技术部测试规范
  • 工业AI质检:从传统算法到多模态大模型应用
  • 大模型实践:图文解锁Ollama在个人笔记本上部署llm
  • 学习黑客红队模拟演练报告
  • 如何克服情绪拖延症?
  • 《算法导论(原书第3版)》下载
  • 【Java学习笔记】方法重载
  • 马斯克“星舰基地”成为新城镇,首任市长为SpaceX员工
  • 上海环球马术冠军赛开赛,一场体育与假日消费联动的狂欢
  • 美国防部监察机构扩大“群聊门”事件调查范围
  • 李强签署国务院令,公布修订后的《中华人民共和国植物新品种保护条例》
  • 宿州市委副书记任东已任市政府党组书记
  • 遍体鳞伤就是击不倒,这是国米老男孩最后的倔强