首页 > 其他分享 >《CF1863》 解题报告

《CF1863》 解题报告

时间:2023-09-01 22:23:22浏览次数:42  
标签:CF1863 报告 int LL 异或 解题 MAXN 最高 lld

题面传送器

首先有一个 \(naive\) 的做法。

直接 \(O(n^3)\) 暴力判断。

考虑寻找突破口。

假如给了你一个序列,异或值为 \(S\) ,那么实际上假如中间有一个断点 \(mid\) ,那么我们最终决定保留哪一段,实际上是看 \(S\) 的最高位 \(1\) 的位置来比较的,所以我们只需要管最高位的 \(1\) 就可以了。(因为如果为 \(0\) 就是要么都是 \(1\) ,要么都是 \(0\) )

所以我们只需要关注最高位即可。

我们记一个 \(L_i,R_i\) 分别表示以 \(i\) 开始时,这一段序列要想成功,可以有的异或值有哪些(只要有其中一位,就能成功),而 \(R\) 就是以他结束,同理。

然后如果一个区间可行,记他的最高位为 \(k\) ,那么他左端点的 \(L\) 或上 \(1<<k\) ,右端点 \(R\) 或上 \(1<<k\) 。

不过如果异或值为 \(0\) 就要特判,因为这时候 \(l,r\) 不管是什么都可以。

因为你从中间截断,一定会有 \(x^y=S=0\) 所以 \(x=y\) ,所以从里面随便选择一个就可以了。

总时间复杂度 \(O(n^2)\)

启示:

如果有 \(x^y=S\) ,然后让你比较 \(x,y\) 的大小,直接看 \(S\) 最高位的 \(1\) 即可。

点击查看代码
#include<bits/stdc++.h>
typedef long long LL;

using namespace std;
const int MAXN=10010;
LL T;
LL n,b[MAXN],s[MAXN],L[MAXN],R[MAXN];
bool dp[MAXN][MAXN];
int main () {
	scanf("%lld",&T);
	while(T--) {
		scanf("%lld",&n);
		for(int i=1;i<=n;++i) {
			scanf("%lld",&b[i]);
			s[i]=s[i-1]^b[i];
			L[i]=R[i]=0;
		}
		for(int i=1;i<=n;++i) 
			for(int j=1;j<=n;++j) dp[i][j]=0;
		dp[1][n]=1;
		for(int i=n;i>=1;--i) {
			int RR=n-i+1;
			for(int j=1;j<=RR;++j) {
				int r=j+i-1;
				LL ls=s[r]^s[j-1];
				if(L[j]==-1||(ls&L[j])) dp[j][r]=1;
				if(R[r]==-1||(ls&R[r])) dp[j][r]=1;
				if(!dp[j][r]) continue;
				if(!ls) {
					L[j]=R[r]=-1;
					continue;
				}
				LL uu=63-__builtin_clzll(ls);
				L[j]|=(1ll<<uu);
				R[r]|=(1ll<<uu);
			}
		}
		for(int i=1;i<=n;++i) printf("%d",dp[i][i]);
		puts("");
	}
	return 0;
}

标签:CF1863,报告,int,LL,异或,解题,MAXN,最高,lld
From: https://www.cnblogs.com/ddl1no2home/p/17672967.html

相关文章

  • 第八周假期报告
    Linux是一个广泛使用的开源操作系统,在计算机科学和信息技术领域得到广泛应用。学习Linux的基础知识可以帮助你更好地理解和使用这个操作系统。以下是一些学习Linux基础的建议和内容:1.安装Linux:首先,你需要选择一种Linux发行版并安装到你的计算机上。一些常见的Linux发行......
  • 8月《中国数据库行业分析报告》已发布,聚焦数据仓库、首发【全球数据仓库产业图谱】
    为了帮助大家及时了解中国数据库行业发展现状、梳理当前数据库市场环境和产品生态等情况,从2022年4月起,墨天轮社区行业分析研究团队出品将持续每月为大家推出最新《中国数据库行业分析报告》,持续传播数据技术知识、努力促进技术创新与行业生态发展,目前已更至第十六期,并发布了共计1......
  • Power BI:如何在报告中使用超链接?
    问题描述:今天业务同事来询问为什么在PowerBI报告中的表格可视化组件中,展示的网站地址无法点击跳转到相关网站?如何才能使表格中的网站地址实现超链接功能,通过点击跳转的相应的网站? 解决方案:目前PowerBI是支持在报告使用超链接功能的,不过需要对表格中的网站信息进行URL的......
  • 【专题】2022年中国母婴行业新媒体营销价值研究报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33528报告合集显示,由于新生儿出生率下降,母婴行业进入了存量时代。在这一背景下,抖音电商成为越来越多消费者的选择,尤其是24-40岁的三四线城市女性。这一消费群体更倾向于在线上购买,给母婴行业的线上销售带来了巨大的机遇。阅读原文,获取专题报告合集......
  • 【专题】抖音电商平台母婴行业营销白皮书报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33528原文出处:拓端数据部落公众号报告合集显示,由于新生儿出生率下降,母婴行业进入了存量时代。在这一背景下,抖音电商成为越来越多消费者的选择,尤其是24-40岁的三四线城市女性。这一消费群体更倾向于在线上购买,给母婴行业的线上销售带来了巨大的机遇......
  • 达梦DM8手动创建AWR报告
    达梦数据库AWR报告创建方式如下:1、启用系统包和AWR包:SQL>CALLSP_INIT_AWR_SYS(1);DMSQL过程已成功完成已用时间:00:00:01.380.执行号:59500.SQL>CALLSP_CREATE_SYSTEM_PACKAGES(1);DMSQL过程已成功完成已用时间:00:00:03.403.执行号:59501.2、查询AWR......
  • 软件性能测试报告的作用?软件测试机构推荐
    ​性能测试报告一、性能测试的概念:性能测试是测试软件系统处理事务的速度,一方面是检验性能是否符合需求;另一方面是为了得到某些性能数据以供参考。软件只能满足要求的功能而达不到要求的性能是不可接受的,因此还需要进行性能测试。性能测试可以出现在测试过程的各个阶段,甚至在单......
  • 基环树问题 解题报告
    luoguP5022旅行题意对于60%的数据,给一棵树,求一条字典序最小的Hamilton路径;对于40%的数据,给一颗基环树,求一条字典序最小的Hamilton路径。分析前向星存图,对于每个点的出边排序,从1开始dfs一遍即可过60%数据;对于基环树,由于Hamilton路径在树上必然有一条边不经过,而这条边必然......
  • 解析CNNIC报告:中国网民超过10亿,互联网红利何去何从?
    我是卢松松,点点上面的头像,欢迎关注我哦!凡是能看到这条内容的,都是10.79亿网民中的一个!近日,中国互联网络信息中心(CNNIC)发布了备受瞩目的第52份《中国互联网络发展状况统计报告》,截至今年6月,我国网民规模已飙升至10.79亿人,较2022年12月增长了1109万人,令互联网普及率达到76.4%。网约......
  • 《AT_arc106_d》 解题报告
    来一道简单数论。求\(\sum\limits_{l=1}^{n-1}\sum\limits_{r=l+1}^{n}(a_l+a_r)^x\),其中\(1\lex\lek\)\(n\le2e5,k\le300\)显然是一个\(O(nk)\)的做法我们来推式子\[\begin{aligned}\sum\limits_{l=1}^{n-1}\sum\limits_{r=l+1}^{n}(a_l+a_r)^x&=\sum\li......