Korney Korneevich and XOR(CF750F1/F2)
正题
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)相关推荐
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 xor (根号分治)
xor There is a tree with nn nodes. For each node, there is an integer value a_iai, (1 \le a_i \le ...
- 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 ...
- BZOJ2115 XOR(线性基)
前置知识:线性基 题目描述 有一个边权为非负数的无向连通图,节点编号为 1 1 1到 n n n.求一条从 1 1 1到 n n n的路径,使得路径上经过的边的边权的异或和最大. 路径可以重复经过点和 ...
- (八)pdf的构成之文件体(page属性)
资源(Resources) 类型:字典 属性: Font :一个字典,内部是该资源包含的各个字体的名称(字体名称F开头) ProcSet :该资源中使用图画还是文字,可选 /PDF /Text /Im ...
- Redis知识总结(四万字)
一.Redis的概述 1.1 NoSQL的简介 1.1.1 NoSQL为什么会出现 从功能角度来讲,出现了各种编程语言 c语言,c++, java,scala,php,python等 从扩展角度来讲, ...
- OD调试常见断点及原理(浓缩版)
OD调试时,常见的断点有int3.硬件断点.内存断点.消息断点.条件断点.条件记录断点等: 1.int 3断点 原理:改变断点地址处的第一个字节为CC指令,在OD中不显示 缺点:容易被检测到,如检测M ...
- 大数据——Logstash(日志收集)
Logstash(日志收集) ELK Stack Logstash简介 安装Logstash Logstash如何工作 Logstash配置语法(一) Logstash配置语法(二) 输入插件 编解码 ...
- 【机器学习笔记】——决策树(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. ...
- 最大异或对(Tire树)
在给定的 N个整数 A1,A2--AN 中选出两个进行 xor(异或)运算,得到的结果最大是多少? 输入格式 第一行输入一个整数 N. 第二行输入 N 个整数 A1-AN. 输出格式 输出一个整数表示 ...
最新文章
- 如何给页面加上loding_如何给片头添加字幕?视频剪辑大神们都这样玩
- CentOS7(64位)安装Jupyter Notebook
- maven mybatis mysql_Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问...
- 软路试--就像一棵树活着
- Linux 系统调用(一)
- (转)CSS样式表继承详解
- javascript的垃圾回收机制
- 数字图像处理实验(16):PROJECT 06-03,Color Image Enhancement by Histogram Processing
- 【数学建模】聚类分析(评价与决策)
- 深度剖析目标检测算法YOLOV4
- 学习记录-class与namespace的区别
- centos文件服务器软件,seafile服务器端的centos8的快速部署
- php html区别_php与html区别
- glxinfo: not found
- storm的数据源编程单元Spout学习整理
- mysql 等于_mysql 不等于 符号写法
- 华硕b365安装服务器系统,华硕B365主板搭载intel8/9代平台安装win7的详细教程
- [TOG2022]DCT-Net: Domain-Calibrated Translation for Portrait Stylization
- Windows Live Writer插件:在WLW中插入语法高亮代码(二)
- 海王小姐姐教你微信如何三步实现多开,win7 win 8 win10都可用
热门文章
- .net html5页面缓存,详解HTML5中的manifest缓存使用
- python通过封装可以实现代码复用_Python学习笔记(五)函数和代码复用
- php webshell开源,[github开源]webshell连接器--Jeshell
- leetcode669. 修剪二叉搜索树
- 储存引擎InnoDB 索引选择 为何是B+树 而不是 B树 哈希表
- [数据结构-严蔚敏版]P42多项式Polynomial的实现
- [Java基础]线程安全的类
- 给出TREE_INSERT过程的非递归版本(算法导论第三版12.3-1)
- Good Number Gym - 102769G 2020年CCPC秦皇岛分站赛
- 数据结构与算法--有序数组中找出和为s的两个数字