首页 > 其他分享 >[ARC182A] Chmax Rush!

[ARC182A] Chmax Rush!

时间:2024-08-21 16:27:12浏览次数:10  
标签:Rush le int ARC182A 操作 Chmax dir

思路

分类讨论。
对于 $Q$ 次操作中的第 $i$ 次 操作和第 $j$ 次操作 $(i<j)$:

  • 若 $V_i\le V_j$,则这两次操作之间不会影响。
  • 若 $V_i>V_j$ 且 $P_i=P_j$,则这两次操作之间一定冲突,因为 $i$ 这个位置一定会修改。
  • 若 $V_i>V_j$ 且 $P_i<P_j$,则操作 $i$ 一定替换前 $P_i$ 个元素,操作 $j$ 一定替换从 $P_j$ 开始到末尾的元素。
  • 若 $V_i>V_j$ 且 $P_i>P_j$,则操作 $i$ 一定替换从 $P_i$ 开始到末尾的元素,操作 $j$ 一定替换前 $P_j$ 个元素。

注意到 $1\le Q\le 5000$,于是可以 $O(Q^2)$ 枚举 $i,j$。设 $k$ 为不确定的操作数量(及替换前面或后面都可以的操作),答案即为 $2^k\bmod 998244353$。

代码

#include<bits/stdc++.h>
#define md 998244353
using namespace std;
int n,q,ans=1,dir[5005];//0为不确定,1为向前,2为向后
struct node{
	int p,v;
}a[5005];
signed main(){
	cin>>n>>q;
	for(int i=1;i<=q;i++){
		cin>>a[i].p>>a[i].v;
		for(int j=1;j<i;j++){
			if(a[j].v>a[i].v){
				if(a[j].p>a[i].p){
					if(dir[j]==1||dir[i]==2){//与之前确定的方向冲突
						cout<<0;
						return 0;
					}
					dir[j]=2;
					dir[i]=1;
				}
				else if(a[j].p<a[i].p){
					if(dir[j]==2||dir[i]==1){//同理
						cout<<0;
						return 0;
					}
					dir[j]=1;
					dir[i]=2;
				}
				else{//位置相同冲突
					cout<<0;
					return 0;
				}
			}
		}
	}
	for(int i=1;i<=q;i++)
		if(!dir[i])
			ans=(ans*2)%md;
	cout<<ans;
	return 0;
}

标签:Rush,le,int,ARC182A,操作,Chmax,dir
From: https://www.cnblogs.com/WuMin4/p/18371938

相关文章

  • 题解:AT_arc182_a [ARC182A] Chmax Rush!
    思路因为前面不允许出现比这次的替换的值还要大的情况,所以如果我们知道下标\(i,j\)满足\(i<j\)且\(V_i>V_j\)的话,我们就必须把它们两次修改分开。具体地:若\(P_i<P_j\):此时,我们只能将\([1,P_i]\)的值设为\(V_i\),将\([P_j,n]\)的值设为\(V_j\)。若\(P_i>P_j\):此......
  • esp-toothbrush 硬件原理图介绍
    前言个人邮箱:[email protected]项目视频链接硬件介绍电池管理(1)我们项目采用TP4056电源芯片给锂电池充电。因为我们采用的是3.7V锂电池,通过插上USB接口5V供电。通过查看TP4056芯片手册的典型应用可知,该芯片是满足要求的。(2)通过典型应用,我们基本可以知道......
  • ComfyUI插件:ComfyUI-BrushNet节点
    前言:学习ComfyUI是一场持久战,而ComfyUI-BrushNet是最近的局部重绘节点,其包含BrushNet和Powerpaint两个主要节点,其中BrushNet有SD1.5和SDXL两个版本,PowerPaint只有1.5的模型可以使用,学会该插件,你可以完成对图片的局部重绘以及产品换背景等多个工作流。祝大家学习顺利,早日成为Comfy......
  • drush ev ‘\Drupal::service(“router.builder“)->rebuild();‘
    【chatgpt】这是一个用于Drupal网站的Drush命令,用于重建路由信息。在Drupal中,路由信息用于定义URL路径与回调函数之间的映射关系,以便Drupal能够正确处理来自用户的请求。路由信息由模块提供,并在Drupal的路由系统中进行注册和管理。Drush是一个用于在命令行中管理和......
  • 【可控图像生成系列论文(一)】MimicBrush 港大、阿里、蚂蚁集团合作论文解读
    背景:考虑到用户的不同需求,图像编辑是一项实用而富有挑战性的任务,其中最困难的部分之一是准确描述编辑后的图像应该是什么样子。创新点:在本文作者提出了一种新的编辑形式,称为模仿编辑,以帮助用户更方便地发挥他们的创造力。具体地说,为了编辑感兴趣的图像区域,用户可以自由地......
  • Avalonia中的线性渐变画刷LinearGradientBrush
    在WPF中使用Shape实现复杂线条动画后,尝试在Avalonia中也实现同样效果。尽管官方提供了从WPF到Avalonia的快速入门文档,但由于第一次使用Avalonia,体验过程中并不是很顺利,主要是卡在线性渐变画刷LinearGradientBrush的使用上。Avalonia中的线性渐变画刷与WPF中的略有差异,但相关文档并......
  • CrushFTP服务器端模板注入
    漏洞描述由于CrushFTP存在服务器端模板注入漏洞,未经身份验证的远程攻击者可以逃避虚拟文件系统(VFS)沙箱,绕过身份验证获得管理访问权限,泄露敏感信息或执行代码。Fofa:server="CrushFTP"||header="/WebInterface/login.html"||banner="/WebInterface/login.html"||header="......
  • 关于Karush-Kuhn-Tucker(KKT)条件的分析
    KKT条件约束优化中非常关键的条件,与算法的设计与收敛性分析息息相关。1.拉格朗日乘子我们以简单的一类问题做为讨论KKT条件的序言。一般来说,任何有\(n\)个元素的变量\(x=(x_{1},\ldots,x_{n})^{T}\)和\(m\)个等式约束的优化问题可以写成\[\min_{x\in\mathbb{R}^{n}}\quadf(x......
  • Ceph的crush算法与一致性hash对比介绍
    本文分享自天翼云开发者社区《Ceph的crush算法与一致性hash对比介绍》,作者:l****n首先,我们先回顾下一致性hash以及其在经典存储系统中的应用。一致性hash的基本原理一致性hash的基本思想是,有一个hash函数,这个hash函数的值域形成了一个环(收尾相接:thelargesthashvaluewraps......
  • 强大的VS插件CodeRush全新发布v23.2.6——支持语音
    CodeRush是一个强大的VisualStudio.NET插件,它利用整合技术,通过促进开发者和团队效率来提升开发者体验。CodeRushv23.2.6正式版下载具体更新详情如下:语音支持-CTP指定Azure语音识别和OpenAIAPI密钥后,可以在VisualStudio2022中启用语音功能。语音命令按住Ctrl键并说......