正题

CF750F1
CF750F2


题目大意

给你一个数列,问有多少个数可以由一个单调递增的子序列异或得到


解题思路

对于F1,可以用p存下得到一个数的最小值(即当前子序列前缀的最后一个数),然后直接暴力转移

对于F2,直接暴力转移会TLE

可以发现,该数列一定存在重复的数,而部分转移会重复(比如前面可以转移的后面也转移了,但一定不会更优)

考虑更改转移方式,先对数列进行排序,设pip_ipi​为得到iii的最前位置,那么对于每次转移,就在当前数中找第一个大于pip_ipi​的最小的数

时间复杂度O(s2logn)O(s^2\ log\ n)O(s2 log n)


code

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 1000100
#define fs first
#define sn second
using namespace std;
int n,x,g,w,num,now,p[N],s[N],b[N];
pair<int,int>a[N];
int main()
{for(int i=1;i<=8191;++i)p[i]=10000000;scanf("%d",&n);for(int i=1;i<=n;++i){scanf("%d",&a[i].fs);a[i].sn=i;}sort(a+1,a+1+n);now=1;while(now<=n){w=1;g=a[now].fs;b[w]=a[now].sn;now++;while(now<=n&&a[now].fs==g)b[++w]=a[now].sn,now++;p[g]=min(p[g],b[1]);for(int i=1;i<=8191;++i)if(p[i]<b[w])p[i^g]=min(p[i^g],b[lower_bound(b+1,b+1+w,p[i])-b]);}for(int i=1;i<=8191;++i)if(p[i]<=1000000)num++;printf("%d\n0",num+1);for(int i=1;i<=8191;++i)if(p[i]<=1000000)printf(" %d",i);return 0;
}

Korney Korneevich and XOR(CF750F1/F2)相关推荐

  1. 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 xor (根号分治)

    xor There is a tree with nn nodes. For each node, there is an integer value a_ia​i​​, (1 \le a_i \le ...

  2. 2020中国大学生程序设计竞赛(CCPC) - 网络选拔赛----HDU--6899、Xor(数位dp)

    题目链接 题面: 题意: 求解符合 x∈[0,a],y∈[0,b]x\in[0,a],y\in[0,b]x∈[0,a],y∈[0,b] 且 ∣x−y∣≤k|x-y|\le k∣x−y∣≤k 且 xxo ...

  3. BZOJ2115 XOR(线性基)

    前置知识:线性基 题目描述 有一个边权为非负数的无向连通图,节点编号为 1 1 1到 n n n.求一条从 1 1 1到 n n n的路径,使得路径上经过的边的边权的异或和最大. 路径可以重复经过点和 ...

  4. (八)pdf的构成之文件体(page属性)

    资源(Resources) 类型:字典 属性: Font :一个字典,内部是该资源包含的各个字体的名称(字体名称F开头) ProcSet :该资源中使用图画还是文字,可选 /PDF /Text /Im ...

  5. Redis知识总结(四万字)

    一.Redis的概述 1.1 NoSQL的简介 1.1.1 NoSQL为什么会出现 从功能角度来讲,出现了各种编程语言 c语言,c++, java,scala,php,python等 从扩展角度来讲, ...

  6. OD调试常见断点及原理(浓缩版)

    OD调试时,常见的断点有int3.硬件断点.内存断点.消息断点.条件断点.条件记录断点等: 1.int 3断点 原理:改变断点地址处的第一个字节为CC指令,在OD中不显示 缺点:容易被检测到,如检测M ...

  7. 大数据——Logstash(日志收集)

    Logstash(日志收集) ELK Stack Logstash简介 安装Logstash Logstash如何工作 Logstash配置语法(一) Logstash配置语法(二) 输入插件 编解码 ...

  8. 【机器学习笔记】——决策树(Decision Tree)

    目 录 1 决策树 1.1 特征选择 1.1.1 基础定义 1.1.2 最优特征标准 1.2 树的生成 1.2.1 ID3 算法 1.2.2 C4.5 算法 1.2.2.1 如果特征是连续的 1.2. ...

  9. 最大异或对(Tire树)

    在给定的 N个整数 A1,A2--AN 中选出两个进行 xor(异或)运算,得到的结果最大是多少? 输入格式 第一行输入一个整数 N. 第二行输入 N 个整数 A1-AN. 输出格式 输出一个整数表示 ...

最新文章

  1. 如何给页面加上loding_如何给片头添加字幕?视频剪辑大神们都这样玩
  2. CentOS7(64位)安装Jupyter Notebook
  3. maven mybatis mysql_Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问...
  4. 软路试--就像一棵树活着
  5. Linux 系统调用(一)
  6. (转)CSS样式表继承详解
  7. javascript的垃圾回收机制
  8. 数字图像处理实验(16):PROJECT 06-03,Color Image Enhancement by Histogram Processing
  9. 【数学建模】聚类分析(评价与决策)
  10. 深度剖析目标检测算法YOLOV4
  11. 学习记录-class与namespace的区别
  12. centos文件服务器软件,seafile服务器端的centos8的快速部署
  13. php html区别_php与html区别
  14. glxinfo: not found
  15. storm的数据源编程单元Spout学习整理
  16. mysql 等于_mysql 不等于 符号写法
  17. 华硕b365安装服务器系统,华硕B365主板搭载intel8/9代平台安装win7的详细教程
  18. [TOG2022]DCT-Net: Domain-Calibrated Translation for Portrait Stylization
  19. Windows Live Writer插件:在WLW中插入语法高亮代码(二)
  20. 海王小姐姐教你微信如何三步实现多开,win7 win 8 win10都可用

热门文章

  1. .net html5页面缓存,详解HTML5中的manifest缓存使用
  2. python通过封装可以实现代码复用_Python学习笔记(五)函数和代码复用
  3. php webshell开源,[github开源]webshell连接器--Jeshell
  4. leetcode669. 修剪二叉搜索树
  5. 储存引擎InnoDB 索引选择 为何是B+树 而不是 B树 哈希表
  6. [数据结构-严蔚敏版]P42多项式Polynomial的实现
  7. [Java基础]线程安全的类
  8. 给出TREE_INSERT过程的非递归版本(算法导论第三版12.3-1)
  9. Good Number Gym - 102769G 2020年CCPC秦皇岛分站赛
  10. 数据结构与算法--有序数组中找出和为s的两个数字