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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《信号与系统》期中总结

某高校的某专业于2020/11/8日进行《信号与系统》期中考试&#xff0c;而某同学这次考试直接爆炸&#xff0c;原因某同学也差不多知道&#xff1a;对待这门学科浅尝辄止&#xff0c;只达到了看着答案&#xff08;看答案看书&#xff09;能够把作业做出来的程度。虽然已经爆炸了&…

YbtOJ#943-平方约数【莫比乌斯反演,平衡规划】

正题 题目链接:http://www.ybtoj.com.cn/contest/122/problem/3 题目大意 S(i)S(i)S(i)表示iii的约数个数&#xff0c;QQQ次询问给出n,mn,mn,m求 ∑a1n∑b1mS(a2)S(b2)S(ab)\sum_{a1}^n\sum_{b1}^mS(a^2)\times S(b^2)\times S(a\times b)a1∑n​b1∑m​S(a2)S(b2)S(ab) 1≤Q≤…

微软智能云三驾马车Azure、Office 365、Dynamics 365齐聚中国

Dynamics 365计划于2019年春落地中国&#xff1b;Windows Server 2019、Office 2019正式商用&#xff1b;SQL Server 2019、Azure Sphere 公开预览&#xff1b;Microsoft Azure 更新数十项云服务与功能&#xff0c;聚焦物联网与边缘。2018年10月25日&#xff0c;上海 —— 2018…

H - Holy Grail

H - Holy Grail 题意&#xff1a; 题干又臭又长 我简单说说 n个点&#xff0c;m条有向边&#xff0c;边权为负&#xff0c;然后给你六组起始点&#xff08;s点和t点&#xff09;&#xff0c;你要在s和t之间建一个有向边&#xff0c;要使得权值最小&#xff0c;问这六组边依次…

【LCT】魔法森林(P2387)

正题 P2387 题目大意 给你一个图&#xff0c;每条边有两个全职a,b&#xff0c;现在让你找一条从1到n的路径使得max(a)max(b)最小 解题思路 对a进行排序&#xff0c;枚举a的最大值&#xff0c;然后取b最小的边&#xff0c;找1到n的最短路径 找最短路径可以用LCT求&#xff0…

ASP.NET Core SignalR中的流式传输

什么是流式传输&#xff1f;流式传输是这一种以稳定持续流的形式传输数据的技术。流式传输的使用场景有些场景中&#xff0c;服务器返回的数据量较大&#xff0c;等待时间较长&#xff0c;客户端不得不等待服务器返回所有数据后&#xff0c;再进行相应的操作。这时候使用流式传…

codeforces1435 D. Shurikens

D. Shurikens 自己感觉差不多写了个模拟过了59组数据。 明显这题可能和栈扯上关系&#xff0c;因为很想括号匹配求卡特兰数的形式 看了大佬博客后发现真的和栈有关于是学习了一波。 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) …

YbtOJ#662-交通运输【线段树合并,树状数组】

正题 题目链接:http://www.ybtoj.com.cn/contest/122/problem/2 题目大意 给出nnn个点的一棵有根树&#xff0c;对于每个xxx求&#xff0c;删除点xxx后修改某个点的父节点&#xff08;修改前该点必须有父节点&#xff09;后最小化最大联通块大小。 解题思路 删掉一个点后肯定…

EOJ Monthly 2020.9 Sponsored by TuSimple E. 加密的情书

E加密的情书 本人太菜&#xff0c;只会签到 题意&#xff1a; 一个多位数可以通过加密变成个位数&#xff0c;加密方式为&#xff1a;各个位数上的数相加&#xff0c;直到加成个位数 例如&#xff1a; 123 --》 1236 现在给出加密后的一串密文 问是否存在连续的自然数数列 l …

【线段树】Frog Traveler(CF751D)

正题 CF751D 题目大意 现在有n个点&#xff0c;当你在i时&#xff0c;可以向前跳 0∼ai0\sim a_i0∼ai​ 步&#xff0c;跳到j&#xff0c;然后向后走bjb_jbj​步&#xff0c;现在让你从n开始跳&#xff0c;回答跳到0的最少步数 解题思路 设fif_ifi​为跳到i的最少步数&…

独立版Jexus配置SSL,支持https访问

一、申请证书【腾讯免费证书】二、验证DNS&#xff0c;即解析域名。记录类型选择 TXT &#xff0c;主机记录与证书上的主机记录保持一致&#xff0c;记录值也与证书上的记录值保持一致三、等待DNS验证与CA轮询&#xff0c;轮询成功后即可下载证书四、Jexus用到的是Nginx中的证书…

codeforces1437 E. Make It Increasing——最长上升子序列

E. Make It Increasing 首先让aiai−ia_ia_i-iai​ai​−i这样可以是严格单增变成单调增。 参考官方题解 首先不难得出如果我们根据不同修改的位置分割成若干段&#xff0c;那么若干段是互不影响的&#xff0c;我们只需要求出每一个若干段修改次数的最小值。 如果当前考虑l~r…

P4451-[国家集训队]整数的lqp拆分【生成函数,特征方程】

正题 题目链接:https://www.luogu.com.cn/problem/P4451 题目大意 给出nnn&#xff0c;对于所有满足∑i1main\sum_{i1}^ma_in∑i1m​ai​n且∀ai∈N\forall a_i\in N^∀ai​∈N的序列求 ∑m1∞∏i1mFbiai\sum_{m1}^{\infty}\prod_{i1}^mFbi_{a_i}m1∑∞​i1∏m​Fbiai​​ 其…

莫比乌斯反演+例题

参考1 参考2 参考3 问题引入&#xff1a; 入门题 给定N和M和D&#xff0c;求满足1<x<N,1<y<M且gcd(x,y)D的点对(x,y)的个数 1<N,M<1000000 莫比乌斯函数 μ μ(n) 1 , n1 μ(n) (-1)k, np1 * p2 * … * Pk &#xff08;x有奇数个质因子时为-1&#xff…

【线段树】Optimal Insertion(CF751E)

正题 CF751E 题目大意 给你一个数组a和一个集合b&#xff0c;现在让你把b中的数插入a&#xff0c;使得逆序对最少 解题思路 先计算a中的逆序对 对于b和a的逆序对&#xff0c;可以对数字进行排序&#xff0c;用线段树存下放每个位置的最小代价&#xff0c;然后直接求最小值 …

.net core通过多路复用实现单服务百万级别RPS吞吐

多路复用其实并不是什么新技术&#xff0c;它的作用是在一个通讯连接的基础上可以同时进行多个请求响应处理。对于网络通讯来其实不存在这一说法&#xff0c;因为网络层面只负责数据传输&#xff1b;由于上层应用协议的制订问题&#xff0c;导致了很多传统服务并不能支持多路复…

2020 China Collegiate Programming Contest Weihai Site补题部分

A. Golden Spirit 签到题&#xff0c;首先把所有老人带到对岸&#xff0c;然后在对休息讨论一下即可。 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<set> #include<map> #include<cmath> #include<…

P5110-块速递推【特征方程,分块】

正题 题目链接:https://www.luogu.com.cn/problem/P5110 题目大意 数列aaa满足 an233an−1666an−2,a00,a11a_n233a_{n-1}666a_{n-2},a_00,a_11an​233an−1​666an−2​,a0​0,a1​1 TTT组询问给出nnn求ana_nan​ 1≤T≤51071\leq T\leq 5\times 10^71≤T≤5107&#xff0c;…

I - Washing clothes

题意&#xff1a; 有n个人会在某时间段来洗衣服&#xff0c;但是只有一台洗衣机&#xff0c;当洗衣机被用时其他人只能手洗&#xff0c;手洗时间为y&#xff08;题目给定&#xff09;&#xff0c;洗衣机的时间为x&#xff0c;x∈[1,y]&#xff0c;问当x分别为[1,y]时&#xff…

【LCT】历史(P4338)

正题 P4338 题目大意 有一棵树&#xff0c;告诉你每个点access的次数&#xff08;带修改&#xff09;&#xff0c;问实链切换的最多次数 解题思路 先考虑离线的做法&#xff1a; 对于点 x&#xff0c;其不同儿子的子树access会使实链切换&#xff08;对于点 x access 同理&…