Processing math: 100%

题意

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

题解

注意到f(l,r)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. 按位与、按位异或、按位或的运算符优先级比加减法低,需要加括号。
posted @ 2022-10-24 09:23 TaylorSwift13 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 题意 Takahashi在二维平面的原点,它可以瞬移N次,每次可以从当前点(x,y)瞬移至(x+A,y+B),(x+C,y+D),(x+E,y+F)中的任一点.平面上有M个障碍点不能到达.问经过N次瞬移可能的不同路径数. 题目细节详见E - Warp (atcoder.j 阅读全文
posted @ 2022-08-23 11:57 TaylorSwift13 阅读(100) 评论(0) 推荐(0) 编辑
摘要: Day-17 2月18日 2020年2月17日早上8点,CCF发布了关于举办NOI Online能力测试的通知 为给选手提供一个锻炼的机会,CCF拟举办一场NOI Online能力测试。测试分为入门组和提高组,每组限额报名3万人,人数报满关闭系统,每组成功报名选手在同一时间参加线上测试。 作为一名退 阅读全文
posted @ 2020-02-27 17:23 TaylorSwift13 阅读(1387) 评论(0) 推荐(0) 编辑
摘要: 这篇文章咕了 阅读全文
posted @ 2019-11-17 14:58 TaylorSwift13 阅读(274) 评论(0) 推荐(0) 编辑
摘要: "货物收集" 二分答案.复杂度O(nlogn). "货物分组" 用 费用提前计算 的思想,考虑用一个新的箱子来装货物会发生什么. 显然费用会加上后面的所有货物的总重. 60分的O(n2)DP代码: cpp include define LL long long const int 阅读全文
posted @ 2019-11-08 12:12 TaylorSwift13 阅读(223) 评论(0) 推荐(0) 编辑
摘要: "复读数组" 分成 3 种区间算答案: 1. 一个块内的区间 2. 两个块交界处,长度小于块长的区间 3. 长度不小于块长的区间 对于第三种区间,容易发现每个区间的权值一样,只需要算出个数即可. 对于前两种空间,我的思路是:对于一个重复出现的元素,记 第一次出现的这个元素贡献权值 ,然后讨论每一个数 阅读全文
posted @ 2019-11-08 11:33 TaylorSwift13 阅读(196) 评论(0) 推荐(0) 编辑
摘要: "A.无形的博弈" 心理题. 答案为2n,可感性理解结论的正确性. "神J上树" 最后 秒交了一发暴力,还好得了 分.暴力都调不出来,~~我实在是太蒻了~~. 阅读全文
posted @ 2019-11-08 10:01 TaylorSwift13 阅读(201) 评论(0) 推荐(0) 编辑
摘要: "比赛链接" "友好数对" 暴力枚举[L,R]之间的所有数,将每个数进行 "旋转" ,看是否符合题意. 注意 "旋转" 的次数,并不一定是数字位数.只要旋转回到了初始数就应该跳出,否则会重复计算. 这个模拟退火很明显是错的,我也不知道为啥就A了:cry:. 阅读全文
posted @ 2019-11-04 21:05 TaylorSwift13 阅读(328) 评论(0) 推荐(0) 编辑
摘要: "CF311B Cats Transport" 暑假到现在终于过了这道题:cry:. 首先计算出A[],A[i]表示如果有一个饲养员在A[i]时刻出发,那么刚好使第i只猫无需等待地被接走. 发现A[]与猫的编号无关,对其排序并求前缀和S[]. 设F[i,j]表示前i阅读全文
posted @ 2019-11-02 11:53 TaylorSwift13 阅读(157) 评论(1) 推荐(0) 编辑
摘要: 题目 "洛谷 P3431 [POI2005]AUT The Bus" Description 某城市的街道形成了一个棋盘网络.他们要么是北南走向要么就是西东走向.北南走向的路口从 1n 编号,西东走向的路从 1m 编号.每个路口用两个数(i,j)表示$(1\le i\ 阅读全文
posted @ 2019-11-01 08:03 TaylorSwift13 阅读(172) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示