CF1493E Enormous XOR
题意简述:给出长度为 \(n\) 的二进制数 \(l,r\),求 \(\max_{l\leq x\leq y\leq r}\oplus_{i=x}^yi\)。
非常搞笑的题目,感觉难度远远没有 CF 上的 *2600。
首先,如果 \(l,r\) 的最高位不同,那么答案显然为 \(2^n-1\)。当 \(x=2^{n-1}-1,y=2^{n-1}\) 时可以取到。
如果 \(l,r\) 的最高位相同,那么我们肯定是选奇数个数,即 \(y\equiv x\pmod 2\)。如果选偶数个数则最高位为 \(0\),显然不优于 \(x=y=r\)。
注意到偶数 \(i\oplus(i+1)=1\),那么这样选择的方案就可能是 \(x\ (x\equiv 1\pmod 2 \land y-x\equiv 0\pmod 4)\) 或 \(x\oplus 1\ (x\equiv 1\pmod 2 \land y-x\equiv 2\pmod 4)\) 或 \(y\ (x\equiv 0\pmod 2 \land y-x\equiv 0\pmod 4)\) 或 \(y\oplus 1\ (x\equiv 0\pmod 2 \land y-x\equiv 2\pmod 4)\)。那么显然当 \(y=r\) 时最优,且当 \(r\equiv 1\pmod 2\) 时答案为 \(r\);当 \(r\equiv 0\pmod 2\land l\leq r-2\) 时,答案为 \(r+1\ (r\oplus 1)\),当 \(r\equiv 0\pmod 2\land l>r-2\) 时答案为 \(r\)。
/*
Powered by C++11.
Author : Alex_Wei.
*/
#include <bits/stdc++.h>
using namespace std;
int n;
char l[1000005],r[1000005];
int main(){
scanf("%d%s%s",&n,l+1,r+1);
if(l[1]!=r[1])for(int i=0;i<n;i++)cout<<'1';
else if((r[n]&1)||n==1)cout<<r+1;
else{
l[n-1]++;
for(int i=n-1;i;i--)if(l[i]>'1')l[i]='0',l[i-1]++;
for(int i=0;i<=n+1;i++)if(l[i]!=r[i]||i>n)r[n]=(l[i]<r[i]||i>n)+'0',cout<<r+1,exit(0);
}
return 0;
}
CF1493E Enormous XOR的更多相关文章
- 贪心/构造/DP 杂题选做
本博客将会收录一些贪心/构造的我认为较有价值的题目,这样可以有效的避免日后碰到 P7115 或者 P7915 这样的题就束手无策进而垫底的情况/dk 某些题目虽然跟贪心关系不大,但是在 CF 上有个 ...
- [LeetCode] Maximum XOR of Two Numbers in an Array 数组中异或值最大的两个数字
Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai < 231. Find the maximum re ...
- 二分+DP+Trie HDOJ 5715 XOR 游戏
题目链接 XOR 游戏 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
- BZOJ 2115 【Wc2011】 Xor
Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 ...
- xor和gates的专杀脚本
前段时间的一次样本,需要给出专杀,应急中遇到的是linux中比较常见的两个家族gates和xor. 首先是xor的专杀脚本,xor样本查杀的时候需要注意的是样本的主进程和子进程相互保护(详见之前的xo ...
- Codeforces617 E . XOR and Favorite Number(莫队算法)
XOR and Favorite Number time limit per test: 4 seconds memory limit per test: 256 megabytes input: s ...
- Xor && 线性基练习
#include <cstdio> #include <cstring> ; ; int cnt,Ans,b,x,n; inline int Max(int x,int y) ...
- BC之Claris and XOR
http://acm.hdu.edu.cn/showproblem.php?pid=5661 Claris and XOR Time Limit: 2000/1000 MS (Java/Others) ...
- 异或链表(XOR linked list)
异或链表(Xor Linked List)也是一种链式存储结构,它可以降低空间复杂度达到和双向链表一样目的,任何一个节点可以方便的访问它的前驱节点和后继结点.可以参阅wiki 普通的双向链表 clas ...
随机推荐
- javascript-原生-面向对象
1.javascript面向对象程序设计 概述:javascript不想其他面向对象编程语言那样有类的概念,javascript没有类(构造函数)的概念,只有对象的概念. 2.理解javascript ...
- Dapr-服务调用
前言 上一篇对Dapr进行了了解,并搭建了Dapr环境.接下来就对Dapr的各个构建块类型的了解.应用实际案例. 一.服务调用: 在许多具有多个需要相互通信的服务的环境中,都会面临着很多问题. 如: ...
- 【Spring】IoC容器 - 依赖来源
前言 上一篇文章已经学习了[依赖注入]相关的知识,这里详细的介绍一下[依赖来源]. 依赖来源 我们把依赖来源分为依赖查找的来源和依赖注入的来源分别讨论. 依赖查找的来源 1. Spring BeanD ...
- 【UE4 C++】UKismetSystemLibrary 源代码
// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" # ...
- 【UE4 C++】解析与构建 XML 数据,XmlParser 与 tinyxml
XmlParser 简单读取 XmlParser 为引擎自带模块 XML 文件 <?xml version="1.0" encoding="UTF-8"? ...
- 【二食堂】Beta - Scrum Meeting 8
Scrum Meeting 8 例会时间:5.22 20:00~20:10 进度情况 组员 当前进度 今日任务 李健 1. UI优化已经完成,顺带修复了一点小bug.issue 1. 文本导入.保存部 ...
- BUAA_2020_软件工程_个人博客作业
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业 我在这个课程的目标是 了解软件工程的技术,掌握工程化开发的能力 这个作业在哪个具体方 ...
- DDD领域驱动设计-案例建模设计-Ⅲ
1. 背景 参考<DDD领域驱动设计-案例需求文档>,本文将构建实体,聚合根详述领域驱动中的建模设计.构建实体,聚合根的一些原则或方法,将在后续文章中说明. 2. 建模设计 2.1. 实体 ...
- uvm中类继承和phase
1,uvm中类继承关系如下所示 2,uvm中phase如下所示
- word-break-ii leetcode C++
Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each ...