[CF2353D] Refined Product Optimality 题解

news/2025/1/4 15:33:04/文章来源:https://www.cnblogs.com/wfc284/p/18646313

首先让我们输出的是不操作的值。不定序,一看就很贪心。经过分类分类分类可证,\(a,b\) 都是升序(降序)的时候是最优的。
再看加操作的。相当于要维护这两个升序序列。我们发现,每次操作影响的值很少,最多两个值。在一个连续段中,修改的值相当于和末尾值交换,再加一。

唐点:
找这个末尾没必要维护一堆下标然后写挂,用个二分足以。反正用了排序,都是带 \(\log\) 的。

#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
#define Linf 0x3f3f3f3f3f3f3f3f
#define pii pair<int, int>
#define int long long 
#define all(v) v.begin(), v.end()
using namespace std;//#define filename "xxx" 
#define FileOperations() freopen(filename".in", "r", stdin), freopen(filename".out", "w", stdout)namespace Traveller {const int N = 4e5+2, mod = 998244353;void mul(int &a, int b, int p = mod) { a = (a * b % p + p) % p; }int qpow(int a, int b, int p = mod) {int res = 1;a %= p;while(b) {if(b & 1) mul(res, a, p);b >>= 1;mul(a, a, p);}return res;} int inv(int a) { return qpow(a, mod-2); }int n, q;pii a[N], b[N];int c[N], d[N];int rev1[N], rev2[N];int ans;void work(pii *a, pii *b, int *c, int *rev, int x) {x = c[x];int y = upper_bound(a+1, a+n+1, pii(a[x].first, inf)) - a - 1;int p = rev[x], q = rev[y];//swapc[p] = y, c[q] = x;rev[x] = q, rev[y] = p;swap(x, y);mul(ans, inv(min(a[x].first, b[x].first)));mul(ans, min(++a[x].first, b[x].first));}void main() {cin >> n >> q;for(int i = 1, x; i <= n; ++i) {scanf("%lld", &x);a[i] = pii(x, i);}for(int i = 1, x; i <= n; ++i) {scanf("%lld", &x);b[i] = pii(x, i);}sort(a+1, a+n+1);sort(b+1, b+n+1);for(int i = 1; i <= n; ++i) c[a[i].second] = i, rev1[i] = a[i].second;for(int i = 1; i <= n; ++i) d[b[i].second] = i, rev2[i] = b[i].second;ans = 1;for(int i = 1; i <= n; ++i) mul(ans, min(a[i].first, b[i].first));printf("%lld ", ans);for(int i = 1, opt, x; i <= q; ++i) {scanf("%lld%lld", &opt, &x);if(opt == 1) work(a, b, c, rev1, x);else work(b, a, d, rev2, x);printf("%lld ", ans);}puts("");}
}signed main() {#ifdef filenameFileOperations();#endifint _;cin >> _;while(_--) Traveller::main();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/862468.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux装逼玩法之wttr.in天气

什么是 wttr.in? wttr.in 是一个基于 Web 的命令行天气服务,由 Igor Chubin 开发。它通过调用OpenWeatherMap 等天气服务的 API,提供了简洁、直观的天气信息展示。 Linux使用Curl命令可快速获取天气信息查询指定城市的天气[Wed Jan 01 20:38:53 root@localhost ~ ]# curl wt…

vmware下载安装配置

vmware下载安装配置 下载 https://www.vmware.com/ # 官网 https://www.broadcom.com/ # Broadcom官网 https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion # VMware官网虚拟机下载页 https://www.filehorse.com/download-v…

软件安全测试

一、网络协议基础 1、网络模型 我们把一些过程封装到一起,称为“模型”,如下:把北京中的4个步骤封装到一起,就是1个模型了。 (1)网络模型-OSI OSl(Open System Interconnection 开放系统互联)参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体…

开拓计划21/2025集训作业表3 - 倍增ST表LCA次小生成树

开拓计划21/2025集训作业表3 - 倍增&ST表&LCA&次小生成树 倍增&ST表 概念Q:倍增是什么? A:倍增,顾名思义是成倍增长的意思,它利用了二进制的性质和预处理(俗称打表)的思想,在 \(O(\log n)\) 内完成一些操作。 Q:ST表是什么? A:ST表主要用于解决RMQ(…

系统管理体系之进程管理

系统管理体系之进程管理 1. 进程名字 含义程序 安装包,程序代码,app,存放在磁盘上面.进程⭐️ 运行起来的程序,命令,服务(远程连接服务,网络服务)都可以称作进程。 运行在内存中。守护进程 守护进程, 一直运行的进程. 也可以叫做服务.2. 进程分类(异常进程) 2.1 僵尸进程⭐️⭐…

系统管理之服务管理---管理命令

1. 系统管理之服务管理---管理命令systemctl 管理服务开机自启动管理正在运行的服务.旧版本的系统:Centos 5.x 6.x 需要使用service 命令检查 sshd 远程连接服务状态systemctl status sshd systemctl status 单个或多个服务名如何设置开启开机自启动 systemctl enable sshd 当…

夜之向日葵

2024 ECF 游记 Day 0 我早就预感到 ecf 要寄,但没想到寄得这么彻底。 比赛之前,我去做了去年 ecf 的题目,发现里面的可做题全部都是贪心,性质和结论题。众所周知,chino 最不擅长的题目类型就是这些。 同时,因为周一周二要考大物和数分,比赛前的一周几乎没有训练。 于是就…

网络流初步

网络流初步(脑部整理) 呜呜呜,家人们也是学上网络流了。 咸鱼起手,你反应得过来吗? 英语不太好(老英不会看窝博客吧) What is 网络流?概述 网络\((network)\)是指一个特殊的有向图 \(G=(V,E)\),其与一般有向图的不同之处在于有容量和源汇点。$E $中的每条边 $ (u, v)$ 都…

金砖技能大赛-内存取证

检材链接 :https://pan.baidu.com/s/1tYgIicCqJExmaMLYa3YeSA 提取码:lulu按照惯例先打印出信息 1.从内存中获取到用户admin的密码并且破解密码,以Flag{admin,password} 形式提交(密码为 6 位); 先使用lsadump指令看看python2 vol.py -f /文件路径/文件 hashdump最后一个是…

script 标签放在 HTML 文档的 body 内底部

以下是将 <script> 标签放在 HTML 文档的 <body> 内底部的几个重要原因: 1. 页面加载顺序和性能优化原理:当浏览器解析 HTML 文档时,它会按顺序执行遇到的元素。如果 <script> 标签位于 <head> 中或 <body> 的顶部,浏览器会在下载和执行脚本…

折腾笔记[4]-cuda的hello-world

在window11上搭建cuda开发环境并编译hello world程序;摘要 在window11上搭建cuda开发环境并编译hello world程序; 关键信息编译器:cuda nvcc 12.4.131 平台:windows11原理简介 cuda简介 CUDA(Compute Unified Device Architecture,统一计算架构)是由英伟达所推出的一种集成技术…

13. 滑块控件

一、抽象滑块QScrollBar、QSlider 和 QDail 都是从 QAbstractSlider 类继承而来的,因此它们的多数方法是相同的。我们可以在终端中使用 pip 安装 pyside6 模块。 pip install pyside6QAbstractSlider 类的常用方法如下: # 实例方法 orientation() -> Qt.Orientation …