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

【Sol】P10153 「LAOI-5」膜你赛

\(\large\mathfrak{1st.\ Preamble|}\) 前言

题目传送门 & 更好的阅读体验。

一道有趣的构造题。

\(\large\mathfrak{2nd.\ Solution|}\) 题解

基本思路

【因为】以过题数为第一关键字不升排序,
【所以】过题数数少的先离场。

【因为】以罚时数为第二关键字不降排序,
【所以】同过题数,罚时多的先离场。

【所以】存在一种构造能使所有人「爆切比赛」。

构造方法

把所有人按题目要求排序。

过题数相同的人合在一块,把这些块按每一块的过题数递增排列。

对于每一块内,我们把每人按 WA 数从大到小安排离场顺序。

错误的构造方法:直接给每个人都安排一段单独的连续时间交题离场。

例如:

  • 小 A 通过 \(6\) 题,WA 了 \(10\) 次;小 B 通过 \(6\) 题,WA 了 \(9\) 次;\(x=1\);按照上面的方法构造。

  • 小 A 在第 \(6\) 分钟通过了 \(6\) 题,总罚时数 \(10x+6=16\)​。

  • 小 B 在第 \(12\) 分钟通过了 \(6\) 题,总罚时数 \(9x+12=21\)​。

  • \(21>16\),小 B 没有「爆切比赛」。

【所以】我们需要让先离场的罚时尽可能大,后离场的罚时尽可能小,

【所以】先离场的后开始交,后离场的先开始交。

听着有点绕,请看正确的构造方法。

正确的构造方法

  • WA 提交,WA 提交,
  • 每个人留一题到最后,WA 交完最后一题离场,WA 提交最后一题再离场。

这样就可以保证前面离场的罚时大于后面离场的。

\(\large\mathfrak{3rd.\ Code|}\) 代码

排序方式清奇请见谅(因为懒得写结构体(雾。

#include <bits/stdc++.h>
#define ll long long
#define FILE(x) freopen(x ".in", "r", stdin), freopen(x ".out", "w", stdout);
using namespace std;
const int N = 1e5 + 10, M = 3e5 + 10;
int n, m, x, a[N], k[N], p[N], s[M], t[M], cnt;
inline bool cmp(int x, int y) {if (a[x] == a[y]) return k[x] > k[y];return a[x] < a[y];
}
int main() {// clock_t Start_Time=clock();// ios::sync_with_stdio(false);// cin.tie(0),cout.tie(0);cin >> n >> m >> x;cout << n << endl;for (int i = 1; i <= n; p[i] = i, i ++) cin >> a[i];for (int i = 1; i <= n; i ++) cin >> k[i];sort(p + 1, p + n + 1, cmp);for (int i = 1; i <= n; i ++) {int q = i;for (; q <= n && a[p[q]] == a[p[q + 1]]; q ++) ;for (; q >= i; q --) for (int j = 1; j < a[p[q]]; j++)   // 这里是小于号!因为还要留一题。s[++ cnt] = p[q];			    // 后离场先开做。for (; i <= n && a[p[i]] == a[p[i + 1]]; i ++) s[++ cnt] = p[i], t[cnt] = k[p[i]]; // 留一题最后交。s[++ cnt] = p[i], t[cnt] = k[p[i]];}for (int i = 1; i <= cnt; i ++) cout << s[i] << " ";cout << endl;for (int i = 1; i <= cnt; i ++) cout << t[i] << " ";// cout<<"\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\nRuntime: "<<clock()-Start_Time<<" ms\n";// system("pause");return 0;
}
http://www.jsqmd.com/news/428185/

相关文章:

  • 拒绝踩坑!力学试验机怎么选?这十大知名品牌TOP4值得一看 - 品牌推荐大师1
  • 2026年3月6150车床厂家推荐,6150系列卧式车床品牌 - 品牌鉴赏师
  • 新鲜出炉!2026植发1至5000个毛囊/性价比高/价格实惠优惠的植发机构推荐排行 实测榜 全周期养护/个性化方案/高存活率 - 极欧测评
  • 如何通过专业回收平台处理大润发购物卡?3分钟学会正确方法! - 团团收购物卡回收
  • 2026年减速机行业服务商推荐指南:安徽费洛卡重工传动有限公司 - 2026年企业推荐榜
  • 大润发购物卡回收心得:揭秘高价回收技巧,选对平台赚更多! - 团团收购物卡回收
  • 想找口碑好的卫生间防水服务,家修防水值得考虑吗? - 工业品牌热点
  • 2026年国有资产管理系统私有化部署公司推荐(5家精选) - 品牌2026
  • 分析氯化锆厂商哪家好,福斯曼科技口碑吗? - myqiye
  • 植发选不对?2026植发/鬓角植发/不剃发植发/恢复快/维持时间久/效果好的植发机构推荐排行 避坑榜 美学种植/术后养护/高适配性 - 极欧测评
  • 分析广州专利申请服务,名扬知识产权性价比到底高不高 - 工业设备
  • 2026年3月环保织唛标厂家推荐,行业权威品质红榜发布 - 品牌鉴赏师
  • 电子世界的奇妙冒险:15 执行器:让电路“行动”起来
  • 聊聊浙江自建房翻新专业企业,金鼎乡建口碑怎么样? - myqiye
  • 2026年全国水泥发泡隔墙板厂家精选 靠谱稳定厂家 实力可靠且适配多场景需求 - 深度智识库
  • 2026年3月转印标签唛头厂家推荐,无痕转印贴合舒适 - 品牌鉴赏师
  • 英文论文查AI率,用这两个权威的AIGC检测工具!
  • Rufus 制作可引导 U 盘—ISO 镜像模式(ISO Image Mode)和 DD 镜像模式(DD Image Mode)区别
  • 导师严选 10个AI论文平台测评:专科生毕业论文+开题报告写作全攻略
  • 分析上海地区洁净板漆面修复团队靠谱吗,费用怎么算 - mypinpai
  • 看完就会:降AI率网站 千笔·专业降AI率智能体 VS 笔捷Ai,本科生必备!
  • 2026年3月双头龙门数控铣床品牌推荐,重型双头龙门机床 - 品牌鉴赏师
  • 2026年市面上评价高的投影机出租厂家哪家强,楼体投影机出租/4K投影机/16000流明投影机,投影机出租厂家联系电话 - 品牌推荐师
  • 分析2026年美的净水器供应商售后,哪家口碑好,性价比高 - myqiye
  • 基于无迹卡尔曼滤波(UKF)的传统目标跟踪算法实现与优化
  • 2026 西安搬家公司 TOP 榜:专业服务、口碑保障的 5 家优质企业 - 深度智识库
  • 2026年POLO衫实力供应商推荐,专业服务让你选购无忧 - 工业品牌热点
  • 使用 ofelia 在 docker 容器中执行计划任务
  • 浙江温州粘毛器厂商哪家靠谱,东辉实业口碑如何? - 工业品牌热点
  • 2026 年全国水泥发泡隔墙板靠谱厂家推荐榜 保温隔音适配住宅工业项目 - 深度智识库