首页 > 其他分享 >Codeforces Round #830 C1. Sheikh(Easy version)

Codeforces Round #830 C1. Sheikh(Easy version)

时间:2022-10-24 09:33:43浏览次数:45  
标签:830 int text Codeforces long Sheikh 按位 Easy

题意

给定一个长为\(n\)的非负整数序列\(\{a_n\}\),求\(l,r\)使\(f(l,r)=\text{sum}(l,r)-\text{xor}(l,r)\)最大,若答案不唯一,使\(r-l\)尽可能小,若仍不唯一,输出任意答案。

题解

注意到\(f(l,r)\le f(l,r+1)\)。故只需要找使得\(f(1,n)=f(l,r)\)的最小区间\([l,r]\);可以采用双指针法或者二分查找。

代码

#include<bits/stdc++.h>
using namespace std;
#define N 100005
int n,q,a[N],x[N];
long long s[N];

int main(){
	int t,i;
	for(scanf("%d",&t);t;t--){
		scanf("%d%d",&n,&q);
		for(i=1;i<=n;i++){
			scanf("%d",&a[i]);
			s[i]=s[i-1]+a[i];
			x[i]=x[i-1]^a[i];
		}
		long long ans=s[n]-x[n];
		int ansl,ansr,l,r=1;
		scanf("%d%d",&ansl,&ansr);
		for(l=1;l<=n;l++){
			if(r<l)r=l;
			while(s[r]-s[l-1]-(x[r]^x[l-1])<ans&&r<=n){
				r++;
			}
			if(r>n)break;
			if(r-l<ansr-ansl){
				ansl=l;
				ansr=r;
			}
		}
		printf("%d %d\n",ansl,ansr);
	}
	return 0;
}

注意

  1. 按位与、按位异或、按位或的运算符优先级比加减法低,需要加括号。

标签:830,int,text,Codeforces,long,Sheikh,按位,Easy
From: https://www.cnblogs.com/TaylorSwift13/p/16820427.html

相关文章

  • Codeforces Round #747 (Div. 2) D Educational Codeforces Round 115 D
    D.TheNumberofImposters显然我们对于每一个关系就相当于连一个无向边我们显然对于每一个连通块来讲我们确定其中一个也就确定了这个连通块里的所有就相当于二分图......
  • Codeforces Round #829 (Div. 2)
    咕咕咕。C2.MakeNonzeroSum(hardversion)易得有奇数个非零值时无解。现在考虑将相邻的两个非零值配对,只要每一个非零值对都搞成和为零,总的和就为零。由于非零值只......
  • Educational Codeforces Round 137 (Rated for Div. 2) A-F
    比赛链接A题解知识点:数学。\(4\)位密码,由两个不同的数码组成,一共有\(C_4^2\)种方案。从\(10-n\)个数字选两个,有\(C_{10-n}^2\)种方案。结果为\(3(10-n)(9-n)\)......
  • Codeforces Round #829 (Div. 2) D. Factorial Divisibility(数学)
    题目链接题目大意:\(~~\)给定n个正整数和一个数k,问这n个数的阶乘之和能不能被k的阶乘整除既:(a\(_{1}\)!+a\(_{2}\)!+a\(_{3}\)!+....+a\(_{n}\)!)\(~\)%\(~\)k!\(~\)==......
  • Codeforces 1682 D Circular Spanning Tree
    题意1-n排列,构成一个圆;1-n每个点有个值0或者1,0代表点的度为偶数,1代表点的度为计数;询问能否构成一棵树,树的连边在圆内不会相交,在圆边上可以相交,可以则输出方案。提示1.......
  • Codeforces Round #758 (Div.1 + Div. 2) C
    C.GameMaster//不明白为什么tag上没有二分我二分一下就过了我们显然知道判断是否能打赢全部直接通过连边来判断是否能遍历全部点如何连边:我们同组一定相连对于排......
  • CodeForces-1143#C 题解
    正文♦时间复杂度:\(\mathcal{O}(n)\)思维题,不需要建树。设数组\(a\)记录每一个节点是否尊重它的父节点,数组\(b\)记录是否有节点尊重它,特别的,叶子节点必然不被尊重。......
  • Educational Codeforces Round 138
    EducationalCodeforcesRound138这把是真的丢了大脸。Dashboard$\color{Green}{★}\\$表示赛时做出。$\color{Yellow}{★}\\$表示赛后已补。$\color{Red}{★}......
  • Codeforces 823B
    题意:对若干正整数二元组\((x_i,t_i)\),求一个实数\(x_0\),使得\(max\{t_i+|x_i-x_0|\}\)最小。n<=1e5。思考:​ 虽然问的是\(x_0\),但不妨对这个最小的最大值进行二分,也......
  • Educational Codeforces Round 138 (Rated for Div. 2) A-E
    比赛链接A题解知识点:贪心。注意到\(m\geqn\)时,不存在某一行或列空着,于是不能移动。而\(m<n\)时,一定存在,可以移动。时间复杂度\(O(1)\)空间复杂度\(O(1)\)代......