首页 > 其他分享 >P9361 [ICPC2022 Xi'an R] Contests

P9361 [ICPC2022 Xi'an R] Contests

时间:2023-12-22 14:47:13浏览次数:25  
标签:ICPC2022 Xi 前缀 int flag 100010 ans P9361

更好的阅读体验

P9361 [ICPC2022 Xi'an R] Contests

首先观察一下性质,每个 \(l\) 在每场比赛里一定是对应着某个前缀。

发现题目要求的是最小的满足要求的 \(l\),最暴力的大概是维护五个指针,每次答案 \(+1\),然后尝试跳一步,什么时候某个前缀包含了 \(x\) 当前的计数器就是答案。

考虑如何优化。这个东西显然满足单调性,首先想到的是二分答案或者整体二分之类的,但是发现不好 chk。考虑倍增,维护每个人 \(i\) 跳 \(2^j\) 步在第 \(k\) 场比赛的前缀 \(f_{i,j,k}\)。合并的式子:

\[\begin{aligned} f_{i,j,k}=\max_{x=1}^m\max_{y=1}^{f_{i,j-1,x}}f_{a_{x,j},i-1,k} \end{aligned} \]

发现 \(y\) 的循环可以用前缀 \(max\) 优化掉。对于询问,从大到小枚举 \(2^i\),尝试跳这些步,如果符合了条件就不跳,否则跳并且答案累加 \(2^i\)。最后 \(ans+1\) 就是答案。

注意读入格式和判询问一开始就满足的情况。

	int n,m,q,ans,flag,c[6],b[6],a[6][100010],f[100010][17][6],g[17][6][100010][6];
	inline void mian()
	{
		read(n,m);int x,y;
		for(int i=1;i<=m;++i)for(int j=1;j<=n;++j)read(a[i][j]),f[a[i][j]][0][i]=j;
		for(int from=1;from<=m;++from)
		{
			for(int to=1;to<=m;++to)
			{
				for(int k=1;k<=n;++k)
				g[0][from][k][to]=max(g[0][from][k-1][to],f[a[from][k]][0][to]);
			}
		}
		for(int i=1;i<=16;++i)
		{
			for(int j=1;j<=n;++j)
			{
				for(int to=1;to<=m;++to)
				{
					for(int from=1;from<=m;++from)
					Mmax(f[j][i][to],g[i-1][from][f[j][i-1][from]][to]);
				}
			}
			for(int from=1;from<=m;++from)
			{
				for(int to=1;to<=m;++to)
				{
					for(int k=1;k<=n;++k)
					g[i][from][k][to]=max(g[i][from][k-1][to],f[a[from][k]][i][to]);
				}
			}
		}
//		for(int i=0;i<=2;++i,puts(""))for(int k=1;k<=m;++k,puts(""))for(int j=1;j<=n;++j)write(f[j][i][k]);
		read(q);
		while(q--)
		{
			read(y,x),ans=1;
			for(int i=1;i<=m;++i)b[i]=f[x][0][i];
			for(int i=16;i>=0;--i)
			{
				memset(c,0,sizeof(c)),flag=1;
				for(int j=1;j<=m;++j)for(int to=1;to<=m;++to)Mmax(c[to],g[i][j][b[j]][to]);
				for(int j=1;j<=m;++j)if(c[j]>f[y][0][j])flag=0;
				if(flag)ans+=(1<<i),memcpy(b,c,sizeof(b));
			}
			flag=0;
			for(int j=1;j<=m;++j)for(int to=1;to<=m;++to)Mmax(c[to],g[0][j][b[j]][to]);
			for(int j=1;j<=m;++j)if(c[j]>f[y][0][j])flag=1;
			if(!flag){puts("-1");continue;}
			for(int j=1;j<=m;++j)if(b[j]>f[y][0][j])flag=0;
			write(ans+flag,'\n');
		}
	}

标签:ICPC2022,Xi,前缀,int,flag,100010,ans,P9361
From: https://www.cnblogs.com/WrongAnswer90-home/p/17921522.html

相关文章

  • ICPC2022 Xi'an R A Bridge
    洛谷传送门QOJ传送门感觉很妙啊,应该不止蓝吧?首先一个转化是每次建桥操作就相当于交换两条链的后半部分,可以看看扶苏那篇题解的图。我们将每个点表示为形如\((x,y)\)的二元组表示它初始在第\(x\)行第\(y\)列,按\(y\)为键值排序,那么一次询问就是查询一条链的最大值。......
  • XILINX HLS 入坑记录 之 写RAM 综合出 读取+写入Ram
    最近使用XilinxHLS来开发算法的IPcore,使用的Vitis2021,发现光是EDA工具就存在很多的bug,比如:1.经常C综合停留在Usingflow_target'vivado'不给任何报错提示,永远卡死;2.点击coSimulationvivado启动后读取脚本卡死,不能正常仿真;3.C综合给出的资源使用和IPCore实现后......
  • 微服务启动-端口already exist
    微服务项目启动eureka成功,port:8761,再次启动其他服务都报错:8761端口已经alreadyexist,如何解决?明明各自服务在其各自的application.yaml文件都配置了端口号port,不应该有冲突诶。在确定自己没有编写错误的前提下,不断重启就行了!!!下面看情况去测试,主要是我没搞清楚问题来源。搜了好......
  • 从零开始用 Axios 请求后端接口
    对于前端同学来说,请求后端接口是一个非常通用的东西。在十几年前的时候,我们还用Ajax去请求后端接口。但在2023年的今天,很多框架都很成熟了,我们有了更加快捷的方式——Axios框架。请求框架哪家强?对于使用Vue技术栈的同学来说,其实接口请求框架就三种:vue-resource、Axios......
  • [Troubleshooting] kubectl cp exit code 255 - exec: \"tar\": executable file no
    0.背景kubectlcpcontainer文件到本地host报错:$kubectlcptest/po-test-pod-0:/tmp./-cctr-test-containertime="2023-12-20T02:17:29Z"level=errormsg="execfailed:unabletostartcontainerprocess:exec:\"tar\":executablefile......
  • vue项目多axios实例动态创建
    //通用请求拦截器importaxiosfrom"axios";importQsfrom"qs";importstorefrom"@/store";importrouterfrom"@/router";import{Loading,Message}from"element-ui";//引用element-ui的加载和消息提示组件letloading......
  • subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero
    一、原因pytorch版本大于1.5二、解决1、降低pytorch版本将pytorch版本降到1.5以下2、禁用ninjiapytorch默认使用ninjia作为backend,将其禁用。替换为以下代码setup(...,cmdclass={#'build_ext':BuildExtension,'build_ext':BuildExtensi......
  • mapstruct报错 No property named "XXXX" exists in source parameter(s). Type "XXXX
    1、问题现象java:Nopropertynamed"XXXX"existsinsourceparameter(s).Type"XXXX"hasnoproperties.2、相关环境依赖版本jdk:17maven:3.8.8springboot:3.1.4lombok:1.18.30mapstruct:1.5.53、解决办法在pom.xml中加入如下配置<annotationProcessor......
  • Nacos启动:[NACOS HTTP-POST] The maximum number of tolerable server reconnection e
    一、表象二、分析源码:publicHttpRestResult<String>httpPost(Stringpath,Map<String,String>headers,Map<String,String>paramValues,Stringencode,longreadTimeoutMs)throwsException{finallongendTime=System.currentTi......
  • SeaFormer: Squeeze-enhanced Axial Transformer for Mobile Semantic Segmentation
    SeaFormer:Squeeze-enhancedAxialTransformerforMobileSemanticSegmentation*Authors:[[QiangWan]],[[ZilongHuang]],[[JiachenLu]],[[GangYu]],[[LiZhang]]初读印象comment::(SeaFormer)提出了一种适用于移动设备的轻量级网络,设计了一个通用的注意力块,特......